[
https://jira.jboss.org/jira/browse/JBAS-7110?page=com.atlassian.jira.plug...
]
Paul Ferraro resolved JBAS-7110.
--------------------------------
Resolution: Done
Adapted new ThreadGate implementation from org.jboss.cache.util.concurrent.ReclosableLatch
utilizing an AbstractQueuedSynchronizer.
ClusterPartition.ThreadGate can block shutdown of AS
----------------------------------------------------
Key: JBAS-7110
URL:
https://jira.jboss.org/jira/browse/JBAS-7110
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Clustering
Reporter: Paul Ferraro
Assignee: Paul Ferraro
Fix For: JBossAS-5.2.0.Beta1, JBossAS-6.0.0.Alpha1
The following stack trace appears in a thread dump, after a failure to shutdown the AS
within the testsuite:
Thread: JBoss Shutdown Hook : priority:5, demon:true, threadId:11,
threadState:TIMED_WAITING
- waiting on <0x1d7ada9> (a
org.jboss.ha.framework.server.ClusterPartition$ThreadGate)
java.lang.Object.wait(Native Method)
org.jboss.ha.framework.server.ClusterPartition$ThreadGate.await(ClusterPartition.java:2381)
org.jboss.ha.framework.server.ClusterPartition.callAsynchMethodOnCluster(ClusterPartition.java:1325)
org.jboss.ha.framework.server.DistributedReplicantManagerImpl.remove(DistributedReplicantManagerImpl.java:448)
org.jboss.profileservice.cluster.repository.DefaultRepositoryClusteringHandler.shutdown(DefaultRepositoryClusteringHandler.java:275)
org.jboss.system.server.profileservice.repository.clustered.ClusteredDeploymentRepository.unload(ClusteredDeploymentRepository.java:459)
org.jboss.system.server.profile.repository.AbstractProfile.destroy(AbstractProfile.java:163)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.jboss.system.server.profileservice.repository.AbstractProfileLifeCycleAction.invoke(AbstractProfileLifeCycleAction.java:97)
org.jboss.system.server.profileservice.repository.AbstractProfileLifeCycleAction.invoke(AbstractProfileLifeCycleAction.java:77)
org.jboss.system.server.profileservice.repository.AbstractProfileLifeCycleAction.uninstall(AbstractProfileLifeCycleAction.java:57)
org.jboss.system.server.profileservice.repository.AbstractProfileAction.uninstall(AbstractProfileAction.java:70)
org.jboss.system.server.profileservice.repository.AbstractProfileService.uninstall(AbstractProfileService.java:417)
org.jboss.dependency.plugins.AbstractControllerContext.uninstall(AbstractControllerContext.java:354)
org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:1665)
org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1276)
org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1180)
org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1235)
org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1180)
org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1235)
org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:828)
org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
org.jboss.system.server.profileservice.repository.AbstractProfileService.deactivateProfile(AbstractProfileService.java:448)
org.jboss.system.server.profileservice.ProfileServiceBootstrap.deactivateProfiles(ProfileServiceBootstrap.java:381)
org.jboss.system.server.profileservice.ProfileServiceBootstrap.shutdown(ProfileServiceBootstrap.java:339)
org.jboss.bootstrap.AbstractServerImpl.shutdownServer(AbstractServerImpl.java:571)
org.jboss.bootstrap.AbstractServerImpl$ShutdownHook.run(AbstractServerImpl.java:909)
The root cause is a bug in ThreadGate.await(long), which does not correctly return if the
timeout value is reached while the gate is still closed.
This same issue was found and fixed in JBC. See JBCACHE-1173.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira