Uploaded image for project: 'Hot Rod Native client'
  1. Hot Rod Native client
  2. HRCPP-388

HotRod operations hang indefinitely in the event of repeating exceptions

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • None
    • 8.1.1.Final
    • Core
    • None

      Some HotRod operations hand indefinitely under certain circumstances. I was able to reproduce it for Put, Clear operations.
      Steps to reproduce:
      1) checkout branch https://github.com/mgencur/dotnet-client/tree/auth_tests_reproducer
      2) set JBOSS_HOME pointing to Infinispan 9.0.3.Final server
      3) run ./build.bat in the root of the project, it will automatically run AuthPlainTest
      4) when the test starts the Infinispan server it performs some operations and then hangs indefinitely, it starts to hang when calling Put operation
      Note: Some operations fail with security exception because this test suite is for testing authorization but the Put operation should succeed. The server side file is clustered-sasl-cs.xml and is available under src/test/resources dir. There's only one server running - no cluster (this is enough for reproducing the issue).

      There are quite a few operations performed in the test before it hangs. The last few operations before it starts hanging are as follows:

                  cache.Put(K1, V1);
                  Assert.AreEqual(V1, cache.Get(K1));
                  Task<string> putAsync = cache.PutAsync(K1, V1);
                  Assert.IsNull(putAsync.Result);
                  Task<string> getAsync = cache.GetAsync(K1);
                  Assert.AreEqual(V1, getAsync.Result);
                  cache.Clear();
                  cache.Put(K1, V1);
                  cache.Put(K2, V2);
                  Assert.AreEqual(2, cache.GetBulk().Count);
                  cache.Put(K1, V1);
                  IVersionedValue<string> value = cache.GetVersioned(K1);
                  Assert.AreEqual(V1, value.GetValue());
                  Assert.AreNotEqual(0, value.GetVersion());
                  cache.Put(K1, V1); //<--- here it hangs and doesn't return a result
                  Assert.NotNull(cache.GetWithMetadata(K1));
      

      I was also trying to reproduce it with the Java HotRod client in the server test suite but with no sucess
      I will attach trace log for the HotRod client and server side.

        1. build.log
          173 kB
          Martin Gencur
        2. server.log
          2.50 MB
          Martin Gencur

              mgencur Martin Gencur
              mgencur Martin Gencur
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: