[ https://issues.apache.org/jira/browse/SLING-7004?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Carsten Ziegeler resolved SLING-7004. ------------------------------------- Resolution: Fixed Using single lock instead of more fine grained ones (rev 1805278) > Deadlock at startup in Commons Scheduler > ---------------------------------------- > > Key: SLING-7004 > URL: https://issues.apache.org/jira/browse/SLING-7004 > Project: Sling > Issue Type: Bug > Components: Commons > Reporter: Chetan Mehrotra > Assignee: Carsten Ziegeler > Fix For: Commons Scheduler 2.6.4 > > Attachments: threaddump.log > > > Saw following deadlock in one of the startups with 2.6.2 release. Logs > [attached|^threaddump.log] > {noformat} > Found one Java-level deadlock: > ============================= > "Apache Sling Repository Startup Thread": > waiting to lock monitor 0x00007f3eec6eb318 (object 0x00000000e3f944e0, a > org.apache.sling.commons.scheduler.impl.SchedulerProxy), > which is held by "FelixStartLevel" > "FelixStartLevel": > waiting to lock monitor 0x00007f3e610de918 (object 0x00000000e798fc58, a > org.apache.sling.commons.scheduler.impl.SchedulerProxy), > which is held by "Apache Sling Repository Startup Thread" > Java stack information for the threads listed above: > =================================================== > "Apache Sling Repository Startup Thread": > at > org.apache.sling.commons.scheduler.impl.QuartzScheduler.unschedule(QuartzScheduler.java:555) > - waiting to lock <0x00000000e3f944e0> (a > org.apache.sling.commons.scheduler.impl.SchedulerProxy) > at > org.apache.sling.commons.scheduler.impl.QuartzScheduler.scheduleJob(QuartzScheduler.java:601) > - locked <0x00000000e798fc58> (a > org.apache.sling.commons.scheduler.impl.SchedulerProxy) > at > org.apache.sling.commons.scheduler.impl.QuartzScheduler.schedule(QuartzScheduler.java:532) > at > org.apache.sling.commons.scheduler.impl.WhiteboardHandler.scheduleJob(WhiteboardHandler.java:271) > at > org.apache.sling.commons.scheduler.impl.WhiteboardHandler.trySchedulePeriod(WhiteboardHandler.java:229) > at > org.apache.sling.commons.scheduler.impl.WhiteboardHandler.register(WhiteboardHandler.java:189) > at > org.apache.sling.commons.scheduler.impl.WhiteboardHandler.registerRunnable(WhiteboardHandler.java:146) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > at > org.apache.felix.scr.impl.inject.BaseMethod.invokeMethod(BaseMethod.java:224) > at > org.apache.felix.scr.impl.inject.BaseMethod.access$500(BaseMethod.java:39) > at > org.apache.felix.scr.impl.inject.BaseMethod$Resolved.invoke(BaseMethod.java:617) > at > org.apache.felix.scr.impl.inject.BaseMethod.invoke(BaseMethod.java:501) > at > org.apache.felix.scr.impl.inject.BindMethod.invoke(BindMethod.java:655) > at > org.apache.felix.scr.impl.manager.DependencyManager.doInvokeBindMethod(DependencyManager.java:1722) > at > org.apache.felix.scr.impl.manager.DependencyManager.invokeBindMethod(DependencyManager.java:1699) > at > org.apache.felix.scr.impl.manager.SingleComponentManager.invokeBindMethod(SingleComponentManager.java:372) > at > org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.addedService(DependencyManager.java:320) > at > org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.addedService(DependencyManager.java:291) > at > org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1215) > at > org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1136) > at > org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:945) > at > org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:881) > at > org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1167) > at > org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:127) > 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:4579) > at org.apache.felix.framework.Felix.registerService(Felix.java:3571) > at > org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:348) > at > org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:322) > at > org.apache.jackrabbit.oak.osgi.OsgiWhiteboard.register(OsgiWhiteboard.java:80) > at > org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.scheduleWithFixedDelay(WhiteboardUtils.java:71) > at > org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.scheduleWithFixedDelay(WhiteboardUtils.java:52) > at > org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.scheduleWithFixedDelay(WhiteboardUtils.java:46) > at > org.apache.jackrabbit.oak.stats.StatisticManager.<init>(StatisticManager.java:74) > at > org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.<init>(RepositoryImpl.java:151) > at org.apache.jackrabbit.oak.jcr.Jcr.createRepository(Jcr.java:407) > at > com.adobe.granite.repository.impl.SlingRepositoryManager.createRepository(SlingRepositoryManager.java:417) > at > com.adobe.granite.repository.impl.SlingRepositoryManager.acquireRepository(SlingRepositoryManager.java:265) > at > org.apache.sling.jcr.base.AbstractSlingRepositoryManager.initializeAndRegisterRepositoryService(AbstractSlingRepositoryManager.java:471) > at > org.apache.sling.jcr.base.AbstractSlingRepositoryManager.access$300(AbstractSlingRepositoryManager.java:85) > at > org.apache.sling.jcr.base.AbstractSlingRepositoryManager$4.run(AbstractSlingRepositoryManager.java:455) > "FelixStartLevel": > at > org.apache.sling.commons.scheduler.impl.QuartzScheduler.unschedule(QuartzScheduler.java:555) > - waiting to lock <0x00000000e798fc58> (a > org.apache.sling.commons.scheduler.impl.SchedulerProxy) > at > org.apache.sling.commons.scheduler.impl.QuartzScheduler.scheduleJob(QuartzScheduler.java:601) > - locked <0x00000000e3f944e0> (a > org.apache.sling.commons.scheduler.impl.SchedulerProxy) > at > org.apache.sling.commons.scheduler.impl.QuartzScheduler.schedule(QuartzScheduler.java:532) > at > org.apache.sling.commons.scheduler.impl.WhiteboardHandler.scheduleJob(WhiteboardHandler.java:271) > at > org.apache.sling.commons.scheduler.impl.WhiteboardHandler.trySchedulePeriod(WhiteboardHandler.java:229) > at > org.apache.sling.commons.scheduler.impl.WhiteboardHandler.register(WhiteboardHandler.java:189) > at > org.apache.sling.commons.scheduler.impl.WhiteboardHandler.registerRunnable(WhiteboardHandler.java:146) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > at > org.apache.felix.scr.impl.inject.BaseMethod.invokeMethod(BaseMethod.java:224) > at > org.apache.felix.scr.impl.inject.BaseMethod.access$500(BaseMethod.java:39) > at > org.apache.felix.scr.impl.inject.BaseMethod$Resolved.invoke(BaseMethod.java:617) > at > org.apache.felix.scr.impl.inject.BaseMethod.invoke(BaseMethod.java:501) > at > org.apache.felix.scr.impl.inject.BindMethod.invoke(BindMethod.java:655) > at > org.apache.felix.scr.impl.manager.DependencyManager.doInvokeBindMethod(DependencyManager.java:1722) > at > org.apache.felix.scr.impl.manager.DependencyManager.open(DependencyManager.java:1556) > at > org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:261) > at > org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:109) > at > org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:906) > at > org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:879) > at > org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:749) > at > org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:675) > at > org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:430) > at > org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:657) > - locked <0x00000000e3dbc5d0> (a java.lang.Object) > at > org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:341) > at > org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:390) > at org.apache.felix.scr.impl.Activator.access$200(Activator.java:54) > at > org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:265) > at > org.apache.felix.utils.extender.AbstractExtender.createExtension(AbstractExtender.java:259) > at > org.apache.felix.utils.extender.AbstractExtender.modifiedBundle(AbstractExtender.java:232) > at > org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:482) > at > org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:415) > at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232) > at > org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:444) > at > org.apache.felix.framework.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:915) > at > org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:834) > at > org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:516) > at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4563) > at org.apache.felix.framework.Felix.startBundle(Felix.java:2173) > at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1372) > at > org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) > at java.lang.Thread.run(Thread.java:745) > Found 1 deadlock. > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)