[ 
https://issues.apache.org/jira/browse/FELIX-4670?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

David Bosschaert updated FELIX-4670:
------------------------------------
    Attachment: felix_4670_alt.diff

After some further feedback I have come up with an alternative implementation 
(felix_4680_alt.diff) that does not involve separate threads. It removes the 
need for synchronization on the HandlerRegistry, one of the locks in this 
deadlock. 

This is done by using concurrent maps. Note that the atomicity to ConcurrentMap 
is only guaranteed per single call, therefore I had to move handler.init() in 
the add methods to before the putIfAbsent call. An optimistic approach if you 
like. However this means that if the handler cannot be added an extra destroy() 
call was needed.

What do people think? Is this a better approach than with the threading? If 
there is consensus that this is a better idea I'll also provide unit tests.

> Deadlock in Felix HTTP service
> ------------------------------
>
>                 Key: FELIX-4670
>                 URL: https://issues.apache.org/jira/browse/FELIX-4670
>             Project: Felix
>          Issue Type: Bug
>          Components: HTTP Service
>    Affects Versions: http-2.2.0
>         Environment: Websphere 7.0, IBM Java 6.0
>            Reporter: Jörg Hoh
>            Assignee: David Bosschaert
>         Attachments: felix-4670.diff, felix_4670_alt.diff
>
>
> When we startup our webapplication, we sometimes run into a deadlock:
> {code}
> 1LKDEADLOCK    Deadlock detected !!!
> NULL           ---------------------
> NULL           
> 2LKDEADLOCKTHR  Thread "server.startup : 1" (0x0000000001DDC800)
> 3LKDEADLOCKWTR    is waiting for:
> 4LKDEADLOCKMON      sys_mon_t:0x00007FFFBBB61F20 infl_mon_t: 
> 0x00007FFFBBB61F90:
> 4LKDEADLOCKOBJ      
> org/apache/felix/http/whiteboard/internal/manager/ExtenderManager@0x00000001014B3650/0x00000001014B365C:
>  
> 3LKDEADLOCKOWN    which is owned by:
> 2LKDEADLOCKTHR  Thread "FelixStartLevel" (0x0000000002156100)
> 3LKDEADLOCKWTR    which is waiting for:
> 4LKDEADLOCKMON      sys_mon_t:0x00007FFFBBBBA340 infl_mon_t: 
> 0x00007FFFBBBBA3B0:
> 4LKDEADLOCKOBJ      
> org/apache/felix/http/base/internal/handler/HandlerRegistry@0x00000001070D6EA0/0x00000001070D6EAC:
>  
> 3LKDEADLOCKOWN    which is owned by:
> 2LKDEADLOCKTHR  Thread "server.startup : 1" (0x0000000001DDC800)
> NULL         
> {code}
> The stacktrace of these 2 threads as indicated by the javacore file:
> {code}
> 3XMTHREADINFO      "FelixStartLevel" J9VMThread:0x0000000002156100, 
> j9thread_t:0x00007FFFC938B4B0, java/lang/Thread:0x0000000101580260, state:B, 
> prio=5
> 3XMJAVALTHREAD            (java/lang/Thread getId:0x70, isDaemon:true)
> 3XMTHREADINFO1            (native thread ID:0x5D3A, native priority:0x5, 
> native policy:UNKNOWN)
> 3XMTHREADINFO2            (native stack address range 
> from:0x00007FFFC530A000, to:0x00007FFFC534B000, size:0x41000)
> 3XMTHREADINFO3           Java callstack:
> 4XESTACKTRACE                at 
> org/apache/felix/http/base/internal/service/HttpServiceImpl.unregisterFilter(HttpServiceImpl.java:140)
>     
> 4XESTACKTRACE                at 
> org/apache/felix/http/base/internal/service/HttpServiceImpl.unregisterFilter(HttpServiceImpl.java:76)
> 4XESTACKTRACE                at 
> org/apache/felix/http/whiteboard/internal/manager/FilterMapping.unregister(FilterMapping.java:90)
> 4XESTACKTRACE                at 
> org/apache/felix/http/whiteboard/internal/manager/FilterMapping.unregister(FilterMapping.java:83)
> 4XESTACKTRACE                at 
> org/apache/felix/http/whiteboard/internal/manager/ExtenderManager.unregisterMapping(ExtenderManager.java:270)
> 4XESTACKTRACE                at 
> org/apache/felix/http/whiteboard/internal/manager/ExtenderManager.removeMapping(ExtenderManager.java:252)
>       
> 4XESTACKTRACE                at 
> org/apache/felix/http/whiteboard/internal/manager/ExtenderManager.remove(ExtenderManager.java:183)
> 4XESTACKTRACE                at 
> org/apache/felix/http/whiteboard/internal/tracker/FilterTracker.removed(FilterTracker.java:48)
> 4XESTACKTRACE                at 
> org/apache/felix/http/whiteboard/internal/tracker/FilterTracker.removed(FilterTracker.java:24)
> 4XESTACKTRACE                at 
> org/apache/felix/http/whiteboard/internal/tracker/AbstractTracker.removedService(AbstractTracker.java:52)
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:956)
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:864)
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/AbstractTracked.untrack(AbstractTracked.java:341(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:902(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/util/EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:932(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/util/EventDispatcher.fireEventImmediately(EventDispatcher.java:793(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/util/EventDispatcher.fireServiceEvent(EventDispatcher.java:543(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/Felix.fireServiceEvent(Felix.java:4401(Compiled 
> Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/Felix.access$000(Felix.java:74(Compiled Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/Felix$1.serviceChanged(Felix.java:390(Compiled 
> Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/ServiceRegistry.unregisterService(ServiceRegistry.java:151(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:127(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/scr/impl/manager/AbstractComponentManager.unregisterComponentService(AbstractComponentManager.java:702(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/scr/impl/manager/AbstractComponentManager$State.doDeactivate(AbstractComponentManager.java:1301(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/scr/impl/manager/AbstractComponentManager$Satisfied.dispose(AbstractComponentManager.java:1617)
> 4XESTACKTRACE                at 
> org/apache/felix/scr/impl/manager/AbstractComponentManager.disposeInternal(AbstractComponentManager.java:574(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/scr/impl/manager/AbstractComponentManager.dispose(AbstractComponentManager.java:404(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/scr/impl/config/ImmediateComponentHolder.disposeComponents(ImmediateComponentHolder.java:371(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/scr/impl/BundleComponentActivator.dispose(BundleComponentActivator.java:320(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/scr/impl/Activator.disposeComponents(Activator.java:316)
> 4XESTACKTRACE                at 
> org/apache/felix/scr/impl/Activator.bundleChanged(Activator.java:183(Compiled 
> Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/util/EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:868(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/util/EventDispatcher.fireEventImmediately(EventDispatcher.java:789(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/util/EventDispatcher.fireBundleEvent(EventDispatcher.java:514(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/Felix.fireBundleEvent(Felix.java:4385(Compiled 
> Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/Felix.stopBundle(Felix.java:2508)
> 4XESTACKTRACE                at 
> org/apache/felix/framework/Felix.setActiveStartLevel(Felix.java:1297(Compiled 
> Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:304)
> 4XESTACKTRACE                at java/lang/Thread.run(Thread.java:761)
> {code}
> {code}
> 3XMTHREADINFO      "server.startup : 1" J9VMThread:0x0000000001DDC800, 
> j9thread_t:0x00007FFFC8C61340, java/lang/Thread:0x00000001014B35A8, state:B, 
> prio=5
> 3XMJAVALTHREAD            (java/lang/Thread getId:0x68, isDaemon:true)
> 3XMTHREADINFO1            (native thread ID:0x5A08, native priority:0x5, 
> native policy:UNKNOWN)
> 3XMTHREADINFO2            (native stack address range 
> from:0x00007FFFC64D4000, to:0x00007FFFC6515000, size:0x41000)
> 3XMTHREADINFO3           Java callstack:
> 4XESTACKTRACE                at 
> org/apache/felix/http/whiteboard/internal/manager/ExtenderManager.remove(ExtenderManager.java:183)
> 4XESTACKTRACE                at 
> org/apache/felix/http/whiteboard/internal/tracker/ServletTracker.removed(ServletTracker.java:48)
> 4XESTACKTRACE                at 
> org/apache/felix/http/whiteboard/internal/tracker/ServletTracker.removed(ServletTracker.java:24)
> 4XESTACKTRACE                at 
> org/apache/felix/http/whiteboard/internal/tracker/AbstractTracker.removedService(AbstractTracker.java:52)
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:956)
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:864)
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/AbstractTracked.untrack(AbstractTracked.java:341(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:902(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/util/EventDispatcher.invokeServiceLi       
> stenerCallback(EventDispatcher.java:932(Compiled Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/util/EventDispatcher.fireEventImmediately(EventDispatcher.java:793(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/util/EventDispatcher.fireServiceEvent(EventDispatcher.java:543(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/Felix.fireServiceEvent(Felix.java:4401(Compiled 
> Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/Felix.access$000(Felix.java:74(Compiled Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/Felix$1.serviceChanged(Felix.java:390(Compiled 
> Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/ServiceRegistry.unregisterService(ServiceRegistry.java:151(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:127(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/inventory/impl/InventoryPrinterAdapter.unregisterConsole(InventoryPrinterAdapter.java:84)
> 4XESTACKTRACE                at 
> org/apache/felix/inventory/impl/InventoryPrinterManagerImpl.addService(InventoryPrinterManagerImpl.java:196)
> 4XESTACKTRACE                at 
> org/apache/felix/inventory/impl/InventoryPrinterManagerImpl.addingService(InventoryPrinterManagerImpl.java:128)
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:932(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:864(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/AbstractTracked.trackAdding(AbstractTracked.java:256(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/AbstractTracked.track(AbstractTracked.java:229(Compiled 
> Code))
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:894(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/util/EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:932(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/util/EventDispatcher.fireEventImmediately(EventDispatcher.java:793(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/util/EventDispatcher.fireServiceEvent(EventDispatcher.java:543(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/Felix.fireServiceEvent(Felix.java:4401(Compiled 
> Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/Felix.registerService(Felix.java:3411(Compiled 
> Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/BundleContextImpl.registerService(BundleContextImpl.java:346(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/BundleContextImpl.registerService(BundleContextImpl.java:320)
> 4XESTACKTRACE                at 
> org/apache/felix/inventory/impl/webconsole/WebConsoleAdapter.add(WebConsoleAdapter.java:125)
> 4XESTACKTRACE                at 
> org/apache/felix/inventory/impl/webconsole/WebConsoleAdapter.addingService(WebConsoleAdapter.java:155)
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:932(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:864(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/AbstractTracked.trackAdding(AbstractTracked.java:256(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/AbstractTracked.track(AbstractTracked.java:229(Compiled 
> Code))
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:894(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/util/EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:932(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/util/EventDispatcher.fireEventImmediately(EventDispatcher.java:793(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/util/EventDispatcher.fireServiceEvent(EventDispatcher.java:543(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/Felix.fireServiceEvent(Felix.java:4401(Compiled 
> Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/Felix.registerService(Felix.java:3411(Compiled 
> Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/BundleContextImpl.registerService(BundleContextImpl.java:346(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/BundleContextImpl.registerService(BundleContextImpl.java:320)
> 4XESTACKTRACE                at 
> de/xxx/yyy/modules/common/servlet/dispatcher/jsp/JspTldLocationsCache.<init>(JspTldLocationsCache.java:81)
> 4XESTACKTRACE                at 
> de/xxx/yyy/modules/common/servlet/dispatcher/jsp/engine/JspScriptEngineFactory.activate(JspScriptEngineFactory.java:235)
> 4XESTACKTRACE                at 
> de/xxx/yyy/modules/common/servlet/ContainerServlet.init(ContainerServlet.java:96)
> 4XESTACKTRACE                at 
> org/apache/felix/http/base/internal/handler/ServletHandler.init(ServletHandler.java:55)
> 4XESTACKTRACE                at 
> org/apache/felix/http/base/internal/handler/HandlerRegistry.addServlet(HandlerRegistry.java:65)
>                      
> 4XESTACKTRACE                at 
> org/apache/felix/http/base/internal/service/HttpServiceImpl.registerServlet(HttpServiceImpl.java:95)
> 4XESTACKTRACE                at 
> de/xxx/yyy/modules/common/osgi/webapp/WebappModuleServiceTracker.addingService(WebappModuleServiceTracker.java:82)
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:932(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:864(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/AbstractTracked.trackAdding(AbstractTracked.java:256(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/AbstractTracked.track(AbstractTracked.java:229(Compiled 
> Code))
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:894(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/util/EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:932(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/util/EventDispatcher.fireEventImmediately(EventDispatcher.java:793(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/util/EventDispatcher.fireServiceEvent(EventDispatcher.java:543(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/Felix.fireServiceEvent(Felix.java:4401(Compiled 
> Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/Felix.registerService(Felix.java:3411(Compiled 
> Code))
> 4XESTACKTRACE                at 
> org/apache/felix/framework/BundleContextImpl.registerService(BundleContextImpl.java:346(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/apache/felix/http/base/internal/HttpServiceController.register(HttpServiceController.java:135)
> 4XESTACKTRACE                at 
> org/apache/felix/http/base/internal/DispatcherServlet.init(DispatcherServlet.java:48)
> 4XESTACKTRACE                at 
> org/apache/felix/http/proxy/DispatcherTracker.initDispatcher(DispatcherTracker.java:97)
> 4XESTACKTRACE                at 
> org/apache/felix/http/proxy/DispatcherTracker.setDispatcher(DispatcherTracker.java:77)
> 4XESTACKTRACE                at 
> org/apache/felix/http/proxy/DispatcherTracker.addingService(DispatcherTracker.java:52)
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:932)
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:864)
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/AbstractTracked.trackAdding(AbstractTracked.java:256(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/AbstractTracked.trackInitial(AbstractTracked.java:183(Compiled
>  Code))
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/ServiceTracker.open(ServiceTracker.java:317)
> 4XESTACKTRACE                at 
> org/osgi/util/tracker/ServiceTracker.open(ServiceTracker.java:261)
> 4XESTACKTRACE                at 
> org/apache/felix/http/proxy/ProxyServlet.doInit(ProxyServlet.java:51)
> 4XESTACKTRACE                at 
> org/apache/felix/http/proxy/ProxyServlet.init(ProxyServlet.java:39)
> 4XESTACKTRACE                at 
> org/apache/sling/launchpad/base/webapp/SlingServletDelegate.init(SlingServletDelegate.java:208)
> 4XESTACKTRACE                at 
> javax/servlet/GenericServlet.init(GenericServlet.java:241)
> 4XESTACKTRACE                at 
> org/apache/sling/launchpad/webapp/SlingServlet.startSling(SlingServlet.java:384)
> 4XESTACKTRACE                at 
> org/apache/sling/launchpad/webapp/SlingServlet.startSling(SlingServlet.java:325)
> 4XESTACKTRACE                at 
> org/apache/sling/launchpad/webapp/SlingServlet.init(SlingServlet.java:118)
> 4XESTACKTRACE                at 
> javax/servlet/GenericServlet.init(GenericServlet.java:241)
> 4XESTACKTRACE                at 
> com/ibm/ws/webcontainer/servlet/ServletWrapper.init(ServletWrapper.java:363)
> 4XESTACKTRACE                at 
> com/ibm/ws/webcontainer/servlet/ServletWrapperImpl.init(ServletWrapperImpl.java:171)
> 4XESTACKTRACE                at 
> com/ibm/ws/webcontainer/servlet/ServletWrapper.initialize(ServletWrapper.java:1844)
> 4XESTACKTRACE                at 
> com/ibm/wsspi/webcontainer/extension/WebExtensionProcessor.createServletWrapper(WebExtensionProcessor.java:98)
> 4XESTACKTRACE                at 
> com/ibm/ws/webcontainer/webapp/WebApp.getServletWrapper(WebApp.java:1048(Compiled
>  Code))
> 4XESTACKTRACE                at 
> com/ibm/ws/webcontainer/webapp/WebApp.getServletWrapper(WebApp.java:969)
> 4XESTACKTRACE                at 
> com/ibm/ws/webcontainer/webapp/WebApp.initializeTargetMappings(WebApp.java:648(Compiled
>  Code))
> 4XESTACKTRACE                at 
> com/ibm/ws/webcontainer/webapp/WebApp.commonInitializationFinally(WebApp.java:450)
> 4XESTACKTRACE                at 
> com/ibm/ws/webcontainer/webapp/WebAppImpl.initialize(WebAppImpl.java:304(Compiled
>  Code))
> 4XESTACKTRACE                at 
> com/ibm/ws/webcontainer/webapp/WebGroupImpl.addWebApplication(WebGroupImpl.java:100)
> 4XESTACKTRACE                at 
> com/ibm/ws/webcontainer/VirtualHostImpl.addWebApplication(VirtualHostImpl.java:166)
> 4XESTACKTRACE                at 
> com/ibm/ws/webcontainer/WSWebContainer.addWebApp(WSWebContainer.java:732)
> 4XESTACKTRACE                at 
> com/ibm/ws/webcontainer/WSWebContainer.addWebApplication(WSWebContainer.java:617)
> 4XESTACKTRACE                at 
> com/ibm/ws/webcontainer/component/WebContainerImpl.install(WebContainerImpl.java:376)
> 4XESTACKTRACE                at 
> com/ibm/ws/webcontainer/component/WebContainerImpl.start(WebContainerImpl.java:668)
> 4XESTACKTRACE                at 
> com/ibm/ws/runtime/component/ApplicationMgrImpl.start(ApplicationMgrImpl.java:1128(Compiled
>  Code))
> 4XESTACKTRACE                at 
> com/ibm/ws/runtime/component/DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1319)
> 4XESTACKTRACE                at 
> com/ibm/ws/runtime/component/DeployedModuleImpl.start(DeployedModuleImpl.java:611(Compiled
>  Code))
> 4XESTACKTRACE                at 
> com/ibm/ws/runtime/component/DeployedApplicationImpl.start(DeployedApplicationImpl.java:944(Compiled
>  Code))
> 4XESTACKTRACE                at 
> com/ibm/ws/runtime/component/ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:741(Compiled
>  Code))
> 4XESTACKTRACE                at 
> com/ibm/ws/runtime/component/ApplicationMgrImpl$3.run(ApplicationMgrImpl.java:2056)
> 4XESTACKTRACE                at 
> com/ibm/ws/security/auth/ContextManagerImpl.runAs(ContextManagerImpl.java:5395)
> 4XESTACKTRACE                at 
> com/ibm/ws/security/auth/ContextManagerImpl.runAsSystem(ContextManagerImpl.java:5483)
> 4XESTACKTRACE                at 
> com/ibm/ws/security/core/SecurityContext.runAsSystem(SecurityContext.java:255)
> 4XESTACKTRACE                at 
> com/ibm/ws/runtime/component/ApplicationMgrImpl.start(ApplicationMgrImpl.java:2061)
> 4XESTACKTRACE                at 
> com/ibm/ws/runtime/component/CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:389(Compiled
>  Code))
> 4XESTACKTRACE                at 
> com/ibm/ws/runtime/component/CompositionUnitImpl.start(CompositionUnitImpl.java:123)
> 4XESTACKTRACE                at 
> com/ibm/ws/runtime/component/CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:332)
> 4XESTACKTRACE                at 
> com/ibm/ws/runtime/component/CompositionUnitMgrImpl.access$300(CompositionUnitMgrImpl.java:117)
> 4XESTACKTRACE                at 
> com/ibm/ws/runtime/component/CompositionUnitMgrImpl$CUInitializer.run(CompositionUnitMgrImpl.java:899)
> 4XESTACKTRACE                at 
> com/ibm/wsspi/runtime/component/WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:496)
> 4XESTACKTRACE                at 
> com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1656(Compiled Code))
> {code}
> We run into this quite often, so it's kind of reproducible. We have the same 
> behaviour as well with other thread combinations (e.g. Sling Notifier and 
> FelixFrameworkWiring) hitting the same locks.



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

Reply via email to