[
https://issues.jboss.org/browse/ISPN-2383?page=com.atlassian.jira.plugin....
]
Mircea Markus commented on ISPN-2383:
-------------------------------------
the solution implemented was to keep track of the nodes where the transaction prepares and
send the rollback/commit to both these nodes and the new owners. Also the
StaleTransactionCleanupService is amended to only remoce transactions if the owners are no
longer in the cluster, rest of transactions being removed explicitly by the
rollback/commit commands.
Transactions incorrectly removed by the
StaleTransactionCleanupService causing inconsistencies
-----------------------------------------------------------------------------------------------
Key: ISPN-2383
URL:
https://issues.jboss.org/browse/ISPN-2383
Project: Infinispan
Issue Type: Bug
Components: State transfer
Reporter: Mircea Markus
Assignee: Mircea Markus
Priority: Blocker
Fix For: 5.2.0.CR1
- tx runs on N1, prepare a single-key tx (k1) on N2
- block commit execution on N2 and start N3 so that k1 node maps to N3
- the StaleTransactionCleanupService[1] removes the transaction from N2
- when commit is executed there's no tx on N2 to forward the commit to so it simply
does nothing
- the TxCompletionNotification arrives on N3 and rollbacks the uncommitted data
- data is lost!
Solution: the StaleTransactionCleanupService should not run concurrently with the NBST
but only after the NBST is finished. I.e. it should no longer be an topology listener, but
should be invoked explicitly during the NBST-complete RPC.
--
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