[jboss-user] [JBoss Cache Users] - Re: JBossCache Deadlock in Hibernate BulkOperationCleanupAct

nandanjain do-not-reply at jboss.com
Tue Dec 8 23:44:45 EST 2009


Hi All,
I m using Jboss 5.1.0 in clustered environment. Hibernate version is 3.3.1. 
whenever i try to delete multiple lines from the db, after the operation i get an exception like below.


16:45:10,621 ERROR [ActionQueue] could not release a cache lock
  | org.hibernate.cache.CacheException: java.lang.IllegalStateException: Transaction TransactionImple < ac, BasicAction: 7f000001:e946:4b1e3199:71 status: ActionStatus.COMMITTED > is not in a valid state to be invoking cache operations on.
  |         at org.hibernate.cache.jbc2.util.CacheHelper.removeAll(CacheHelper.java:380)
  |         at org.hibernate.cache.jbc2.util.CacheHelper.removeAll(CacheHelper.java:360)
  |         at org.hibernate.cache.jbc2.access.TransactionalAccessDelegate.evictOrRemoveAll(TransactionalAccessDelegate.java:146)
  |         at org.hibernate.cache.jbc2.access.TransactionalAccessDelegate.evictAll(TransactionalAccessDelegate.java:142)
  |         at org.hibernate.cache.jbc2.entity.TransactionalAccess.evictAll(TransactionalAccess.java:102)
  |         at org.hibernate.impl.SessionFactoryImpl.evictEntity(SessionFactoryImpl.java:870)
  |         at org.hibernate.action.BulkOperationCleanupAction.evictEntityRegions(BulkOperationCleanupAction.java:153)
  |         at org.hibernate.action.BulkOperationCleanupAction.afterTransactionCompletion(BulkOperationCleanupAction.java:132)
  |         at org.hibernate.engine.ActionQueue.afterTransactionCompletion(ActionQueue.java:198)
  |         at org.hibernate.impl.SessionImpl.afterTransactionCompletion(SessionImpl.java:451)
  |         at org.hibernate.jdbc.JDBCContext.afterTransactionCompletion(JDBCContext.java:252)
  |         at org.hibernate.transaction.CacheSynchronization.afterCompletion(CacheSynchronization.java:117)
  |         at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.afterCompletion(SynchronizationImple.java:123)
  |         at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.afterCompletion(TwoPhaseCoordinator.java:381)
  |         at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:99)
  |         at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:177)
  |         at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1423)
  |         at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:137)
  |         at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75)
  |         at org.jboss.aspects.tx.TxPolicy.endTransaction(TxPolicy.java:170)
  |         at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:87)
  |         at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:190)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.aspects.remoting.ReplicantsManagerInterceptor.invoke(ReplicantsManagerInterceptor.java:52)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.ejb3.security.RoleBasedAuthorizationInterceptorv2.invoke(RoleBasedAuthorizationInterceptorv2.java:201)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3AuthenticationInterceptorv2.java:186)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:41)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContainerShutdownInterceptor.java:67)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
  |         at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContainer.java:176)
  |         at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContainer.java:216)
  |         at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:207)
  |         at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:164)
  |         at $Proxy476.scheduledBackTrack(Unknown Source)
  |         at com.dxd.server.notification.BackTrackSchedular$1.run(BackTrackSchedular.java:87)
  |         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
  |         at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
  |         at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
  |         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
  |         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
  |         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
  |         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:619)
  | Caused by: java.lang.IllegalStateException: Transaction TransactionImple < ac, BasicAction: 7f000001:e946:4b1e3199:71 status: ActionStatus.COMMITTED > is not in a valid state to be invoking cache operations on.
  |         at org.jboss.cache.interceptors.TxInterceptor.registerTransaction(TxInterceptor.java:727)
  |         at org.jboss.cache.interceptors.TxInterceptor.attachGlobalTransaction(TxInterceptor.java:474)
  |         at org.jboss.cache.interceptors.TxInterceptor.attachGtxAndPassUpChain(TxInterceptor.java:300)
  |         at org.jboss.cache.interceptors.TxInterceptor.handleDefault(TxInterceptor.java:283)
  |         at org.jboss.cache.commands.AbstractVisitor.visitRemoveNodeCommand(AbstractVisitor.java:75)
  |         at org.jboss.cache.commands.write.RemoveNodeCommand.acceptVisitor(RemoveNodeCommand.java:125)
  |         at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
  |         at org.jboss.cache.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:131)
  |         at org.jboss.cache.commands.AbstractVisitor.visitRemoveNodeCommand(AbstractVisitor.java:75)
  |         at org.jboss.cache.commands.write.RemoveNodeCommand.acceptVisitor(RemoveNodeCommand.java:125)
  |         at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
  |         at org.jboss.cache.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:178)
  |         at org.jboss.cache.interceptors.InvocationContextInterceptor.visitRemoveNodeCommand(InvocationContextInterceptor.java:88)
  |         at org.jboss.cache.commands.write.RemoveNodeCommand.acceptVisitor(RemoveNodeCommand.java:125)
  |         at org.jboss.cache.interceptors.InterceptorChain.invoke(InterceptorChain.java:287)
  |         at org.jboss.cache.invocation.CacheInvocationDelegate.removeNode(CacheInvocationDelegate.java:478)
  |         at org.jboss.ha.cachemanager.CacheManagerManagedCache.removeNode(CacheManagerManagedCache.java:317)
  |         at org.hibernate.cache.jbc2.util.CacheHelper.removeAll(CacheHelper.java:378)
  |         ... 53 more

Can somebody help me regarding this issue. 
I came to know that this is a bug in hibernate when doing a evitAll(). But now what should i do to resolve it.

Thanks in advance....

View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4269709#4269709

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4269709



More information about the jboss-user mailing list