[infinispan-issues] [JBoss JIRA] (ISPN-4137) Transaction executed multiple times due to forwarded CommitCommand
Radim Vansa (JIRA)
issues at jboss.org
Tue Mar 25 07:52:13 EDT 2014
[ https://issues.jboss.org/browse/ISPN-4137?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12955955#comment-12955955 ]
Radim Vansa commented on ISPN-4137:
-----------------------------------
I hate two generals'-style problems.
I agree that sending rollback is bad. However, it seems to me that manual reconciliation is rather cumbersome. I don't have any experience with that, honestly, is it really expected to be executed by human through JMX console in production? Or, should every commit exception catch block contain some reconciliation code? And what to do without recovery, just keep it locked?
By the way, when the primary owner crashes during transaction, does the transaction become in doubt? Because then it could be prepared on one backup and committed on another, and some lock should be acquired by the new owner (and the lock kept until the tx is reconciled).
> Transaction executed multiple times due to forwarded CommitCommand
> ------------------------------------------------------------------
>
> Key: ISPN-4137
> URL: https://issues.jboss.org/browse/ISPN-4137
> Project: Infinispan
> Issue Type: Bug
> Components: State Transfer, Transactions
> Reporter: Radim Vansa
> Assignee: Dan Berindei
> Priority: Critical
>
> 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.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the infinispan-issues
mailing list