[infinispan-issues] [JBoss JIRA] (ISPN-10289) SingleTargetRequest may invoke the response collector twice for same view
Dan Berindei (Jira)
issues at jboss.org
Mon Jun 10 06:50:00 EDT 2019
Dan Berindei created ISPN-10289:
-----------------------------------
Summary: SingleTargetRequest may invoke the response collector twice for same view
Key: ISPN-10289
URL: https://issues.jboss.org/browse/ISPN-10289
Project: Infinispan
Issue Type: Bug
Components: Core, Test Suite - Core
Affects Versions: 9.4.14.Final, 10.0.0.Beta3
Reporter: Dan Berindei
Assignee: Dan Berindei
Fix For: 10.0.0.Beta4
{{SingleTargetRequest.onNewView()}} is sometimes invoked twice:
* From {{JGroupsTransport.invokeCommand()}}, in the thread that is sending the request
* From {{JGroupsTransport.receiveClusterView()}}, in the thread processing the view change
Because of insufficient synchronization, both {{onNewView()}} invocations may trigger a call to {{ResponseCollector.addResponse()}}, and the collector may not deal with the extra call properly.
For example, the bridge response collectors used by {{ControlledRpcManager}} do not allow duplicate responses for the same target, and this causes random failures in {{GetAllCommandNodeCrashTest}}:
{noformat}
12:44:56.270 [ERROR] commands.GetAllCommandNodeCrashTest(org.infinispan.commands.GetAllCommandNodeCrashTest) Time elapsed: 0.144 s <<< FAILURE!
java.lang.AssertionError:
at org.testng.AssertJUnit.fail(AssertJUnit.java:59)
at org.testng.AssertJUnit.assertTrue(AssertJUnit.java:24)
at org.testng.AssertJUnit.assertFalse(AssertJUnit.java:41)
at org.testng.AssertJUnit.assertFalse(AssertJUnit.java:49)
at org.infinispan.util.ControlledRpcManager$BlockedResponseMap.receive(ControlledRpcManager.java:701)
at org.infinispan.util.ControlledRpcManager$SentRequest.receiveAll(ControlledRpcManager.java:601)
at org.infinispan.commands.GetAllCommandNodeCrashTest.test(GetAllCommandNodeCrashTest.java:66)
{noformat}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
More information about the infinispan-issues
mailing list