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

StaleTransactionCleanupService should not attempt cleanup if the local cache is stopping

    XMLWordPrintable

Details

    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.

      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)
      

      Attachments

        Activity

          People

            mircea.markus Mircea Markus (Inactive)
            anistor Adrian Nistor (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: