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

Transaction executed multiple times due to forwarded CommitCommand


      When the StateTransferInterceptor forwards a CommitCommand for the new topology, multiple CommitCommands may be broadcast across the cluster. If the command (forwarded already from originator) times out, the transaction may be correctly finished by the first one and the application considers TX as succeeded (useSynchronizations=true), although one more Rollback is sent as well.

      Then, again in STI, when the CommitCommand arrives with higher topologyId than the one used for the first TX execution, another artificial Prepare (followed by the commit) is executed - see STI.visitCommitCommand.

      However, this execution may be delayed a lot and originator may have already executed another TX on the same entries. Then, this forwarded Commit will overwrite the already updated entries, causing inconsistency of data.

            dberinde@redhat.com Dan Berindei (Inactive)
            rvansa1@redhat.com Radim Vansa (Inactive)
            0 Vote for this issue
            4 Start watching this issue