[
https://issues.jboss.org/browse/ISPN-4091?page=com.atlassian.jira.plugin....
]
Dan Berindei commented on ISPN-4091:
------------------------------------
It turns out requesting the transactions from the primary owner only fixes part of the
problem.
For transactions that are started on the old primary owner after the tx list was sent to
the joiner, we still don't replicate the lock information to the joiner (because the
originator is still the primary owner in the union CH that we use during state transfer).
When state transfer ends and the joiner becomes the new primary owner, it will allow other
txs to lock the same key.
We should change PessimisticLockingInterceptor to replicate the lock command to the other
owners even if the originator is the primary owner, when there is a state transfer in
progress.
Transactions and data should prefer to be sourced from a primary
owner
----------------------------------------------------------------------
Key: ISPN-4091
URL:
https://issues.jboss.org/browse/ISPN-4091
Project: Infinispan
Issue Type: Bug
Components: State Transfer
Affects Versions: 5.2.7.Final
Reporter: Erik Salter
Assignee: Dan Berindei
The current state transfer mechanism will ask the backup segments for transaction and
state information. However, this breaks if there is a pessimistic transaction executing
on the primary data owner, Consider the following use case:
A new owner joins and sources the ongoing transactions and data for key k from the
backup. Meanwhile, a local transaction has started on the primary owner for k, but has
not prepared on any remote nodes. So the new node does not know about the ongoing
transaction. While that's going on, a new tx starts on the new owner. Since these
are pessimistic, the new transaction will acquires the lock for the same key.
So we can have data inconsistency.
The state transfer mechanism should prefer to source the transaction and state
information from the primary owner. This should cover all cases: if the originator is not
the primary owner, then any (backup) locks must be replicated to all the owners, either
directly during the tx or during a previous state transfer.
--
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