Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-2377

Forwarded transactions not being completed on new owner

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • Major
    • None
    • 5.2.0.Beta1
    • State Transfer
    • None

    Description

      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.

      Attachments

        Activity

          People

            mircea.markus Mircea Markus (Inactive)
            esalter@synamedia.com Erik Salter (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: