[ 
https://issues.apache.org/jira/browse/OAK-2401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14589675#comment-14589675
 ] 

Francesco Mari commented on OAK-2401:
-------------------------------------

bq. Further in a given system there should be one and only one BlobStore 
configured and they should be configured once and not changed once a setup is 
running.

This is, in my opinion, another reason to have a static reference instead of a 
dynamic one. Having a static references makes a clearer statement about the 
kind of dependency existing between a {{SegmentNodeStoreService}} and a 
{{BlobStore}}.

> SegmentNodeStoreService prone to deadlocks
> ------------------------------------------
>
>                 Key: OAK-2401
>                 URL: https://issues.apache.org/jira/browse/OAK-2401
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: segmentmk
>            Reporter: Alex Parvulescu
>            Assignee: Alex Parvulescu
>            Priority: Blocker
>              Labels: resilience
>             Fix For: 1.3.1, 1.2.3, 1.0.16
>
>         Attachments: OAK-2401-01.patch, OAK-2401-02.patch, OAK-2401-03.patch, 
> OAK-2401-04-testcase-fix.patch, OAK-2401.patch
>
>
> The SegmentNodeStoreService is prone to deadlocks because of the way in which 
> is synchronizes access to the _SegmentNodeStore_ delegate.
> The issue can now be seen on #deactivate, when the deregistration is being 
> synchronously broadcast and if a referring service calls #getNodeStore the 
> deadlock happens.
> {code}
> Found one Java-level deadlock:
> =============================
> "qtp844483043-936":
>   waiting to lock monitor 0x000001d1aacc7208 (object 0x000001d231f52698, a 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService),
>   which is held by "CM Event Dispatcher (Fire ConfigurationEvent: 
> pid=org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService)"
> "CM Event Dispatcher (Fire ConfigurationEvent: 
> pid=org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService)":
>   waiting to lock monitor 0x000001d4d0907c88 (object 0x000001d2334be930, a 
> java.lang.Object),
>   which is held by "pool-5-thread-4"
> "pool-5-thread-4":
>   waiting to lock monitor 0x000001d1aacc7208 (object 0x000001d231f52698, a 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService),
>   which is held by "CM Event Dispatcher (Fire ConfigurationEvent: 
> pid=org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService)"
> Java stack information for the threads listed above:
> ===================================================
> "qtp844483043-936":
>       at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService.getNodeStore(SegmentNodeStoreService.java:144)
>       - waiting to lock <0x000001d231f52698> (a 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService)
>       at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService.getNodeStore(SegmentNodeStoreService.java:73)
>       at 
> org.apache.jackrabbit.oak.spi.state.ProxyNodeStore.getRoot(ProxyNodeStore.java:35)
>       at 
> org.apache.jackrabbit.oak.core.MutableRoot.<init>(MutableRoot.java:160)
>       at 
> org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:110)
>       at 
> org.apache.jackrabbit.oak.spi.security.authentication.AbstractLoginModule.getRoot(AbstractLoginModule.java:403)
>       at 
> org.apache.jackrabbit.oak.security.authentication.token.TokenLoginModule.getTokenProvider(TokenLoginModule.java:215)
>       at 
> org.apache.jackrabbit.oak.security.authentication.token.TokenLoginModule.login(TokenLoginModule.java:128)
>       at 
> org.apache.felix.jaas.boot.ProxyLoginModule.login(ProxyLoginModule.java:52)
>       at sun.reflect.GeneratedMethodAccessor65.invoke(Unknown Source)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:606)
>       at javax.security.auth.login.LoginContext.invoke(LoginContext.java:762)
>       at 
> javax.security.auth.login.LoginContext.access$000(LoginContext.java:203)
>       at javax.security.auth.login.LoginContext$4.run(LoginContext.java:690)
>       at javax.security.auth.login.LoginContext$4.run(LoginContext.java:688)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at 
> javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:687)
>       at javax.security.auth.login.LoginContext.login(LoginContext.java:595)
>       at 
> org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:161)
>       at 
> org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:256)
>       at 
> com.adobe.granite.repository.impl.CRX3RepositoryImpl.login(CRX3RepositoryImpl.java:92)
>       at 
> org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:197)
>       at 
> org.apache.sling.jcr.base.AbstractSlingRepository2.login(AbstractSlingRepository2.java:297)
>       at 
> org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProviderFactory.getResourceProviderInternal(JcrResourceProviderFactory.java:289)
>       at 
> org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProviderFactory.getResourceProvider(JcrResourceProviderFactory.java:201)
>       at 
> org.apache.sling.resourceresolver.impl.tree.ResourceProviderFactoryHandler.login(ResourceProviderFactoryHandler.java:164)
>       at 
> org.apache.sling.resourceresolver.impl.tree.RootResourceProviderEntry.loginToRequiredFactories(RootResourceProviderEntry.java:95)
>       at 
> org.apache.sling.resourceresolver.impl.CommonResourceResolverFactoryImpl.getResourceResolverInternal(CommonResourceResolverFactoryImpl.java:109)
>       at 
> org.apache.sling.resourceresolver.impl.CommonResourceResolverFactoryImpl.getResourceResolver(CommonResourceResolverFactoryImpl.java:90)
>       at 
> org.apache.sling.resourceresolver.impl.ResourceResolverFactoryImpl.getResourceResolver(ResourceResolverFactoryImpl.java:93)
>       at 
> org.apache.sling.auth.core.impl.SlingAuthenticator.getAnonymousResolver(SlingAuthenticator.java:839)
>       at 
> org.apache.sling.auth.core.impl.SlingAuthenticator.doHandleSecurity(SlingAuthenticator.java:478)
>       at 
> org.apache.sling.auth.core.impl.SlingAuthenticator.handleSecurity(SlingAuthenticator.java:438)
>       at 
> org.apache.sling.engine.impl.SlingHttpContext.handleSecurity(SlingHttpContext.java:121)
>       at 
> org.apache.felix.http.base.internal.context.ServletContextImpl.handleSecurity(ServletContextImpl.java:335)
>       at 
> org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:337)
>       at 
> org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:300)
>       at 
> org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:93)
>       at 
> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:50)
>       at 
> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
>       at org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:128)
>       at 
> org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108)
>       at 
> org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80)
>       at 
> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:46)
>       at 
> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
>       at 
> org.apache.felix.http.sslfilter.internal.SslFilter.doFilter(SslFilter.java:55)
>       at 
> org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108)
>       at 
> org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80)
>       at 
> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:46)
>       at 
> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
>       at 
> org.apache.felix.http.sslfilter.internal.SslFilter.doFilter(SslFilter.java:89)
>       at 
> org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108)
>       at 
> org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80)
>       at 
> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:46)
>       at 
> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
>       at 
> com.adobe.granite.license.impl.LicenseCheckFilter.doFilter(LicenseCheckFilter.java:298)
>       at 
> org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108)
>       at 
> org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80)
>       at 
> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:46)
>       at 
> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
>       at 
> org.apache.sling.security.impl.ReferrerFilter.doFilter(ReferrerFilter.java:290)
>       at 
> org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108)
>       at 
> org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80)
>       at 
> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:46)
>       at 
> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
>       at 
> org.apache.sling.featureflags.impl.FeatureManager.doFilter(FeatureManager.java:115)
>       at 
> org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108)
>       at 
> org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80)
>       at 
> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:46)
>       at 
> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
>       at 
> org.apache.sling.engine.impl.log.RequestLoggerFilter.doFilter(RequestLoggerFilter.java:75)
>       at 
> org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108)
>       at 
> org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80)
>       at 
> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:46)
>       at 
> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
>       at 
> org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:76)
>       at 
> org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:49)
>       at 
> org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>       at 
> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
>       at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)
>       at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
>       at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
>       at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
>       at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
>       at 
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
>       at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
>       at org.eclipse.jetty.server.Server.handle(Server.java:370)
>       at 
> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
>       at 
> org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)
>       at 
> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)
>       at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
>       at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
>       at 
> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
>       at 
> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)
>       at 
> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
>       at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
>       at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
>       at java.lang.Thread.run(Thread.java:745)
> "CM Event Dispatcher (Fire ConfigurationEvent: 
> pid=org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService)":
>       at 
> org.apache.sling.discovery.impl.DiscoveryServiceImpl.unbindTopologyEventListener(DiscoveryServiceImpl.java:242)
>       - waiting to lock <0x000001d2334be930> (a java.lang.Object)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:606)
>       at 
> org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:231)
>       at 
> org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:39)
>       at 
> org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(BaseMethod.java:624)
>       at 
> org.apache.felix.scr.impl.helper.BaseMethod.invoke(BaseMethod.java:508)
>       at 
> org.apache.felix.scr.impl.helper.BindMethod.invoke(BindMethod.java:37)
>       at 
> org.apache.felix.scr.impl.manager.DependencyManager.invokeUnbindMethod(DependencyManager.java:1717)
>       at 
> org.apache.felix.scr.impl.manager.SingleComponentManager.invokeUnbindMethod(SingleComponentManager.java:404)
>       at 
> org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.removedService(DependencyManager.java:376)
>       at 
> org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.removedService(DependencyManager.java:304)
>       at 
> org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:1506)
>       at 
> org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:1401)
>       at 
> org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.untrack(ServiceTracker.java:1261)
>       at 
> org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1440)
>       at 
> org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:940)
>       at 
> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:794)
>       at 
> org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:544)
>       at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4425)
>       at org.apache.felix.framework.Felix.access$000(Felix.java:75)
>       at org.apache.felix.framework.Felix$1.serviceChanged(Felix.java:402)
>       at 
> org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:153)
>       at 
> org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:128)
>       at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager$3.unregister(AbstractComponentManager.java:1011)
>       at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager$3.unregister(AbstractComponentManager.java:992)
>       at 
> org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:141)
>       at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager.unregisterService(AbstractComponentManager.java:1054)
>       at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager.doDeactivate(AbstractComponentManager.java:900)
>       at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager.deactivateInternal(AbstractComponentManager.java:883)
>       at 
> org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.removedService(DependencyManager.java:974)
>       at 
> org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.removedService(DependencyManager.java:895)
>       at 
> org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:1506)
>       at 
> org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:1401)
>       at 
> org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.untrack(ServiceTracker.java:1261)
>       at 
> org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1440)
>       at 
> org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:940)
>       at 
> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:794)
>       at 
> org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:544)
>       at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4425)
>       at org.apache.felix.framework.Felix.access$000(Felix.java:75)
>       at org.apache.felix.framework.Felix$1.serviceChanged(Felix.java:402)
>       at 
> org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:153)
>       at 
> org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:128)
>       at 
> org.apache.sling.jcr.base.AbstractSlingRepositoryManager.unregisterService(AbstractSlingRepositoryManager.java:258)
>       at 
> org.apache.sling.jcr.base.AbstractSlingRepositoryManager.stop(AbstractSlingRepositoryManager.java:345)
>       at 
> com.adobe.granite.repository.impl.SlingRepositoryManager.deactivate(SlingRepositoryManager.java:194)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:606)
>       at 
> org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:231)
>       at 
> org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:39)
>       at 
> org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(BaseMethod.java:624)
>       at 
> org.apache.felix.scr.impl.helper.BaseMethod.invoke(BaseMethod.java:508)
>       at 
> org.apache.felix.scr.impl.helper.ActivateMethod.invoke(ActivateMethod.java:149)
>       at 
> org.apache.felix.scr.impl.manager.SingleComponentManager.disposeImplementationObject(SingleComponentManager.java:355)
>       at 
> org.apache.felix.scr.impl.manager.SingleComponentManager.deleteComponent(SingleComponentManager.java:170)
>       at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager.doDeactivate(AbstractComponentManager.java:908)
>       at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager.deactivateInternal(AbstractComponentManager.java:883)
>       at 
> org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.removedService(DependencyManager.java:974)
>       at 
> org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.removedService(DependencyManager.java:895)
>       at 
> org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:1506)
>       at 
> org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:1401)
>       at 
> org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.untrack(ServiceTracker.java:1261)
>       at 
> org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1440)
>       at 
> org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:940)
>       at 
> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:794)
>       at 
> org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:544)
>       at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4425)
>       at org.apache.felix.framework.Felix.access$000(Felix.java:75)
>       at org.apache.felix.framework.Felix$1.serviceChanged(Felix.java:402)
>       at 
> org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:153)
>       at 
> org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:128)
>       at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService.unregisterNodeStore(SegmentNodeStoreService.java:320)
>       at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService.deactivate(SegmentNodeStoreService.java:295)
>       - locked <0x000001d231f52698> (a 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:606)
>       at 
> org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:231)
>       at 
> org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:39)
>       at 
> org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(BaseMethod.java:624)
>       at 
> org.apache.felix.scr.impl.helper.BaseMethod.invoke(BaseMethod.java:508)
>       at 
> org.apache.felix.scr.impl.helper.ActivateMethod.invoke(ActivateMethod.java:149)
>       at 
> org.apache.felix.scr.impl.manager.SingleComponentManager.disposeImplementationObject(SingleComponentManager.java:355)
>       at 
> org.apache.felix.scr.impl.manager.SingleComponentManager.deleteComponent(SingleComponentManager.java:170)
>       at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager.doDeactivate(AbstractComponentManager.java:908)
>       at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager.deactivateInternal(AbstractComponentManager.java:883)
>       at 
> org.apache.felix.scr.impl.manager.SingleComponentManager.reconfigure(SingleComponentManager.java:638)
>       at 
> org.apache.felix.scr.impl.config.ConfigurableComponentHolder.configurationUpdated(ConfigurableComponentHolder.java:328)
>       at 
> org.apache.felix.scr.impl.config.ConfigurationSupport.configurationEvent(ConfigurationSupport.java:290)
>       at 
> org.apache.felix.cm.impl.ConfigurationManager$FireConfigurationEvent.sendEvent(ConfigurationManager.java:2032)
>       at 
> org.apache.felix.cm.impl.ConfigurationManager$FireConfigurationEvent.run(ConfigurationManager.java:2002)
>       at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:103)
>       at java.lang.Thread.run(Thread.java:745)
> "pool-5-thread-4":
>       at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService.getNodeStore(SegmentNodeStoreService.java:144)
>       - waiting to lock <0x000001d231f52698> (a 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService)
>       at 
> org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService.getNodeStore(SegmentNodeStoreService.java:73)
>       at 
> org.apache.jackrabbit.oak.spi.state.ProxyNodeStore.getRoot(ProxyNodeStore.java:35)
>       at 
> org.apache.jackrabbit.oak.core.MutableRoot.<init>(MutableRoot.java:160)
>       at 
> org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:110)
>       at 
> org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.<init>(SessionDelegate.java:160)
>       at 
> org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.<init>(RepositoryImpl.java:273)
>       at 
> org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:271)
>       at 
> org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:257)
>       at 
> com.adobe.granite.repository.impl.CRX3RepositoryImpl.login(CRX3RepositoryImpl.java:92)
>       at 
> com.adobe.granite.repository.impl.SlingRepositoryImpl$2.run(SlingRepositoryImpl.java:108)
>       at 
> com.adobe.granite.repository.impl.SlingRepositoryImpl$2.run(SlingRepositoryImpl.java:100)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at javax.security.auth.Subject.doAsPrivileged(Subject.java:536)
>       at 
> com.adobe.granite.repository.impl.SlingRepositoryImpl.createAdministrativeSession(SlingRepositoryImpl.java:100)
>       at 
> org.apache.sling.jcr.base.AbstractSlingRepository2.loginAdministrative(AbstractSlingRepository2.java:362)
>       at 
> org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProviderFactory.getResourceProviderInternal(JcrResourceProviderFactory.java:246)
>       at 
> org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProviderFactory.getAdministrativeResourceProvider(JcrResourceProviderFactory.java:209)
>       at 
> org.apache.sling.resourceresolver.impl.tree.ResourceProviderFactoryHandler.login(ResourceProviderFactoryHandler.java:162)
>       at 
> org.apache.sling.resourceresolver.impl.tree.RootResourceProviderEntry.loginToRequiredFactories(RootResourceProviderEntry.java:95)
>       at 
> org.apache.sling.resourceresolver.impl.CommonResourceResolverFactoryImpl.getResourceResolverInternal(CommonResourceResolverFactoryImpl.java:109)
>       at 
> org.apache.sling.resourceresolver.impl.CommonResourceResolverFactoryImpl.getAdministrativeResourceResolver(CommonResourceResolverFactoryImpl.java:76)
>       at 
> org.apache.sling.resourceresolver.impl.ResourceResolverFactoryImpl.getAdministrativeResourceResolver(ResourceResolverFactoryImpl.java:98)
>       at 
> org.apache.sling.discovery.impl.cluster.ClusterViewServiceImpl.getClusterView(ClusterViewServiceImpl.java:132)
>       at 
> org.apache.sling.discovery.impl.DiscoveryServiceImpl.getTopology(DiscoveryServiceImpl.java:418)
>       at 
> org.apache.sling.discovery.impl.DiscoveryServiceImpl.handlePotentialTopologyChange(DiscoveryServiceImpl.java:466)
>       at 
> org.apache.sling.discovery.impl.DiscoveryServiceImpl.handleTopologyChanged(DiscoveryServiceImpl.java:650)
>       - locked <0x000001d2334be930> (a java.lang.Object)
>       at 
> org.apache.sling.discovery.impl.topology.TopologyChangeHandler.handleTopologyChanged(TopologyChangeHandler.java:134)
>       at 
> org.apache.sling.discovery.impl.topology.TopologyChangeHandler.handleEvent(TopologyChangeHandler.java:124)
>       at 
> org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:412)
>       at 
> org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:118)
>       at 
> org.apache.felix.eventadmin.impl.handler.EventAdminImpl.sendEvent(EventAdminImpl.java:114)
>       at 
> org.apache.felix.eventadmin.impl.security.EventAdminSecurityDecorator.sendEvent(EventAdminSecurityDecorator.java:96)
>       at 
> org.apache.sling.jcr.resource.internal.OakResourceListener.sendOsgiEvent(OakResourceListener.java:243)
>       at 
> org.apache.sling.jcr.resource.internal.OakResourceListener.changed(OakResourceListener.java:133)
>       at 
> org.apache.jackrabbit.oak.plugins.observation.NodeObserver$NodeEventHandler.leave(NodeObserver.java:208)
>       at 
> org.apache.jackrabbit.oak.plugins.observation.FilteredHandler.leave(FilteredHandler.java:51)
>       at 
> org.apache.jackrabbit.oak.plugins.observation.EventGenerator$Continuation.run(EventGenerator.java:175)
>       at 
> org.apache.jackrabbit.oak.plugins.observation.EventGenerator.generate(EventGenerator.java:118)
>       at 
> org.apache.jackrabbit.oak.plugins.observation.NodeObserver.contentChanged(NodeObserver.java:156)
>       at 
> org.apache.jackrabbit.oak.spi.commit.BackgroundObserver$1$1.call(BackgroundObserver.java:117)
>       at 
> org.apache.jackrabbit.oak.spi.commit.BackgroundObserver$1$1.call(BackgroundObserver.java:111)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>       at java.lang.Thread.run(Thread.java:745)
> Found 1 deadlock.
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to