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

ConcurrentModificationException in StateRequestCommand

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Critical
    • 5.2.0.CR3
    • 5.2.0.CR2
    • State Transfer
    • 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.

      Attachments

        Activity

          People

            anistor Adrian Nistor (Inactive)
            rvansa1@redhat.com Radim Vansa (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: