]
Mircea Markus resolved ISPN-2377.
---------------------------------
Resolution: Duplicate Issue
Duplicate of ISPN-2382.
Forwarded transactions not being completed on new owner
-------------------------------------------------------
Key: ISPN-2377
URL:
https://issues.jboss.org/browse/ISPN-2377
Project: Infinispan
Issue Type: Bug
Components: State transfer
Affects Versions: 5.2.0.Beta1
Reporter: Erik Salter
Assignee: Mircea Markus
On a view change, transactions that are forwarded to a new node aren't necessarily
completed on their new owner if they have only acquired local locks and have no
modifications, which is the case with an aggregate lock.
Here's an example:
Node 1 started the following transaction:
GlobalTransaction:<east-dg01-49896(east)>:9927
It was forwarded to Node 3:
2012-10-09 08:48:51,021 TRACE [org.infinispan.transaction.TransactionTable]
(OOB-16,erm-cluster,east-dg03-49466(east)) Created and registered remote transaction
RemoteTransaction{modifications=[], lookedUpEntries={}, lockedKeys=null,
backupKeyLocks=null, missingLookedUpEntries=false, markForRollback=false,
tx=GlobalTransaction:<east-dg01-49896(east)>:9927:local}
Then it was completed on the originating node, but due to there being no modifications
(and no remote locks acquired), the tx completion method is never forwarded to the new
owner.
Consequently, the new node will never allow a lock to this key, due to this tx being in
the table and other locks waiting on it to complete.
2012-10-09 08:48:51,285 TRACE [org.infinispan.transaction.AbstractCacheTransaction]
(OOB-20,erm-cluster,east-dg03-49466(east)) Transaction
gtx=GlobalTransaction:<east-dg01-49896(east)>:9927:local potentially locks key
ServiceGroupKey[edgeDeviceId=2,serviceGroupNo=201]? true
...
Could not acquire lock on ServiceGroupKey[edgeDeviceId=2,serviceGroupNo=201] on behalf of
transaction GlobalTransaction:<east-dg01-49896(east)>:10177:remote. Lock is being
held by null
There are two ways I can think of to fix this. One is to not transmit txs that don't
have modifications or backup locks and just keep them local. The other is to add a flag
to LocalTransaction to let it know it was transmitted to a new node so the tx completion
message is sent.
--
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: