Details
Description
When attempting to shutdown JBoss after using an ICEfaces application, one or more of the following threads appears to be preventing the shutdown. It is more likely that an Object.wait() prevents shutdown than a Thread.sleep() since Thread.sleep() can be interrupted.
"ScannerThread" daemon prio=5 tid=0x0051fe70 nid=0x1941c00 in Object.wait() [0xb0d89000..0xb0d8bd10]
at java.lang.Object.wait(Native Method)
- waiting on <0x0c6e2728> (a edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue$SerializableLock)
at java.lang.Object.wait(Object.java:474)
at edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:315)
- locked <0x0c6e2728> (a edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue$SerializableLock)
at com.icesoft.faces.webapp.http.core.SendUpdatedViews$2.run(SendUpdatedViews.java:33)
at com.icesoft.faces.webapp.http.core.ViewQueue.put(ViewQueue.java:16)
at com.icesoft.faces.webapp.http.servlet.ServletView.put(ServletView.java:83)
at com.icesoft.faces.webapp.http.core.PushServer.shutdown(PushServer.java:45)
at com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet.shutdown(ThreadBlockingAdaptingServlet.java:24)
at com.icesoft.faces.webapp.http.servlet.EnvironmentAdaptingServlet.shutdown(EnvironmentAdaptingServlet.java:33)
at com.icesoft.faces.webapp.http.servlet.PushServlet.shutdown(PushServlet.java:32)
at com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.shutdown(PathDispatcher.java:49)
at com.icesoft.faces.webapp.http.servlet.PathDispatcher.shutdown(PathDispatcher.java:57)
at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.shutdown(MainSessionBoundServlet.java:38)
at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.shutdown(SessionDispatcher.java:42)
at com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.shutdown(PathDispatcher.java:49)
at com.icesoft.faces.webapp.http.servlet.PathDispatcher.shutdown(PathDispatcher.java:57)
at com.icesoft.faces.webapp.http.servlet.MainServlet.destroy(MainServlet.java:57)
at org.apache.catalina.core.StandardWrapper.unload(StandardWrapper.java:1326)
- locked <0x0bea9e28> (a org.apache.catalina.core.StandardWrapper)
at org.apache.catalina.core.StandardWrapper.stop(StandardWrapper.java:1654)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4345)
- locked <0x0bdf7630> (a org.apache.catalina.core.StandardContext)
at org.apache.catalina.core.ContainerBase.destroy(ContainerBase.java:1132)
at org.apache.catalina.core.StandardContext.destroy(StandardContext.java:4449)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.commons.modeler.BaseModelMBean.invoke(BaseModelMBean.java:503)
at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.web.tomcat.tc5.TomcatDeployer.performUndeployInternal(TomcatDeployer.java:450)
at org.jboss.web.tomcat.tc5.TomcatDeployer.performUndeploy(TomcatDeployer.java:421)
at org.jboss.web.AbstractWebDeployer.stop(AbstractWebDeployer.java:418)
- locked <0x0bd48328> (a org.jboss.web.tomcat.tc5.TomcatDeployer)
at org.jboss.web.WebModule.stopModule(WebModule.java:100)
- locked <0x0bd4f530> (a org.jboss.web.WebModule)
at org.jboss.web.WebModule.stopService(WebModule.java:66)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStop(ServiceMBeanSupport.java:315)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:247)
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
at $Proxy0.stop(Unknown Source)
at org.jboss.system.ServiceController.stop(ServiceController.java:508)
at sun.reflect.GeneratedMethodAccessor380.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy104.stop(Unknown Source)
at org.jboss.web.AbstractWebContainer.stop(AbstractWebContainer.java:498)
- locked <0x099e3358> (a org.jboss.web.tomcat.tc5.Tomcat5)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)
at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238)
at org.jboss.ws.integration.jboss.DeployerInterceptor.stop(DeployerInterceptor.java:122)
at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.stop(SubDeployerInterceptorSupport.java:196)
at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:99)
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:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy105.stop(Unknown Source)
at org.jboss.deployment.MainDeployer.stop(MainDeployer.java:667)
at org.jboss.deployment.MainDeployer.stop(MainDeployer.java:659)
at org.jboss.deployment.MainDeployer.undeploy(MainDeployer.java:638)
at org.jboss.deployment.MainDeployer.undeploy(MainDeployer.java:632)
at org.jboss.deployment.MainDeployer.undeploy(MainDeployer.java:615)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
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:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy8.undeploy(Unknown Source)
at org.jboss.deployment.scanner.URLDeploymentScanner.undeploy(URLDeploymentScanner.java:450)
at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:604)
- locked <0x08e937c0> (a org.jboss.deployment.scanner.URLDeploymentScanner)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225)
"Session Monitor" daemon prio=5 tid=0x005aee30 nid=0x1ba3400 waiting on condition [0xb253a000..0xb253ad10]
at java.lang.Thread.sleep(Native Method)
at com.icesoft.faces.webapp.http.servlet.SessionDispatcher$Listener$1.run(SessionDispatcher.java:138)
"Session Monitor" daemon prio=5 tid=0x00590470 nid=0x1c6d200 in Object.wait() [0xb24b9000..0xb24b9d10]
at java.lang.Object.wait(Native Method)
- waiting on <0x0bb86210> (a edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue$SerializableLock)
at java.lang.Object.wait(Object.java:474)
at edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:315)
- locked <0x0bb86210> (a edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue$SerializableLock)
at com.icesoft.faces.webapp.http.core.SendUpdatedViews$2.run(SendUpdatedViews.java:33)
at com.icesoft.faces.webapp.http.core.ViewQueue.put(ViewQueue.java:16)
at com.icesoft.faces.webapp.http.servlet.ServletView.put(ServletView.java:83)
at com.icesoft.faces.webapp.http.core.PushServer.shutdown(PushServer.java:45)
at com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet.shutdown(ThreadBlockingAdaptingServlet.java:24)
at com.icesoft.faces.webapp.http.servlet.EnvironmentAdaptingServlet.shutdown(EnvironmentAdaptingServlet.java:33)
at com.icesoft.faces.webapp.http.servlet.PushServlet.shutdown(PushServlet.java:32)
at com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.shutdown(PathDispatcher.java:49)
at com.icesoft.faces.webapp.http.servlet.PathDispatcher.shutdown(PathDispatcher.java:57)
at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.shutdown(MainSessionBoundServlet.java:38)
at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.sessionShutdown(SessionDispatcher.java:56)
at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.access$200(SessionDispatcher.java:17)
at com.icesoft.faces.webapp.http.servlet.SessionDispatcher$Listener.sessionShutdown(SessionDispatcher.java:89)
at com.icesoft.faces.webapp.http.servlet.SessionDispatcher$Listener$1.run(SessionDispatcher.java:126)
Issue Links
- depends on
-
ICE-1375 Deadlock for persistent connections
- Closed
Mircea has observed that this shutdown problem only occurs with ICEfaces synchronous mode.