[
https://issues.jboss.org/browse/ISPN-3063?page=com.atlassian.jira.plugin....
]
Pedro Ruivo commented on ISPN-3063:
-----------------------------------
not really. I didn't test without the recovery, but the logic is different:
{code}
//TransactionXaAdapter.forgetSuccessfullyCompletedTransaction()
if (recoveryEnabled) {
recoveryManager.removeRecoveryInformationFromCluster(localTransaction.getRemoteLocksAcquired(),
xid, false, gtx);
txTable.removeLocalTransaction(localTransaction);
} else {
releaseLocksForCompletedTransaction(localTransaction);
}
{code}
and the releaseLocksForCompletedTransaction has the condition:
{code}
if (mayHaveRemoteLocks(localTransaction) && !isSecondPhaseAsync) {
...
}
{code}
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: Mircea Markus
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/or...
5.2 =>
https://github.com/pruivo/infinispan/blob/rec-async-5.2/core/src/test/jav...
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