Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-8171

TrianglePerCacheInboundInvocationHandler sends IllegalLifecycleStateException in response


    • Icon: Bug Bug
    • Resolution: Obsolete
    • Icon: Major Major
    • None
    • None
    • None

      For synchronous operations, the invocation handler catches IllegalLifecycleStateException and sends a CacheNotFoundResponse instead of an ExceptionResponse.

      TrianglePerCacheInboundInvocationHandler doesn't follow the same rule, and the response created by BaseBlockingRunnable.afterCommandException() is ignored. But the caller doesn't know what to do with the ExceptionAckCommand(throwable=org.infinispan.IllegalLifecycleStateException), and the exception is propagated all the way to the caller.

      This is causing some of the random failures in NonTxPutIfAbsentDuringLeaveStressTest.testNodeLeavingDuringPutIfAbsent (but different from the failures in ISPN-6451).

      18:15:31,659 ERROR (testng-Test:[]) [TestSuiteProgress] Test failed: org.infinispan.distribution.rehash.NonTxPutIfAbsentDuringLeaveStressTest.testNodeLeavingDuringPutIfAbsent[DIST_SYNC]
      java.util.concurrent.ExecutionException: org.infinispan.IllegalLifecycleStateException: ISPN000324: Default cache is in 'STOPPING' state and this is an invocation not belonging to an on-going transaction, so it does not accept new invocations. Either restart it or recreate the cache container.
      	at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.8.0_121]
      	at java.util.concurrent.FutureTask.get(FutureTask.java:206) ~[?:1.8.0_121]
      	at org.infinispan.distribution.rehash.NonTxPutIfAbsentDuringLeaveStressTest.testNodeLeavingDuringPutIfAbsent(NonTxPutIfAbsentDuringLeaveStressTest.java:101) ~[test-classes/:?]

            pruivo@redhat.com Pedro Ruivo
            dberinde@redhat.com Dan Berindei (Inactive)
            0 Vote for this issue
            1 Start watching this issue