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

IllegalArgumentException in VoidResponseCollector: Self-suppression not permitted

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 12.0.1.Final, 12.1.0.Final
    • None
    • Core
    • None

      Since the ISPN-12662 fix ConsistentReliabilitySplitBrainTest.testLockUseAfterPartitionWithMajority is failing in CI:

      16:24:32,401 ERROR (testng-Test:[]) [TestSuiteProgress] Test failed: org.infinispan.lock.ConsistentReliabilitySplitBrainTest.testAutoReleaseIfLockIsAcquiredFromAMinorityPartition[DENY_READ_WRITES]
      java.lang.Error: java.util.concurrent.ExecutionException: org.infinispan.lock.exception.ClusteredLockException: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from Test-NodeD, see cause for remote stack trace
      	at org.infinispan.functional.FunctionalTestUtils.await(FunctionalTestUtils.java:67) ~[infinispan-core-12.1.0-SNAPSHOT-tests.jar:12.1.0-SNAPSHOT]
      	at org.infinispan.lock.ConsistentReliabilitySplitBrainTest.testAutoReleaseIfLockIsAcquiredFromAMinorityPartition(ConsistentReliabilitySplitBrainTest.java:133) ~[test-classes/:?]
      

      That fix replaced a usage of MapResponseCollector with VoidResponseCollector, which makes sense because the response values are ignored. The problem is that VoidResponseCollector tries to keep track of the exceptions received from all the targets by adding them as suppressed exceptions to the first received exception, and ThrowableExternalizer reuses OutdatedTopologyException instances, causing an IllegalArgumentException:

      16:24:32,380 ERROR (jgroups-12,Test-NodeD:[]) [InvocationContextInterceptor] ISPN000136: Error executing command ReadWriteKeyCommand on Cache 'org.infinispan.LOCKS', writing keys [ClusteredLockKey{name=Test}]
      java.lang.IllegalArgumentException: Self-suppression not permitted
      	at java.lang.Throwable.addSuppressed(Throwable.java:1066) ~[?:?]
      	at org.infinispan.remoting.transport.impl.VoidResponseCollector.recordException(VoidResponseCollector.java:54) ~[infinispan-core-12.1.0-SNAPSHOT.jar:12.1.0-SNAPSHOT]
      	at org.infinispan.remoting.transport.impl.VoidResponseCollector.addException(VoidResponseCollector.java:46) ~[infinispan-core-12.1.0-SNAPSHOT.jar:12.1.0-SNAPSHOT]
      	at org.infinispan.remoting.transport.impl.VoidResponseCollector.addException(VoidResponseCollector.java:18) ~[infinispan-core-12.1.0-SNAPSHOT.jar:12.1.0-SNAPSHOT]
      	at org.infinispan.remoting.transport.ValidResponseCollector.addResponse(ValidResponseCollector.java:29) ~[infinispan-core-12.1.0-SNAPSHOT.jar:12.1.0-SNAPSHOT]
      	at org.infinispan.remoting.transport.impl.MultiTargetRequest.onResponse(MultiTargetRequest.java:92) [infinispan-core-12.1.0-SNAPSHOT.jar:12.1.0-SNAPSHOT]
      	at org.infinispan.remoting.transport.impl.RequestRepository.addResponse(RequestRepository.java:51) [infinispan-core-12.1.0-SNAPSHOT.jar:12.1.0-SNAPSHOT]
      	at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processResponse(JGroupsTransport.java:1407) [infinispan-core-12.1.0-SNAPSHOT.jar:12.1.0-SNAPSHOT]
      

              dberinde@redhat.com Dan Berindei (Inactive)
              dberinde@redhat.com Dan Berindei (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: