Uploaded image for project: 'HiveMind'
  1. HiveMind
  2. HIVEMIND-104

Thread Deadlock

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.1
    • 1.1
    • framework
    • None
    • HiveMind 1.1-alpha-3

    Description

      Occasionally my Tapestry applications seem to lock up. Just happened when I was in the debugger and I was able to pause and see what the contention is.

      Thread [http-8080-Processor25] (Suspended)
      PooledServiceModel.returnServiceToPool(PooledServiceModel$PooledService) line: 213
      PooledServiceModel.unbindPooledServiceFromCurrentThread(PooledServiceModel$PooledService) line: 248
      PooledServiceModel.access$100(PooledServiceModel, PooledServiceModel$PooledService) line: 38
      PooledServiceModel$PooledService.threadDidCleanup() line: 96
      ThreadEventNotifierImpl.fireThreadCleanup() line: 75
      $ThreadEventNotifier_102f0461661.fireThreadCleanup() line: not available
      RegistryInfrastructureImpl.cleanupThread() line: 420
      RegistryImpl.cleanupThread() line: 86
      ApplicationPortlet.render(RenderRequest, RenderResponse) line: 165
      PortletApplicationHandler.render_aroundBody8(PortletApplicationHandler, Portlet, RenderRequest, RenderResponse) line: 226
      PortletApplicationHandler.render_aroundBody9$advice(PortletApplicationHandler, Portlet, RenderRequest, RenderResponse, PortletFilterAspect, Portlet, RenderRequest, RenderResponse, AroundClosure) line: 458
      PortletApplicationHandler.render_aroundBody10(PortletApplicationHandler, Portlet, RenderRequest, RenderResponse) line: not available
      PortletApplicationHandler.render_aroundBody11$advice(PortletApplicationHandler, Portlet, RenderRequest, RenderResponse, PortletContentAspect, Portlet, RenderRequest, RenderResponse, AroundClosure) line: 340
      PortletApplicationHandler.render_aroundBody12(PortletApplicationHandler, Portlet, RenderRequest, RenderResponse) line: not available
      PortletApplicationHandler.render_aroundBody13$advice(PortletApplicationHandler, Portlet, RenderRequest, RenderResponse, PortletCacheAspect, Portlet, RenderRequest, RenderResponse, AroundClosure) line: 172
      PortletApplicationHandler.render_aroundBody14(PortletApplicationHandler, Portlet, RenderRequest, RenderResponse) line: not available
      PortletApplicationHandler.render_aroundBody15$advice(PortletApplicationHandler, Portlet, RenderRequest, RenderResponse, PortletSecurityAspect, Portlet, RenderRequest, RenderResponse, AroundClosure) line: 738
      PortletApplicationHandler.render_aroundBody16(PortletApplicationHandler, Portlet, RenderRequest, RenderResponse) line: not available
      PortletApplicationHandler.render_aroundBody17$advice(PortletApplicationHandler, Portlet, RenderRequest, RenderResponse, PortletMonitorAspect, Portlet, RenderRequest, RenderResponse, AroundClosure) line: 628
      PortletApplicationHandler.process(ServletContext, HttpServletRequest, HttpServletResponse, Input, Output, PortletWindowInternal, boolean) line: 226
      ServletWrapper.service(HttpServletRequest, HttpServletResponse) line: 70
      ServletWrapper(HttpServlet).service(ServletRequest, ServletResponse) line: 802
      ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 237
      ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 157
      ApplicationDispatcher.invoke(ServletRequest, ServletResponse) line: 704
      ApplicationDispatcher.doInclude(ServletRequest, ServletResponse) line: 590
      ApplicationDispatcher.include(ServletRequest, ServletResponse) line: 510
      PortletContainerDispatcher.dispatch(HttpServletRequest, HttpServletResponse, String) line: 370
      PortletContainerDispatcher.process(HttpServletRequest, HttpServletResponse, Input, boolean) line: 310
      PortletContainerDispatcher.render(HttpServletRequest, HttpServletResponse, RenderInput) line: 271
      PortletContainerServiceImpl.render(HttpServletRequest, HttpServletResponse, RenderInput) line: 144
      PortletRenderer.encodeChildren(FacesContext, UIComponent) line: 100
      UIPortlet(UIComponentBase).encodeChildren(FacesContext) line: 693
      ContainerRowRenderer.renderViewMode(FacesContext, UIContainer) line: 40
      ContainerRowRenderer(ContainerRenderer).encodeChildren(FacesContext, UIComponent) line: 34
      UIContainer(UIComponentBase).encodeChildren(FacesContext) line: 693
      PortalRenderer(HtmlBasicRenderer).renderChildren(FacesContext, UIComponent) line: 63
      PortalRenderer.encodeChildren(FacesContext, UIComponent) line: 58
      UIPortal(UIComponentBase).encodeChildren(FacesContext) line: 693
      ExoPortalViewHandler.renderView(FacesContext, UIViewRoot) line: 63
      RenderResponsePhase.execute(FacesContext) line: 87
      LifecycleImpl.phase(PhaseId, Phase, FacesContext) line: 200
      LifecycleImpl.render(FacesContext) line: 117
      FacesServlet.service(ServletRequest, ServletResponse) line: 198
      ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 237
      ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 157
      PrivateRequestFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 82
      ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 186
      ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 157
      StandardWrapperValve.invoke(Request, Response, ValveContext) line: 214
      StandardValveContext.invokeNext(Request, Response) line: 104
      StandardPipeline.invoke(Request, Response) line: 520
      StandardContextValve.invokeInternal(Wrapper, Request, Response) line: 198
      StandardContextValve.invoke(Request, Response, ValveContext) line: 152
      StandardValveContext.invokeNext(Request, Response) line: 104
      FormAuthenticator(AuthenticatorBase).invoke(Request, Response, ValveContext) line: 540
      StandardValveContext.invokeNext(Request, Response) line: 102
      StandardPipeline.invoke(Request, Response) line: 520
      StandardHostValve.invoke(Request, Response, ValveContext) line: 137
      StandardValveContext.invokeNext(Request, Response) line: 104
      ErrorReportValve.invoke(Request, Response, ValveContext) line: 117
      StandardValveContext.invokeNext(Request, Response) line: 102
      StandardPipeline.invoke(Request, Response) line: 520
      StandardEngineValve.invoke(Request, Response, ValveContext) line: 109
      StandardValveContext.invokeNext(Request, Response) line: 104
      StandardPipeline.invoke(Request, Response) line: 520
      StandardEngine(ContainerBase).invoke(Request, Response) line: 929
      CoyoteAdapter.service(Request, Response) line: 160
      Http11Processor.process(InputStream, OutputStream) line: 799
      Http11Protocol$Http11ConnectionHandler.processConnection(TcpConnection, Object[]) line: 705
      TcpWorkerThread.runIt(Object[]) line: 577
      ThreadPool$ControlRunnable.run() line: 683
      ThreadWithAttributes(Thread).run() line: 536

      private synchronized void returnServiceToPool(PooledService pooled)

      { if (_servicePool == null) // line 213 _servicePool = new ArrayList(); _servicePool.add(pooled); }

      and

      Thread [http-8080-Processor22] (Suspended)
      RegistryInfrastructureImpl.checkShutdown() line: 345
      RegistryInfrastructureImpl.getServicePoint(String, Module) line: 153
      RegistryInfrastructureImpl.getService(String, Class, Module) line: 168
      ModuleImpl.getService(String, Class) line: 97
      ServiceTranslator.translate(Module, Class, String, Location) line: 40
      BuilderPropertyFacet.getFacetValue(ServiceImplementationFactoryParameters, Class) line: 41
      BuilderFactoryLogic.wireProperty(Object, BuilderFacet) line: 357
      BuilderFactoryLogic.setProperties(Object) line: 320
      BuilderFactoryLogic.createService() line: 77
      BuilderFactory.createCoreServiceImplementation(ServiceImplementationFactoryParameters) line: 42
      InvokeFactoryServiceConstructor.constructCoreServiceImplementation() line: 84
      PooledServiceModel(AbstractServiceModelImpl).constructCoreServiceImplementation() line: 106
      PooledServiceModel.constructPooledService() line: 223
      PooledServiceModel.obtainPooledService() line: 196
      PooledServiceModel.getServiceImplementationForCurrentThread() line: 180
      $ApplicationStateManager_102f04616a3._service() line: not available
      $ApplicationStateManager_102f04616a3.flush() line: not available
      $ApplicationStateManager_102f04616a4.flush() line: not available
      BaseEngine(AbstractEngine).service(WebRequest, WebResponse) line: 312
      InvokeEngineTerminator.service(WebRequest, WebResponse) line: 60
      RenderRequestServicerToWebRequestServicerBridge.service(RenderRequest, RenderResponse) line: 49
      ApplicationPortlet.render(RenderRequest, RenderResponse) line: 157
      PortletApplicationHandler.render_aroundBody8(PortletApplicationHandler, Portlet, RenderRequest, RenderResponse) line: 226
      PortletApplicationHandler.render_aroundBody9$advice(PortletApplicationHandler, Portlet, RenderRequest, RenderResponse, PortletFilterAspect, Portlet, RenderRequest, RenderResponse, AroundClosure) line: 458
      PortletApplicationHandler.render_aroundBody10(PortletApplicationHandler, Portlet, RenderRequest, RenderResponse) line: not available
      PortletApplicationHandler.render_aroundBody11$advice(PortletApplicationHandler, Portlet, RenderRequest, RenderResponse, PortletContentAspect, Portlet, RenderRequest, RenderResponse, AroundClosure) line: 340
      PortletApplicationHandler.render_aroundBody12(PortletApplicationHandler, Portlet, RenderRequest, RenderResponse) line: not available
      PortletApplicationHandler.render_aroundBody13$advice(PortletApplicationHandler, Portlet, RenderRequest, RenderResponse, PortletCacheAspect, Portlet, RenderRequest, RenderResponse, AroundClosure) line: 172
      PortletApplicationHandler.render_aroundBody14(PortletApplicationHandler, Portlet, RenderRequest, RenderResponse) line: not available
      PortletApplicationHandler.render_aroundBody15$advice(PortletApplicationHandler, Portlet, RenderRequest, RenderResponse, PortletSecurityAspect, Portlet, RenderRequest, RenderResponse, AroundClosure) line: 738
      PortletApplicationHandler.render_aroundBody16(PortletApplicationHandler, Portlet, RenderRequest, RenderResponse) line: not available
      PortletApplicationHandler.render_aroundBody17$advice(PortletApplicationHandler, Portlet, RenderRequest, RenderResponse, PortletMonitorAspect, Portlet, RenderRequest, RenderResponse, AroundClosure) line: 628
      PortletApplicationHandler.process(ServletContext, HttpServletRequest, HttpServletResponse, Input, Output, PortletWindowInternal, boolean) line: 226
      ServletWrapper.service(HttpServletRequest, HttpServletResponse) line: 70
      ServletWrapper(HttpServlet).service(ServletRequest, ServletResponse) line: 802
      ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 237
      ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 157
      ApplicationDispatcher.invoke(ServletRequest, ServletResponse) line: 704
      ApplicationDispatcher.doInclude(ServletRequest, ServletResponse) line: 590
      ApplicationDispatcher.include(ServletRequest, ServletResponse) line: 510
      PortletContainerDispatcher.dispatch(HttpServletRequest, HttpServletResponse, String) line: 370
      PortletContainerDispatcher.process(HttpServletRequest, HttpServletResponse, Input, boolean) line: 310
      PortletContainerDispatcher.render(HttpServletRequest, HttpServletResponse, RenderInput) line: 271
      PortletContainerServiceImpl.render(HttpServletRequest, HttpServletResponse, RenderInput) line: 144
      PortletRenderer.encodeChildren(FacesContext, UIComponent) line: 100
      UIPortlet(UIComponentBase).encodeChildren(FacesContext) line: 693
      ContainerRowRenderer.renderViewMode(FacesContext, UIContainer) line: 40
      ContainerRowRenderer(ContainerRenderer).encodeChildren(FacesContext, UIComponent) line: 34
      UIContainer(UIComponentBase).encodeChildren(FacesContext) line: 693
      PortalRenderer(HtmlBasicRenderer).renderChildren(FacesContext, UIComponent) line: 63
      PortalRenderer.encodeChildren(FacesContext, UIComponent) line: 58
      UIPortal(UIComponentBase).encodeChildren(FacesContext) line: 693
      ExoPortalViewHandler.renderView(FacesContext, UIViewRoot) line: 63
      RenderResponsePhase.execute(FacesContext) line: 87
      LifecycleImpl.phase(PhaseId, Phase, FacesContext) line: 200
      LifecycleImpl.render(FacesContext) line: 117
      FacesServlet.service(ServletRequest, ServletResponse) line: 198
      ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 237
      ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 157
      PrivateRequestFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 82
      ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 186
      ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 157
      StandardWrapperValve.invoke(Request, Response, ValveContext) line: 214
      StandardValveContext.invokeNext(Request, Response) line: 104
      StandardPipeline.invoke(Request, Response) line: 520
      StandardContextValve.invokeInternal(Wrapper, Request, Response) line: 198
      StandardContextValve.invoke(Request, Response, ValveContext) line: 152
      StandardValveContext.invokeNext(Request, Response) line: 104
      FormAuthenticator(AuthenticatorBase).invoke(Request, Response, ValveContext) line: 540
      StandardValveContext.invokeNext(Request, Response) line: 102
      StandardPipeline.invoke(Request, Response) line: 520
      StandardHostValve.invoke(Request, Response, ValveContext) line: 137
      StandardValveContext.invokeNext(Request, Response) line: 104
      ErrorReportValve.invoke(Request, Response, ValveContext) line: 117
      StandardValveContext.invokeNext(Request, Response) line: 102
      StandardPipeline.invoke(Request, Response) line: 520
      StandardEngineValve.invoke(Request, Response, ValveContext) line: 109
      StandardValveContext.invokeNext(Request, Response) line: 104
      StandardPipeline.invoke(Request, Response) line: 520
      StandardEngine(ContainerBase).invoke(Request, Response) line: 929
      CoyoteAdapter.service(Request, Response) line: 160
      Http11Processor.process(InputStream, OutputStream) line: 799
      Http11Protocol$Http11ConnectionHandler.processConnection(TcpConnection, Object[]) line: 705
      TcpWorkerThread.runIt(Object[]) line: 577
      ThreadPool$ControlRunnable.run() line: 683
      ThreadWithAttributes(Thread).run() line: 536

      private synchronized void checkShutdown()

      { if (_shutdown) // Line 345 throw new ApplicationRuntimeException(HiveMindMessages.registryShutdown()); }

      Are the only threads in the application anywhere near HiveMind.

      Unfortunately, I was running with JDK 1.4, so I can't use Eclipse's debugger to get at threads and monitors.

      This is something that needs more attention ... and I can't see how they would be conflicting.

      Attachments

        Activity

          People

            hlship Howard Lewis Ship
            hlship Howard Lewis Ship
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: