Description
It looks like the jcr pool close() does not properly takes care of sessions still running.
Found one Java-level deadlock:
=============================
"TP-Processor665":
waiting to lock monitor 0x0000000041e8b3c0 (object 0x00007fc4ec966300, a java.lang.Object),
which is held by "main"
"main":
waiting to lock monitor 0x00000000425743e8 (object 0x00007fc50bee1588, a org.hippoecm.repository.jackrabbit.HippoLocalItemStateManager),
which is held by "TP-Processor665"
Java stack information for the threads listed above:
===================================================
"TP-Processor665":
at org.apache.jackrabbit.core.CachingHierarchyManager.nodeAdded(CachingHierarchyManager.java:362)
- waiting to lock <0x00007fc4ec966300> (a java.lang.Object)
at org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyNodeAdded(StateChangeDispatcher.java:159)
at org.apache.jackrabbit.core.state.SessionItemStateManager.nodeAdded(SessionItemStateManager.java:932)
at org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyNodeAdded(StateChangeDispatcher.java:159)
at org.apache.jackrabbit.core.state.LocalItemStateManager.nodeAdded(LocalItemStateManager.java:527)
at org.apache.jackrabbit.core.state.NodeState.notifyNodeAdded(NodeState.java:852)
at org.apache.jackrabbit.core.state.NodeState.addChildNodeEntry(NodeState.java:351) - locked <0x00007fc482e28418> (a org.apache.jackrabbit.core.state.NodeState)
at org.hippoecm.repository.jackrabbit.ViewVirtualProvider.populateChildren(ViewVirtualProvider.java:240)
at org.hippoecm.repository.jackrabbit.MirrorVirtualProvider.populate(MirrorVirtualProvider.java:131)
at org.hippoecm.repository.jackrabbit.HippoNodeId.populate(HippoNodeId.java:67)
at org.hippoecm.repository.jackrabbit.HippoLocalItemStateManager.getNodeState(HippoLocalItemStateManager.java:389)
at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:176) - locked <0x00007fc50bee1588> (a org.hippoecm.repository.jackrabbit.HippoLocalItemStateManager)
at org.apache.jackrabbit.core.state.ForkedXAItemStateManager.getItemState(ForkedXAItemStateManager.java:266)
at org.hippoecm.repository.jackrabbit.HippoLocalItemStateManager.getItemState(HippoLocalItemStateManager.java:290)
at org.apache.jackrabbit.core.state.SessionItemStateManager.getItemState(SessionItemStateManager.java:182)
at org.apache.jackrabbit.core.HierarchyManagerImpl.getItemState(HierarchyManagerImpl.java:154)
at org.apache.jackrabbit.core.HierarchyManagerImpl.resolvePath(HierarchyManagerImpl.java:117)
at org.apache.jackrabbit.core.CachingHierarchyManager.resolvePath(CachingHierarchyManager.java:148)
at org.apache.jackrabbit.core.HierarchyManagerImpl.resolvePath(HierarchyManagerImpl.java:367)
at org.hippoecm.repository.jackrabbit.HippoHierarchyManager.resolvePath(HippoHierarchyManager.java:56)
at org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:435)
at org.apache.jackrabbit.core.SessionImpl.getItem(SessionImpl.java:817)
at org.hippoecm.repository.decorating.SessionDecorator.getItem(SessionDecorator.java:178)
at org.hippoecm.repository.decorating.checked.SessionDecorator.getItem(SessionDecorator.java:200)
at org.hippoecm.hst.content.beans.query.HstVirtualizerImpl.virtualize(HstVirtualizerImpl.java:57)
at org.hippoecm.hst.content.beans.standard.HippoBeanIteratorImpl.nextHippoBean(HippoBeanIteratorImpl.java:60)
at nl.mysite.site.query.iterator.DefaultLimitedResultsBeanIterator.nextHippoBean(DefaultLimitedResultsBeanIterator.java:63)
at nl.mysite.site.query.mapper.ListQueryResultMapper.map(ListQueryResultMapper.java:31)
at nl.mysite.site.query.mapper.ListQueryResultMapper.map(ListQueryResultMapper.java:17)
at nl.mysite.site.query.DefaultQueryTemplate.queryForObject(DefaultQueryTemplate.java:275)
at nl.mysite.site.query.DefaultQueryTemplate.queryForObject(DefaultQueryTemplate.java:208)
at nl.mysite.site.query.DefaultQueryTemplate.queryForList(DefaultQueryTemplate.java:176)
at nl.mysite.site.dao.SubjectDao.findActiveSubjectsOrderedByTitle(SubjectDao.java:72)
at nl.mysite.site.contenttype.subject.AlphabeticSubjectOverviewComponent.doBeforeRender(AlphabeticSubjectOverviewComponent.java:63)
at org.hippoecm.hst.core.container.HstComponentInvokerImpl.invokeBeforeRender(HstComponentInvokerImpl.java:116)
at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
at org.hippoecm.hst.core.logging.HstComponentInvokerProfiler.profile(HstComponentInvokerProfiler.java:70)
at sun.reflect.GeneratedMethodAccessor33.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy1.invokeBeforeRender(Unknown Source)
at org.hippoecm.hst.core.container.AggregationValve.processWindowsBeforeRender(AggregationValve.java:300)
at org.hippoecm.hst.core.container.AggregationValve.invoke(AggregationValve.java:102)
at org.hippoecm.hst.core.container.HstSitePipeline$Invocation.invokeNext(HstSitePipeline.java:97)
at org.hippoecm.hst.core.container.ResourceServingValve.invoke(ResourceServingValve.java:88)
at org.hippoecm.hst.core.container.HstSitePipeline$Invocation.invokeNext(HstSitePipeline.java:97)
at org.hippoecm.hst.core.container.ActionValve.invoke(ActionValve.java:177)
at org.hippoecm.hst.core.container.HstSitePipeline$Invocation.invokeNext(HstSitePipeline.java:97)
at org.hippoecm.hst.core.container.SiteMenusResolvingValve.invoke(SiteMenusResolvingValve.java:39)
at org.hippoecm.hst.core.container.HstSitePipeline$Invocation.invokeNext(HstSitePipeline.java:97)
at org.hippoecm.hst.core.container.SecurityValve.invoke(SecurityValve.java:55)
at org.hippoecm.hst.core.container.HstSitePipeline$Invocation.invokeNext(HstSitePipeline.java:97)
at org.hippoecm.hst.core.container.ContextResolvingValve.invoke(ContextResolvingValve.java:162)
at org.hippoecm.hst.core.container.HstSitePipeline$Invocation.invokeNext(HstSitePipeline.java:97)
at org.hippoecm.hst.core.container.SiteResolvingValve.invoke(SiteResolvingValve.java:76)
at org.hippoecm.hst.core.container.HstSitePipeline$Invocation.invokeNext(HstSitePipeline.java:97)
at org.hippoecm.hst.core.container.HstURLValve.invoke(HstURLValve.java:53)
at org.hippoecm.hst.core.container.HstSitePipeline$Invocation.invokeNext(HstSitePipeline.java:97)
at org.hippoecm.hst.core.container.HstSitePipeline.invokeValves(HstSitePipeline.java:66)
at org.hippoecm.hst.core.container.HstSitePipeline.invoke(HstSitePipeline.java:57)
at org.hippoecm.hst.core.container.HstRequestProcessorImpl.processRequest(HstRequestProcessorImpl.java:69)
at org.hippoecm.hst.core.container.HstRequestProcessorImpl.processRequest(HstRequestProcessorImpl.java:35)
at org.hippoecm.hst.container.HstContainerServlet.invoke(HstContainerServlet.java:196)
at org.hippoecm.hst.container.HstContainerServlet.service(HstContainerServlet.java:209)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.hippoecm.hst.container.HstVirtualHostsFilter.doFilter(HstVirtualHostsFilter.java:129)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at nl.mysite.site.filters.LocaleFilter.doFilterInternal(LocaleFilter.java:109)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at nl.mysite.site.filters.DisableUrlSessionFilter.doFilterInternal(DisableUrlSessionFilter.java:95)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at nl.mysite.site.tags.contribution.ContributionFilter.doFilterInternal(ContributionFilter.java:29)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:774)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:896)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:662)
"main":
at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:171) - waiting to lock <0x00007fc50bee1588> (a org.hippoecm.repository.jackrabbit.HippoLocalItemStateManager)
at org.apache.jackrabbit.core.state.ForkedXAItemStateManager.getItemState(ForkedXAItemStateManager.java:266)
at org.hippoecm.repository.jackrabbit.HippoLocalItemStateManager.getItemState(HippoLocalItemStateManager.java:290)
at org.hippoecm.repository.jackrabbit.HippoVirtualProvider.getPropertyState(HippoVirtualProvider.java:157)
at org.hippoecm.repository.jackrabbit.HippoVirtualProvider.getProperty(HippoVirtualProvider.java:141)
at org.hippoecm.repository.jackrabbit.ViewVirtualProvider.populate(ViewVirtualProvider.java:179)
at org.hippoecm.repository.jackrabbit.HippoNodeId.populate(HippoNodeId.java:85)
at org.hippoecm.repository.jackrabbit.HippoLocalItemStateManager.getItemState(HippoLocalItemStateManager.java:298)
at org.apache.jackrabbit.core.state.SessionItemStateManager.getItemState(SessionItemStateManager.java:182)
at org.apache.jackrabbit.core.HierarchyManagerImpl.getItemState(HierarchyManagerImpl.java:154)
at org.apache.jackrabbit.core.CachingHierarchyManager.nodeRemoved(CachingHierarchyManager.java:726)
at org.apache.jackrabbit.core.CachingHierarchyManager.nodeRemoved(CachingHierarchyManager.java:455) - locked <0x00007fc4ec966300> (a java.lang.Object)
at org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyNodeRemoved(StateChangeDispatcher.java:207)
at org.apache.jackrabbit.core.state.SessionItemStateManager.nodeRemoved(SessionItemStateManager.java:968)
at org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyNodeRemoved(StateChangeDispatcher.java:207)
at org.apache.jackrabbit.core.state.LocalItemStateManager.nodeRemoved(LocalItemStateManager.java:557)
at org.apache.jackrabbit.core.state.NodeState.notifyNodeRemoved(NodeState.java:871)
at org.apache.jackrabbit.core.state.NodeState.removeChildNodeEntry(NodeState.java:403) - locked <0x00007fc4d0be6c10> (a org.apache.jackrabbit.core.state.NodeState)
at org.hippoecm.repository.jackrabbit.HippoLocalItemStateManager$FilteredChangeLog.invalidate(HippoLocalItemStateManager.java:560)
at org.hippoecm.repository.jackrabbit.HippoLocalItemStateManager.update(HippoLocalItemStateManager.java:243)
at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:334)
at org.hippoecm.repository.jackrabbit.HippoLocalItemStateManager.update(HippoLocalItemStateManager.java:253)
at org.hippoecm.repository.jackrabbit.HippoLocalItemStateManager.refresh(HippoLocalItemStateManager.java:265)
at org.hippoecm.repository.jackrabbit.HippoSessionItemStateManager.disposeAllTransientItemStates(HippoSessionItemStateManager.java:94)
at org.apache.jackrabbit.core.SessionImpl.logout(SessionImpl.java:1154) - locked <0x00007fc50bad52a0> (a org.hippoecm.repository.jackrabbit.XASessionImpl)
at org.apache.jackrabbit.core.ForkedXASessionImpl.logout(ForkedXASessionImpl.java:405) - locked <0x00007fc50bad52a0> (a org.hippoecm.repository.jackrabbit.XASessionImpl)
at org.hippoecm.repository.jackrabbit.XASessionImpl.logout(XASessionImpl.java:151)
at org.apache.jackrabbit.core.RepositoryImpl.doShutdown(RepositoryImpl.java:1097) - locked <0x00007fc48d8d5260> (a org.hippoecm.repository.LocalHippoRepository$LocalRepositoryImpl)
at org.apache.jackrabbit.core.RepositoryImpl.shutdown(RepositoryImpl.java:1060)
at org.hippoecm.repository.jackrabbit.RepositoryImpl.shutdown(RepositoryImpl.java:300)
at org.hippoecm.repository.LocalHippoRepository.close(LocalHippoRepository.java:760) - locked <0x00007fc48d359b00> (a org.hippoecm.repository.LocalHippoRepository)
at org.hippoecm.hst.core.jcr.pool.JcrHippoRepository.closeHippoRepository(JcrHippoRepository.java:204)
at org.hippoecm.hst.core.jcr.pool.JcrHippoRepositoryProvider.returnRepository(JcrHippoRepositoryProvider.java:29)
at org.hippoecm.hst.core.jcr.pool.BasicPoolingRepository.doClose(BasicPoolingRepository.java:560)
at org.hippoecm.hst.core.jcr.pool.BasicPoolingRepository.close(BasicPoolingRepository.java:540) - locked <0x00007fc495722a50> (a org.hippoecm.hst.core.jcr.pool.BasicPoolingRepository)
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:597)
at org.springframework.beans.factory.support.DisposableBeanAdapter.invokeCustomDestroyMethod(DisposableBeanAdapter.java:273)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:199)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:487)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:463)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:498)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:463)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:480)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:463)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:431) - locked <0x00007fc496ac1e30> (a java.util.LinkedHashMap)
at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1048)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1022)
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:970) - locked <0x00007fc497c17c00> (a java.lang.Object)
at org.hippoecm.hst.site.container.SpringComponentManager.close(SpringComponentManager.java:138)
at org.hippoecm.hst.site.container.HstSiteConfigServlet.destroy(HstSiteConfigServlet.java:361)
at org.apache.catalina.core.StandardWrapper.unload(StandardWrapper.java:1394) - locked <0x00007fc48cfaa610> (a org.apache.catalina.core.StandardWrapper)
at org.apache.catalina.core.StandardWrapper.stop(StandardWrapper.java:1739)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4764) - locked <0x00007fc48cfd14b8> (a org.apache.catalina.core.StandardContext)
at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:924)
at org.apache.catalina.startup.HostConfig.undeployApps(HostConfig.java:1319)
at org.apache.catalina.startup.HostConfig.stop(HostConfig.java:1290)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:323)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1086) - locked <0x00007fc48d00d360> (a org.apache.catalina.core.StandardHost)
at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1098) - locked <0x00007fc48d003fd0> (a org.apache.catalina.core.StandardEngine)
at org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:450)
at org.apache.catalina.core.StandardService.stop(StandardService.java:587) - locked <0x00007fc48d003fd0> (a org.apache.catalina.core.StandardEngine)
at org.apache.catalina.core.StandardServer.stop(StandardServer.java:744)
at org.apache.catalina.startup.Catalina.stop(Catalina.java:648)