JBoss shutdown stalls at org.jboss.web.tomcat.service.session.JBossCacheManager.stop() in EAP 5

Solution Unverified - Updated -

Issue

When JBoss session replication is enabled, JBoss shutdown stalls at the application undeployment due to wait all web request processing is completed. The thread dump shows shutdown hang at org.jboss.web.tomcat.service.session.JBossCacheManager.stop():

"JBoss Shutdown Hook" daemon prio=10 tid=0x00007f8ca8008000 nid=0x7283 waiting on condition [0x00007f8c71a04000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000f253f5b8> (a java.util.concurrent.Semaphore$FairSync)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:811)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:969)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1281)
    at java.util.concurrent.Semaphore.acquire(Semaphore.java:441)
    at org.jboss.web.tomcat.service.session.JBossCacheManager.stop(JBossCacheManager.java:861)
    at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4574)
    - locked <0x00000000f24f9848> (a org.apache.catalina.core.StandardContext)
    at org.apache.catalina.core.ContainerBase.destroy(ContainerBase.java:1175)
    at org.apache.catalina.core.StandardContext.destroy(StandardContext.java:4668)
    at sun.reflect.GeneratedMethodAccessor403.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
    at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
    at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performUndeployInternal(TomcatDeployment.java:599)
    at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performUndeploy(TomcatDeployment.java:573)
    at org.jboss.web.deployers.AbstractWarDeployment.stop(AbstractWarDeployment.java:480)
    - locked <0x00000000f24ed898> (a org.jboss.web.tomcat.service.deployers.TomcatDeployment)
    at org.jboss.web.deployers.WebModule.stopModule(WebModule.java:137)
    - locked <0x00000000f24ed878> (a org.jboss.web.deployers.WebModule)
    at org.jboss.web.deployers.WebModule.stop(WebModule.java:102)
    at sun.reflect.GeneratedMethodAccessor401.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
    at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
    at $Proxy38.stop(Unknown Source)
    at org.jboss.system.microcontainer.StartStopLifecycleAction.uninstallAction(StartStopLifecycleAction.java:56)
    at org.jboss.system.microcontainer.StartStopLifecycleAction.uninstallAction(StartStopLifecycleAction.java:37)
    at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleUninstallAction(SimpleControllerContextAction.java:79)
    at org.jboss.dependency.plugins.action.AccessControllerContextAction.uninstall(AccessControllerContextAction.java:131)
    at org.jboss.dependency.plugins.AbstractControllerContextActions.uninstall(AbstractControllerContextActions.java:58)
    at org.jboss.dependency.plugins.AbstractControllerContext.uninstall(AbstractControllerContext.java:354)
    at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:1685)
    at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1295)
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:831)
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:556)
    at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
    at org.jboss.system.ServiceController.stop(ServiceController.java:510)
    at org.jboss.system.deployers.ServiceDeployer.stop(ServiceDeployer.java:170)
    at org.jboss.system.deployers.ServiceDeployer.undeploy(ServiceDeployer.java:150)
    at org.jboss.system.deployers.ServiceDeployer.undeploy(ServiceDeployer.java:46)
    at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalUndeploy(AbstractSimpleRealDeployer.java:69)
    at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.undeploy(AbstractRealDeployer.java:117)
    at org.jboss.deployers.plugins.deployers.DeployerWrapper.undeploy(DeployerWrapper.java:204)
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doUndeploy(DeployersImpl.java:1484)
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doUninstallParentLast(DeployersImpl.java:1391)
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doUninstallParentLast(DeployersImpl.java:1384)
    at org.jboss.deployers.plugins.deployers.DeployersImpl.uninstall(DeployersImpl.java:1346)
    at org.jboss.dependency.plugins.AbstractControllerContext.uninstall(AbstractControllerContext.java:354)
    at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:1685)
    at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1295)
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:831)
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:556)
    at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:702)
    at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:676)
    at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
    at org.jboss.system.server.profileservice.repository.ProfileDeployAction.uninstall(ProfileDeployAction.java:95)
    at org.jboss.system.server.profileservice.repository.AbstractProfileAction.uninstall(AbstractProfileAction.java:70)
    at org.jboss.system.server.profileservice.repository.AbstractProfileService.uninstall(AbstractProfileService.java:417)
    at org.jboss.dependency.plugins.AbstractControllerContext.uninstall(AbstractControllerContext.java:354)
    at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:1685)
    at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1295)
    at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1198)
    at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1254)
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:831)
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:556)
    at org.jboss.system.server.profileservice.repository.AbstractProfileService.deactivateProfile(AbstractProfileService.java:448)
    at org.jboss.system.server.profileservice.ProfileServiceBootstrap.deactivateProfiles(ProfileServiceBootstrap.java:381)
    at org.jboss.system.server.profileservice.ProfileServiceBootstrap.shutdown(ProfileServiceBootstrap.java:339)
    at org.jboss.bootstrap.AbstractServerImpl.shutdownServer(AbstractServerImpl.java:571)
    at org.jboss.bootstrap.AbstractServerImpl$ShutdownHook.run(AbstractServerImpl.java:909)

Environment

  • JBoss Enterprise Application Platform (EAP) 5
  • JBoss Clustering (Session replication) enabled

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content