[infinispan-issues] [JBoss JIRA] (ISPN-1595) Implicit transactions not being cleared from transaction table

Galder Zamarreño (Commented) (JIRA) jira-events at lists.jboss.org
Tue Dec 20 05:20:09 EST 2011


    [ https://issues.jboss.org/browse/ISPN-1595?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12652238#comment-12652238 ] 

Galder Zamarreño commented on ISPN-1595:
----------------------------------------

TxCompletionNotificationCommand is used to remove remote transactions and this is sent asynchronously. However, sometimes when the test is executed (org.infinispan.lock.APITest.testSilentLockFailureAffectsPostOperations()), these commands are only executed once the cache is stopped and at that point the cache is undefined, i.e.

{code}2011-12-20 11:04:37,296 1353  TRACE [org.infinispan.remoting.rpc.RpcManagerImpl] (main:) NodeA-21646 broadcasting call TxCompletionNotificationCommand{ xid=null, internalId=0, gtx=GlobalTransaction:<NodeA-21646>:1:local, cacheName=___defaultcache}  to recipient list null
...
2011-12-20 11:04:37,329 1386  DEBUG [org.infinispan.CacheImpl] (main:) Stopping cache ___defaultcache on NodeB-21723
...
2011-12-20 11:04:37,330 1387  DEBUG [org.infinispan.transaction.TransactionTable] (main:) Wait for on-going transactions to finish for 2
...
2011-12-20 11:04:37,331 1388  TRACE [org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher] (Incoming-2,Infinispan-Cluster,NodeB-21723:) Attempting to execute command: TxCompletionNotificationCommand{ xid=null, internalId=0, gtx=GlobalTransaction:<NodeA-21646>:1:local, cacheName=___defaultcache}  [sender=NodeA-21646]
2011-12-20 11:04:37,332 1389  TRACE [org.infinispan.remoting.InboundInvocationHandlerImpl] (Incoming-2,Infinispan-Cluster,NodeB-21723:) Strict peer to peer off, so silently ignoring that ___defaultcache cache is not defined
seconds.

{code}

There's a couple of interesting things here:

1. When a cache is stopped, the cache definition is cleared and so no TxCompletionNotificationCommand can execute, so trying to wait for remote transactions to useless.

2. I dunno whether is chance and or there's some other reason behind it, but it appears as if the 'Incoming-' thread takes time to kick off, around 40ms. Might be just timing...

I think we need a better solution for 1)
                
> Implicit transactions not being cleared from transaction table
> --------------------------------------------------------------
>
>                 Key: ISPN-1595
>                 URL: https://issues.jboss.org/browse/ISPN-1595
>             Project: Infinispan
>          Issue Type: Bug
>          Components: Transactions
>    Affects Versions: 5.1.0.CR1
>            Reporter: Galder Zamarreño
>            Assignee: Galder Zamarreño
>            Priority: Blocker
>             Fix For: 5.1.0.CR2
>
>         Attachments: infinispan.log, SampleTest.java
>
>
> The attached test case results in a failure to stop the cache in time with a warning message like this:
> {code}2011-12-06 17:34:20,018 31733 WARN  [org.infinispan.transaction.TransactionTable] (main:) ISPN000100: Stopping but there're transactions that did not finish in time: 
> localTransactions={TransactionImple < ac, BasicAction: 0:ffffa9fe8742:dc96:4ede43ed:2 status: ActionStatus.COMMITTED >=LocalXaTransaction{xid=< 
> 131076, 29, 28, 0000000000-1-1-87-2-1216600-36-10678-3467-19000249, 0000000000-1-1-87-2-1216600-36-10678-3467-190003 >} 
> LocalTransaction{remoteLockedNodes=null, isMarkedForRollback=false, transaction=TransactionImple < ac, BasicAction: 0:ffffa9fe8742:dc96:4ede43ed:2 status: 
> ActionStatus.COMMITTED >, lockedKeys=null, backupKeyLocks=null, viewId=1} org.infinispan.transaction.xa.recovery.RecoveryAwareLocalTransaction at 1}, 
> remoteTransactions{}{code}
> It would appear that the implicitly started cache operation for "c0.put(1, "v1");" is not properly cleared?
> {code}2011-12-06 17:33:49,862 1577  TRACE [org.infinispan.CacheImpl] (main:) Implicit transaction started!
> 2011-12-06 17:33:49,862 1577  TRACE [org.infinispan.CacheImpl] (main:) Marked tx as implicit.
> 2011-12-06 17:33:49,863 1578  TRACE [org.infinispan.interceptors.InvocationContextInterceptor] (main:___defaultcache) Invoked with command 
> PutKeyValueCommand{key=1, value=v1, flags=null, putIfAbsent=false, lifespanMillis=-1, maxIdleTimeMillis=-1} and InvocationContext 
> [LocalTxInvocationContext{flags=null}]
> 2011-12-06 17:33:49,863 1578  TRACE [org.infinispan.statetransfer.StateTransferLockImpl] (main:___defaultcache) Acquired shared state transfer shared lock, 
> total holders: 1
> 2011-12-06 17:33:49,866 1581  TRACE [org.infinispan.transaction.TransactionTable] (main:___defaultcache) Created a new tx: LocalXaTransaction{xid=null} 
> LocalTransaction{remoteLockedNodes=null, isMarkedForRollback=false, transaction=TransactionImple < ac, BasicAction: 0:ffffa9fe8742:dc96:4ede43ed:2 status: 
> ActionStatus.RUNNING >, lockedKeys=null, backupKeyLocks=null, viewId=1} org.infinispan.transaction.xa.recovery.RecoveryAwareLocalTransaction at 1
> ...
> 2011-12-06 17:33:49,876 1591  TRACE [org.infinispan.CacheImpl] (main:) Committing transaction as it was implicit: TransactionImple < ac, BasicAction: 
> 0:ffffa9fe8742:dc96:4ede43ed:2 status: ActionStatus.RUNNING >
> {code}
> Find attached both test and trace log file.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       



More information about the infinispan-issues mailing list