[ https://issues.apache.org/jira/browse/SLING-11717?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Henry Kuijpers updated SLING-11717: ----------------------------------- Description: {code:java} Found one Java-level deadlock: ============================= "FelixDispatchQueue": waiting to lock monitor 7f8a5595d180 (object 7f8b03e7, a org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener$Listener), which is held by "Apache Sling Repository Startup Thread #1" "Apache Sling Repository Startup Thread #1": waiting to lock monitor 7f8a5595d180 (object 45551fe9, a org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener), which is held by "FelixDispatchQueue" {code} The issue seems to be in https://github.com/apache/sling-org-apache-sling-extensions-webconsolesecurityprovider/blob/fd7f0e9e4e287ceb72211ee2e08e55568713ddbd/src/main/java/org/apache/sling/extensions/webconsolesecurityprovider/internal/ServicesListener.java and it could very well be that the last commit was the cause(?). https://github.com/apache/sling-org-apache-sling-extensions-webconsolesecurityprovider/commit/fd7f0e9e4e287ceb72211ee2e08e55568713ddbd {code:java} Java stack information for the threads listed above: =================================================== "FelixDispatchQueue" prio=5 tid=0xd nid=0xffffffff waiting for monitor entry java.lang.Thread.State: BLOCKED at org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener$Listener.getService(ServicesListener.java:247) - waiting to lock <0x7f8b03e7> (a org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener$Listener) owned by "Apache Sling Repository Startup Thread #1" tid=0x80 at org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener.notifyChange(ServicesListener.java:121) - locked <0x45551fe9> (a org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener) at org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener.startupFinished(ServicesListener.java:105) at org.apache.sling.launchpad.base.impl.DefaultStartupHandler.startupFinished(DefaultStartupHandler.java:366) at org.apache.sling.launchpad.base.impl.DefaultStartupHandler.frameworkEvent(DefaultStartupHandler.java:287) at org.apache.felix.framework.EventDispatcher.invokeFrameworkListenerCallback(EventDispatcher.java:881) at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:830) at org.apache.felix.framework.EventDispatcher.run(EventDispatcher.java:1147) at org.apache.felix.framework.EventDispatcher.access$000(EventDispatcher.java:54) at org.apache.felix.framework.EventDispatcher$1.run(EventDispatcher.java:102) at java.base@11.0.16.1/java.lang.Thread.run(Thread.java:834) "Apache Sling Repository Startup Thread #1" daemon prio=5 tid=0x50 nid=0xffffffff waiting for monitor entry java.lang.Thread.State: BLOCKED at org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener.notifyChange(ServicesListener.java:121) - waiting to lock <0x45551fe9> (a org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener) owned by "FelixDispatchQueue" tid=0x13 at org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener$Listener.retainService(ServicesListener.java:270) - locked <0x7f8b03e7> (a org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener$Listener) at org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener$Listener.serviceChanged(ServicesListener.java:295) at org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990) at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838) at org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545) at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4833) at org.apache.felix.framework.Felix.registerService(Felix.java:3804) at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:328) at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:907) at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:893) at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:128) at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:960) at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:733) at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1091) at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1043) at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1216) at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1137) at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:944) at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:880) at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1168) at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:125) at org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990) at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838) at org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545) at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4833) at org.apache.felix.framework.Felix.registerService(Felix.java:3804) at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:328) at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:501) at org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator.registerFactory(ResourceResolverFactoryActivator.java:519) at org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator.checkFactoryPreconditions(ResourceResolverFactoryActivator.java:582) at org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator.access$100(ResourceResolverFactoryActivator.java:68) at org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator$1.providerAdded(ResourceResolverFactoryActivator.java:416) at org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker.register(ResourceProviderTracker.java:217) at org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker.access$200(ResourceProviderTracker.java:59) at org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker$1.addingService(ResourceProviderTracker.java:130) at org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker$1.addingService(ResourceProviderTracker.java:106) at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:943) at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:871) at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229) at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:903) at org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990) at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838) at org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545) at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4833) at org.apache.felix.framework.Felix.registerService(Felix.java:3804) at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:328) at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:907) at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:893) at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:128) at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:960) at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:733) at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1091) at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1043) at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1216) at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1137) at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:944) at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:880) at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1168) at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:125) at org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990) at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838) at org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545) at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4833) at org.apache.felix.framework.Felix.registerService(Felix.java:3804) at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:328) at org.apache.sling.jcr.base.AbstractSlingRepositoryManager.registerService(AbstractSlingRepositoryManager.java:222) at org.apache.sling.jcr.base.AbstractSlingRepositoryManager.initializeAndRegisterRepositoryService(AbstractSlingRepositoryManager.java:566) - locked <0x6bf30b5e> (a java.lang.Object) at org.apache.sling.jcr.base.AbstractSlingRepositoryManager.access$300(AbstractSlingRepositoryManager.java:92) at org.apache.sling.jcr.base.AbstractSlingRepositoryManager$4.run(AbstractSlingRepositoryManager.java:527) Found 1 deadlock. {code} was: {code:java} Found one Java-level deadlock: ============================= "FelixDispatchQueue": waiting to lock monitor 7f8a5595d180 (object 7f8b03e7, a org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener$Listener), which is held by "Apache Sling Repository Startup Thread #1" "Apache Sling Repository Startup Thread #1": waiting to lock monitor 7f8a5595d180 (object 45551fe9, a org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener), which is held by "FelixDispatchQueue" {code} The issue seems to be in https://github.com/apache/sling-org-apache-sling-extensions-webconsolesecurityprovider/blob/fd7f0e9e4e287ceb72211ee2e08e55568713ddbd/src/main/java/org/apache/sling/extensions/webconsolesecurityprovider/internal/ServicesListener.java and it could very well be that the last commit was the cause(?). https://github.com/apache/sling-org-apache-sling-extensions-webconsolesecurityprovider/commit/fd7f0e9e4e287ceb72211ee2e08e55568713ddbd > Sling WebConsoleSecurityProvider extension seems to deadlock in certain cases > ----------------------------------------------------------------------------- > > Key: SLING-11717 > URL: https://issues.apache.org/jira/browse/SLING-11717 > Project: Sling > Issue Type: Bug > Reporter: Henry Kuijpers > Priority: Major > > {code:java} > Found one Java-level deadlock: > ============================= > "FelixDispatchQueue": > waiting to lock monitor 7f8a5595d180 (object 7f8b03e7, a > org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener$Listener), > which is held by "Apache Sling Repository Startup Thread #1" > "Apache Sling Repository Startup Thread #1": > waiting to lock monitor 7f8a5595d180 (object 45551fe9, a > org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener), > which is held by "FelixDispatchQueue" > {code} > The issue seems to be in > https://github.com/apache/sling-org-apache-sling-extensions-webconsolesecurityprovider/blob/fd7f0e9e4e287ceb72211ee2e08e55568713ddbd/src/main/java/org/apache/sling/extensions/webconsolesecurityprovider/internal/ServicesListener.java > and it could very well be that the last commit was the cause(?). > https://github.com/apache/sling-org-apache-sling-extensions-webconsolesecurityprovider/commit/fd7f0e9e4e287ceb72211ee2e08e55568713ddbd > > {code:java} > Java stack information for the threads listed above: > =================================================== > "FelixDispatchQueue" prio=5 tid=0xd nid=0xffffffff waiting for monitor entry > java.lang.Thread.State: BLOCKED > at > org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener$Listener.getService(ServicesListener.java:247) > - waiting to lock <0x7f8b03e7> (a > org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener$Listener) > owned by "Apache Sling Repository Startup Thread #1" tid=0x80 > at > org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener.notifyChange(ServicesListener.java:121) > - locked <0x45551fe9> (a > org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener) > at > org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener.startupFinished(ServicesListener.java:105) > at > org.apache.sling.launchpad.base.impl.DefaultStartupHandler.startupFinished(DefaultStartupHandler.java:366) > at > org.apache.sling.launchpad.base.impl.DefaultStartupHandler.frameworkEvent(DefaultStartupHandler.java:287) > at > org.apache.felix.framework.EventDispatcher.invokeFrameworkListenerCallback(EventDispatcher.java:881) > at > org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:830) > at > org.apache.felix.framework.EventDispatcher.run(EventDispatcher.java:1147) > at > org.apache.felix.framework.EventDispatcher.access$000(EventDispatcher.java:54) > at > org.apache.felix.framework.EventDispatcher$1.run(EventDispatcher.java:102) > at java.base@11.0.16.1/java.lang.Thread.run(Thread.java:834) > "Apache Sling Repository Startup Thread #1" daemon prio=5 tid=0x50 > nid=0xffffffff waiting for monitor entry > java.lang.Thread.State: BLOCKED > at > org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener.notifyChange(ServicesListener.java:121) > - waiting to lock <0x45551fe9> (a > org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener) > owned by "FelixDispatchQueue" tid=0x13 > at > org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener$Listener.retainService(ServicesListener.java:270) > - locked <0x7f8b03e7> (a > org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener$Listener) > at > org.apache.sling.extensions.webconsolesecurityprovider.internal.ServicesListener$Listener.serviceChanged(ServicesListener.java:295) > at > org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990) > at > org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838) > at > org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545) > at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4833) > at org.apache.felix.framework.Felix.registerService(Felix.java:3804) > at > org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:328) > at > org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:907) > at > org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:893) > at > org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:128) > at > org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:960) > at > org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:733) > at > org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1091) > at > org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1043) > at > org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1216) > at > org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1137) > at > org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:944) > at > org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:880) > at > org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1168) > at > org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:125) > at > org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990) > at > org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838) > at > org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545) > at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4833) > at org.apache.felix.framework.Felix.registerService(Felix.java:3804) > at > org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:328) > at > org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:501) > at > org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator.registerFactory(ResourceResolverFactoryActivator.java:519) > at > org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator.checkFactoryPreconditions(ResourceResolverFactoryActivator.java:582) > at > org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator.access$100(ResourceResolverFactoryActivator.java:68) > at > org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator$1.providerAdded(ResourceResolverFactoryActivator.java:416) > at > org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker.register(ResourceProviderTracker.java:217) > at > org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker.access$200(ResourceProviderTracker.java:59) > at > org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker$1.addingService(ResourceProviderTracker.java:130) > at > org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker$1.addingService(ResourceProviderTracker.java:106) > at > org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:943) > at > org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:871) > at > org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) > at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229) > at > org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:903) > at > org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990) > at > org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838) > at > org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545) > at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4833) > at org.apache.felix.framework.Felix.registerService(Felix.java:3804) > at > org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:328) > at > org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:907) > at > org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:893) > at > org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:128) > at > org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:960) > at > org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:733) > at > org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1091) > at > org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1043) > at > org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1216) > at > org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1137) > at > org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:944) > at > org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:880) > at > org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1168) > at > org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:125) > at > org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990) > at > org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838) > at > org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545) > at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4833) > at org.apache.felix.framework.Felix.registerService(Felix.java:3804) > at > org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:328) > at > org.apache.sling.jcr.base.AbstractSlingRepositoryManager.registerService(AbstractSlingRepositoryManager.java:222) > at > org.apache.sling.jcr.base.AbstractSlingRepositoryManager.initializeAndRegisterRepositoryService(AbstractSlingRepositoryManager.java:566) > - locked <0x6bf30b5e> (a java.lang.Object) > at > org.apache.sling.jcr.base.AbstractSlingRepositoryManager.access$300(AbstractSlingRepositoryManager.java:92) > at > org.apache.sling.jcr.base.AbstractSlingRepositoryManager$4.run(AbstractSlingRepositoryManager.java:527) > Found 1 deadlock. > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)