ICEfaces
  1. ICEfaces
  2. ICE-1384

Thread prevents application server shutdown

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 1.6DR#2
    • Fix Version/s: 1.6DR#3, 1.6
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      JBoss 4.0.5

      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

          Activity

          Hide
          Ted Goddard added a comment -

          Mircea has observed that this shutdown problem only occurs with ICEfaces synchronous mode.

          Show
          Ted Goddard added a comment - Mircea has observed that this shutdown problem only occurs with ICEfaces synchronous mode.
          Hide
          Mircea Toma added a comment -

          Drain updated views queue in synchronous mode.

          Show
          Mircea Toma added a comment - Drain updated views queue in synchronous mode.

            People

            • Assignee:
              Unassigned
              Reporter:
              Ted Goddard
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: