Details
-
Bug
-
Resolution: Done
-
Critical
-
5.2.0.CR2
-
None
Description
I have tried async replication scenario with async marshalling (optimistic transactions) and this has occurred:
04:34:15,182 ERROR [org.infinispan.remoting.rpc.RpcManagerImpl] (OOB-77,edg-perf11-48420) ISPN000073: Unexpected error while replicating
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
at java.util.HashMap$KeyIterator.next(HashMap.java:828)
at org.infinispan.statetransfer.StateProviderImpl.collectTransactionsToTransfer(StateProviderImpl.java:239)
at org.infinispan.statetransfer.StateProviderImpl.getTransactionsForSegments(StateProviderImpl.java:200)
at org.infinispan.statetransfer.StateRequestCommand.perform(StateRequestCommand.java:88)
at org.infinispan.remoting.InboundInvocationHandlerImpl.handleInternal(InboundInvocationHandlerImpl.java:101)
at org.infinispan.remoting.InboundInvocationHandlerImpl.handleWithWaitForBlocks(InboundInvocationHandlerImpl.java:122)
at org.infinispan.remoting.InboundInvocationHandlerImpl.handle(InboundInvocationHandlerImpl.java:86)
at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.executeCommandFromLocalCluster(CommandAwareRpcDispatcher.java:245)
at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.handle(CommandAwareRpcDispatcher.java:218)
at org.jgroups.blocks.RequestCorrelator.handleRequest(RequestCorrelator.java:484)
at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:391)
at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:249)
at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:598)
at org.jgroups.JChannel.up(JChannel.java:707)
Seems that StateRequestCommand is iterating through all transactions' locked keys but the collections of these locked keys can be modified by interfering prepare/commit.