Clustered stateful session bean removal of expired passivated instances causes deadlock ---------------------------------------------------------------------------------------
Key: JBAS-1560 URL: http://jira.jboss.com/jira/browse/JBAS-1560 Project: JBoss Application Server Type: Bug Components: EJBs Versions: JBossAS-4.0.1 Final, JBossAS-3.2.7 Final, JBossAS-4.0.1 SP1 Reporter: Scott M Stark Assigned to: Scott M Stark Priority: Critical Fix For: JBossAS-5.0 Alpha, JBossAS-4.0.2 Final, JBossAS-4.0.2RC1, JBossAS-3.2.8 Final The background processing of expired stateful sessions that have been passivated can result in deadlock when clustering is used due to the fact that removal of the stateful session occurs with the cache lock held. This conflicts with removal requests sent to invalidate a cache entry. The deadlock is illustrated by the following 3.2.6 traces: "Thread-25" daemon prio=1 tid=0x89648448 nid=0x3805 in Object.wait() [8aaed000..8aaed87c] at java.lang.Object.wait(Native Method) at org.jgroups.blocks.GroupRequest.doExecute(GroupRequest.java:505) at org.jgroups.blocks.GroupRequest.execute(GroupRequest.java:183) - locked <0x9b8ea9e8> (a java.lang.Object) at org.jgroups.blocks.MessageDispatcher.castMessage(MessageDispatcher.java:384) at org.jgroups.blocks.RpcDispatcher.callRemoteMethods(RpcDispatcher.java:134) at org.jboss.ha.framework.server.HAPartitionImpl.callMethodOnCluster(HAPartitionImpl.java:620) at org.jboss.ha.hasessionstate.server.HASessionStateImpl.removeSession(HASessionStateImpl.java:533) at org.jboss.ejb.plugins.StatefulHASessionPersistenceManager.removePassivated(StatefulHASessionPersistenceManager.java:219) at org.jboss.ejb.plugins.StatefulSessionInstanceCache.removePassivated(StatefulSessionInstanceCache.java:193) at org.jboss.ejb.plugins.LRUStatefulContextCachePolicy$RemoverTask.run(LRUStatefulContextCachePolicy.java:146) - locked <0x9296b8c0> (a java.lang.Object) at java.util.TimerThread.mainLoop(Timer.java:432) at java.util.TimerThread.run(Timer.java:382) "MessageDispatcher up processing thread" daemon prio=1 tid=0x086c06b0 nid=0x3805 waiting for monitor entry [8b788000..8b78887c] at org.jboss.ejb.plugins.AbstractInstanceCache.remove(AbstractInstanceCache.java:206) - waiting to lock <0x9296b8c0> (a java.lang.Object) at org.jboss.ejb.plugins.StatefulHASessionPersistenceManager.sessionExternallyModified(StatefulHASessionPersistenceManager.java:231) at org.jboss.ha.hasessionstate.server.HASessionStateImpl.ownedObjectExternallyModified(HASessionStateImpl.java:587) at org.jboss.ha.hasessionstate.server.HASessionStateImpl._setOwnership(HASessionStateImpl.java:504) at sun.reflect.GeneratedMethodAccessor400.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.jgroups.blocks.MethodCall.invoke(MethodCall.java:236) at org.jboss.ha.framework.server.HAPartitionImpl.handle(HAPartitionImpl.java:828) at org.jgroups.blocks.RequestCorrelator.handleRequest(RequestCorrelator.java:615) at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:512) at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:326) at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.handleUp(MessageDispatcher.java:722) at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.access$300(MessageDispatcher.java:554) at org.jgroups.blocks.MessageDispatcher$1.run(MessageDispatcher.java:691) at java.lang.Thread.run(Thread.java:534) The background removal of the expired passivated sessions should not be done with the cache lock held. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa - If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ JBoss-Development mailing list JBoss-Development@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-development