[infinispan-issues] [JBoss JIRA] (ISPN-6792) NonTxDistributionInterceptor doesn't always change the matcher for retry

Dan Berindei (JIRA) issues at jboss.org
Fri Jun 17 04:10:01 EDT 2016


Dan Berindei created ISPN-6792:
----------------------------------

             Summary: NonTxDistributionInterceptor doesn't always change the matcher for retry
                 Key: ISPN-6792
                 URL: https://issues.jboss.org/browse/ISPN-6792
             Project: Infinispan
          Issue Type: Bug
          Components: Core
    Affects Versions: 8.2.2.Final, 9.0.0.Alpha2
            Reporter: Dan Berindei
             Fix For: 9.0.0.Alpha3


When invoking a non-transactional write command remotely, {{BaseDistributionInterceptor}} expects to receive an {{OutdatedTopologyException}} wrapped in a {{RemoteException}} if the remote node saw a newer cache topology.

However, {{OutdatedTopologyException}} is handled differently by {{JGroupsTransport}}, and it is *not* wrapped in a {{RemoteException}}. Because of this, {{BaseDistributionInterceptor}} doesn't update the value matcher, and the retried command may fail when it sees its own value.

This makes {{NonTxPutIfAbsentDuringLeaveStressTest}} fail randomly with

{noformat}
java.lang.AssertionError: expected:<null> but was:<value_7_0>
    at org.testng.AssertJUnit.fail(AssertJUnit.java:59)
    at org.testng.AssertJUnit.failNotEquals(AssertJUnit.java:364)
    at org.testng.AssertJUnit.assertEquals(AssertJUnit.java:80)
    at org.testng.AssertJUnit.assertEquals(AssertJUnit.java:88)
    at org.infinispan.distribution.rehash.NonTxPutIfAbsentDuringLeaveStressTest.testNodeLeavingDuringPutIfAbsent(NonTxPutIfAbsentDuringLeaveStressTest.java:101)
{noformat}

Note that this is different from ISPN-6451: there, the assertion message is {{AssertionError: expected:<value_48_1> but was:<null>}}, and it is most likely caused by ISPN-3918.



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the infinispan-issues mailing list