[infinispan-issues] [JBoss JIRA] (ISPN-3063) Data Inconsistency when Recovery + syncCommitPhase=false

Dan Berindei (JIRA) jira-events at lists.jboss.org
Thu May 16 05:41:06 EDT 2013


    [ https://issues.jboss.org/browse/ISPN-3063?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12774713#comment-12774713 ] 

Dan Berindei commented on ISPN-3063:
------------------------------------

I think the TransactionCoordinator should not send a TxCompletionNotificationCommand at all if syncCommitPhase==false. There is a check already in AbstractEnlistmentAdapter.removeTransactionInfoRemotely, but maybe it's sent anyway when recovery is enabled.
                
> Data Inconsistency when Recovery + syncCommitPhase=false
> --------------------------------------------------------
>
>                 Key: ISPN-3063
>                 URL: https://issues.jboss.org/browse/ISPN-3063
>             Project: Infinispan
>          Issue Type: Bug
>          Components: Transactions
>    Affects Versions: 5.2.5.Final, 5.3.0.Alpha1
>            Reporter: Pedro Ruivo
>            Assignee: Pedro Ruivo
>            Priority: Minor
>              Labels: recovery, transaction
>
> with syncCommitPhase=false, the CommitCommand is sent asynchronously. the TransactionCoordinator sends immediately the TxCompletionNotificationCommand that can be deliver first than the CommitCommand. The CommitCommand fails silently:
> {code}
> if (transaction == null) {
>   if (trace) log.tracef("Did not find a RemoteTransaction for %s", globalTx);
>     return invalidRemoteTxReturnValue();
>   }
> }
> {code}
> This bug affects the 5.3 and 5.2.5. I've made one test case to catch this bug:
> 5.3 => https://github.com/pruivo/infinispan/blob/rec-async/core/src/test/java/org/infinispan/tx/recovery/RecoveryWithAsyncCommitPhase.java
> 5.2 => https://github.com/pruivo/infinispan/blob/rec-async-5.2/core/src/test/java/org/infinispan/tx/recovery/RecoveryWithAsyncCommitPhase.java
> Note: this bug may happen if you use async communication (prepare in 1PC)
> Note2: this may be related to https://issues.jboss.org/browse/ISPN-2719
> Possible solutions:
>  * do not allow to configure the cache with syncCommitPhase=false && recovery enabled;
>  * force syncCommitPhase=true when recovery is enabled;
>  * send the CommitCommand and the TxCompletionNotificationCommand as Regular Messages (they will be deliver in FIFO order)
> Thanks to Diego Didona that spotted this bug.

--
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