Adrian Nistor created ISPN-2406:
-----------------------------------
Summary: StaleTransactionCleanupService should not try to 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.
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)
--
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