[infinispan-issues] [JBoss JIRA] (ISPN-2406) StaleTransactionCleanupService should not attempt cleanup if the local cache is stopping

Adrian Nistor (JIRA) jira-events at lists.jboss.org
Mon Oct 15 13:09:01 EDT 2012


     [ https://issues.jboss.org/browse/ISPN-2406?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Adrian Nistor updated ISPN-2406:
--------------------------------

    Description: 
While a cache is stopping there is a small window of time in which the StaleTransactionCleanupService still runs until the component registry manages to stop the TransactionTable and StaleTransactionCleanupService. The service might try to rollback transactions but the cache can no longer accept the rollback command because of its current status. This leads to exceptions being logged. This has no negative impact but is not ideal.

{noformat}
2012-10-15 19:23:19,740 TRACE [TransactionTable] (LockBreakingService,___defaultcache,NodeC-54695) Killing remote transaction originating on leaver GlobalTransaction:<NodeA-995>:1206:local
2012-10-15 19:23:19,740 TRACE [AbstractTransactionBoundaryCommand] (LockBreakingService,___defaultcache,NodeC-54695) About to execute tx command RollbackCommand {gtx=GlobalTransaction:<NodeA-995>:1206:remote, cacheName='___defaultcache', topologyId=-1}
2012-10-15 19:23:19,743 WARN  [TransactionTable] (LockBreakingService,___defaultcache,NodeC-54695) ISPN000102: Unable to roll back global transaction GlobalTransaction:<NodeA-995>:1206:remote
java.lang.IllegalStateException: Default cache is in 'TERMINATED' state and so it does not accept new invocations. Either restart it or recreate the cache container.
	at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:111)
	at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:93)
	at org.infinispan.commands.AbstractVisitor.visitRollbackCommand(AbstractVisitor.java:132)
	at org.infinispan.commands.tx.RollbackCommand.acceptVisitor(RollbackCommand.java:55)
	at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:347)
	at org.infinispan.commands.tx.AbstractTransactionBoundaryCommand.perform(AbstractTransactionBoundaryCommand.java:118)
	at org.infinispan.transaction.TransactionTable.updateStateOnNodesLeaving(TransactionTable.java:243)
	at org.infinispan.transaction.StaleTransactionCleanupService$1.run(StaleTransactionCleanupService.java:150)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
{noformat}

  was:
While a cache is stopping there is a small window of time in which the StaleTransactionCleanupService still runs until the component registry manages to stop the TransactionTable and StaleTransactionCleanupService. The service might try to rollback transactions but the cache can no longer accept the rollback command because of its current status. This leads to exceptions being logged. This has no negative impact but is not ideal.

2012-10-15 19:23:19,740 TRACE [TransactionTable] (LockBreakingService,___defaultcache,NodeC-54695) Killing remote transaction originating on leaver GlobalTransaction:<NodeA-995>:1206:local
2012-10-15 19:23:19,740 TRACE [AbstractTransactionBoundaryCommand] (LockBreakingService,___defaultcache,NodeC-54695) About to execute tx command RollbackCommand {gtx=GlobalTransaction:<NodeA-995>:1206:remote, cacheName='___defaultcache', topologyId=-1}
2012-10-15 19:23:19,743 WARN  [TransactionTable] (LockBreakingService,___defaultcache,NodeC-54695) ISPN000102: Unable to roll back global transaction GlobalTransaction:<NodeA-995>:1206:remote
java.lang.IllegalStateException: Default cache is in 'TERMINATED' state and so it does not accept new invocations. Either restart it or recreate the cache container.
	at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:111)
	at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:93)
	at org.infinispan.commands.AbstractVisitor.visitRollbackCommand(AbstractVisitor.java:132)
	at org.infinispan.commands.tx.RollbackCommand.acceptVisitor(RollbackCommand.java:55)
	at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:347)
	at org.infinispan.commands.tx.AbstractTransactionBoundaryCommand.perform(AbstractTransactionBoundaryCommand.java:118)
	at org.infinispan.transaction.TransactionTable.updateStateOnNodesLeaving(TransactionTable.java:243)
	at org.infinispan.transaction.StaleTransactionCleanupService$1.run(StaleTransactionCleanupService.java:150)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)



    
> StaleTransactionCleanupService should not attempt cleanup if the local cache is stopping
> ----------------------------------------------------------------------------------------
>
>                 Key: ISPN-2406
>                 URL: https://issues.jboss.org/browse/ISPN-2406
>             Project: Infinispan
>          Issue Type: Bug
>          Components: State transfer, Transactions
>    Affects Versions: 5.2.0.ALPHA1
>            Reporter: Adrian Nistor
>            Assignee: Mircea Markus
>            Priority: Minor
>             Fix For: 5.2.0.Final
>
>
> While a cache is stopping there is a small window of time in which the StaleTransactionCleanupService still runs until the component registry manages to stop the TransactionTable and StaleTransactionCleanupService. The service might try to rollback transactions but the cache can no longer accept the rollback command because of its current status. This leads to exceptions being logged. This has no negative impact but is not ideal.
> {noformat}
> 2012-10-15 19:23:19,740 TRACE [TransactionTable] (LockBreakingService,___defaultcache,NodeC-54695) Killing remote transaction originating on leaver GlobalTransaction:<NodeA-995>:1206:local
> 2012-10-15 19:23:19,740 TRACE [AbstractTransactionBoundaryCommand] (LockBreakingService,___defaultcache,NodeC-54695) About to execute tx command RollbackCommand {gtx=GlobalTransaction:<NodeA-995>:1206:remote, cacheName='___defaultcache', topologyId=-1}
> 2012-10-15 19:23:19,743 WARN  [TransactionTable] (LockBreakingService,___defaultcache,NodeC-54695) ISPN000102: Unable to roll back global transaction GlobalTransaction:<NodeA-995>:1206:remote
> java.lang.IllegalStateException: Default cache is in 'TERMINATED' state and so it does not accept new invocations. Either restart it or recreate the cache container.
> 	at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:111)
> 	at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:93)
> 	at org.infinispan.commands.AbstractVisitor.visitRollbackCommand(AbstractVisitor.java:132)
> 	at org.infinispan.commands.tx.RollbackCommand.acceptVisitor(RollbackCommand.java:55)
> 	at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:347)
> 	at org.infinispan.commands.tx.AbstractTransactionBoundaryCommand.perform(AbstractTransactionBoundaryCommand.java:118)
> 	at org.infinispan.transaction.TransactionTable.updateStateOnNodesLeaving(TransactionTable.java:243)
> 	at org.infinispan.transaction.StaleTransactionCleanupService$1.run(StaleTransactionCleanupService.java:150)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:662)
> {noformat}

--
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


More information about the infinispan-issues mailing list