Deadlock on refrsh Import and refresh
-------------------------------------

                 Key: FELIX-2437
                 URL: https://issues.apache.org/jira/browse/FELIX-2437
             Project: Felix
          Issue Type: Bug
          Components: Configuration Admin
    Affects Versions: webconsole-3.0.0, framework-2.0.4
         Environment: Felix framework 2.0.4
Felix webconsole 3.0.0
Sling 
            Reporter: christian
            Priority: Minor


I encountred a Deadlock using Webconsole (s. stacktrace below)

Stepps to reproduce:

1) in webconsole navigate to "bundles"
2) select and open the detail view of a bundle that has a lot dependencies (I 
used sling and as bundle the sling api bundle)
3) click "refresh package import"
4) click "refresh"

It the request from 4) is processed while he one from 3) is still running, you 
get a deadlock. 




Found one Java-level deadlock:
=============================
"0:0:0:0:0:0:0:1 [1277221470284] GET /system/console/bundles/105 HTTP/1.1":
  waiting to lock monitor 0x0039de94 (object 0x06448fd0, a 
org.apache.felix.framework.BundleImpl),
  which is held by "FelixPackageAdmin"
"FelixPackageAdmin":
  waiting to lock monitor 0x0039deb4 (object 0x06235658, a [Ljava.lang.Object;),
  which is held by "0:0:0:0:0:0:0:1 [1277221470284] GET 
/system/console/bundles/105 HTTP/1.1"

Java stack information for the threads listed above:
===================================================
"0:0:0:0:0:0:0:1 [1277221470284] GET /system/console/bundles/105 HTTP/1.1":
        at 
org.apache.felix.framework.BundleImpl.getModules(BundleImpl.java:1001)
        - waiting to lock <0x06448fd0> (a org.apache.felix.framework.BundleImpl)
        at org.apache.felix.framework.Felix.getExportedPackages(Felix.java:3114)
        at org.apache.felix.framework.Felix.getExportedPackages(Felix.java:3093)
        - locked <0x06235658> (a [Ljava.lang.Object;)
        at 
org.apache.felix.framework.PackageAdminImpl.getExportedPackages(PackageAdminImpl.java:184)
        at 
org.apache.felix.webconsole.internal.core.BundlesServlet.listImportExport(BundlesServlet.java:834)
        at 
org.apache.felix.webconsole.internal.core.BundlesServlet.bundleDetails(BundlesServlet.java:752)
        at 
org.apache.felix.webconsole.internal.core.BundlesServlet.bundleInfo(BundlesServlet.java:675)
        at 
org.apache.felix.webconsole.internal.core.BundlesServlet.writeJSON(BundlesServlet.java:570)
        at 
org.apache.felix.webconsole.internal.core.BundlesServlet.writeJSON(BundlesServlet.java:511)
        at 
org.apache.felix.webconsole.internal.core.BundlesServlet.renderContent(BundlesServlet.java:485)
        at 
org.apache.felix.webconsole.AbstractWebConsolePlugin.doGet(AbstractWebConsolePlugin.java:148)
        at 
org.apache.felix.webconsole.internal.core.BundlesServlet.doGet(BundlesServlet.java:274)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:367)
        at 
org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:93)
        at 
org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:79)
        at 
org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:42)
        at 
org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:49)
        at 
org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
        at 
org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48)
        at 
org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39)
        at 
org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.felix.http.proxy.ProxyServlet.service(ProxyServlet.java:60)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.sling.launchpad.base.webapp.SlingServletDelegate.service(SlingServletDelegate.java:275)
        at 
org.apache.sling.launchpad.webapp.SlingServlet.service(SlingServlet.java:130)
        at 
com.day.j2ee.servletengine.ServletRuntimeEnvironment.service(ServletRuntimeEnvironment.java:228)
        at 
com.day.j2ee.servletengine.RequestDispatcherImpl.doFilter(RequestDispatcherImpl.java:315)
        at 
com.day.j2ee.servletengine.FilterChainImpl.doFilter(FilterChainImpl.java:74)
        at 
com.day.crx.launchpad.filters.CRXLaunchpadLicenseFilter.doFilter(CRXLaunchpadLicenseFilter.java:96)
        at 
com.day.j2ee.servletengine.FilterChainImpl.doFilter(FilterChainImpl.java:72)
        at 
com.day.j2ee.servletengine.RequestDispatcherImpl.service(RequestDispatcherImpl.java:334)
        at 
com.day.j2ee.servletengine.RequestDispatcherImpl.service(RequestDispatcherImpl.java:378)
        at 
com.day.j2ee.servletengine.ServletHandlerImpl.execute(ServletHandlerImpl.java:313)
        at 
com.day.j2ee.servletengine.DefaultThreadPool$DequeueThread.run(DefaultThreadPool.java:134)
        at java.lang.Thread.run(Thread.java:595)
"FelixPackageAdmin":
        at org.apache.felix.framework.Felix.getBundles(Felix.java:2594)
        - waiting to lock <0x06235658> (a [Ljava.lang.Object;)
        at 
org.apache.felix.framework.BundleImpl.createModule(BundleImpl.java:1140)
        at org.apache.felix.framework.BundleImpl.refresh(BundleImpl.java:170)
        - locked <0x06448fd0> (a org.apache.felix.framework.BundleImpl)
        at org.apache.felix.framework.Felix.refreshBundle(Felix.java:3574)
        at org.apache.felix.framework.Felix.access$900(Felix.java:39)
        at 
org.apache.felix.framework.Felix$RefreshHelper.refreshOrRemove(Felix.java:4257)
        at org.apache.felix.framework.Felix.refreshPackages(Felix.java:3438)
        at 
org.apache.felix.framework.PackageAdminImpl.run(PackageAdminImpl.java:331)
        at java.lang.Thread.run(Thread.java:595)

Found 1 deadlock.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to