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

Richard S. Hall edited comment on FELIX-4540 at 6/24/14 1:53 PM:
-----------------------------------------------------------------

Just to cut to the chase, I'm guess that this is the standard JVM class loader 
deadlock issue. If you are on Java 7, then you should try upgrading your 
framework version since 4.0.3 does not take advantage of the parallel capable 
class loaders introduced in Java 7, but more recent framework versions do.


was (Author: rickhall):
Just to cut to the chase, I'm guess that this is the standard JVM class loader 
deadlock issue. If you are on Java 7, then you should try upgrading your 
framework version since 4.0.3 does not take advantage of the parallel capable 
class loaders introduced in Java, but more recent framework versions do.

> Deadlock in BundleWiringImpl$BundleClassLoader.loadClass
> --------------------------------------------------------
>
>                 Key: FELIX-4540
>                 URL: https://issues.apache.org/jira/browse/FELIX-4540
>             Project: Felix
>          Issue Type: Bug
>         Environment: java version "1.7.0_55"
> Karaf 2.3.4, Felix 4.0.3
>            Reporter: Martin Lichtin
>
> {noformat}
> Found one Java-level deadlock:
> =============================
> "Pax Web Runtime worker":
>   waiting to lock monitor 0x000000000b0a1438 (object 0x00000000fb585990, a 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5),
>   which is held by "Thread-15"
> "Thread-15":
>   waiting to lock monitor 0x000000000b0a1388 (object 0x00000000f7681f70, a 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5),
>   which is held by "Pax Web Runtime worker"
> Java stack information for the threads listed above:
> ===================================================
> "Pax Web Runtime worker":
>         at 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1836)
>         - waiting to lock <0x00000000fb585990> (a 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
>         at 
> org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1317)
>         at 
> org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1481)
>         at 
> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1427)
>         at 
> org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72)
>         at 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
>         at 
> org.ops4j.pax.web.service.internal.Activator.updateController(Activator.java:247)
>         at 
> org.ops4j.pax.web.service.internal.Activator$DynamicsServiceTrackerCustomizer$1.run(Activator.java:376)
>         at 
> org.ops4j.pax.web.service.internal.Executor$Future.run(Executor.java:47)
>         at 
> org.ops4j.pax.web.service.internal.Executor$Worker.run(Executor.java:128)
> "Thread-15":
>         at 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1836)
>         - waiting to lock <0x00000000f7681f70> (a 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
>         at 
> org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1317)
>         at 
> org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1481)
>         at 
> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1427)
>         at 
> org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72)
>         at 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
>         at java.lang.ClassLoader.defineClass1(Native Method)
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
>         at 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2128)
>         - locked <0x00000000fb585990> (a 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5)
>         at 
> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1432)
>         at 
> org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72)
>         at 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
>         at 
> org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1317)
>         at 
> org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1481)
>         at 
> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1427)
>         at 
> org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72)
>         at 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
>         at 
> org.ops4j.pax.web.extender.whiteboard.internal.util.WebContainerUtils.webContainerAvailable(WebContainerUtils.java:46)
>         at 
> org.ops4j.pax.web.extender.whiteboard.internal.util.WebContainerUtils.<clinit>(WebContainerUtils.java:35)
>         at 
> org.ops4j.pax.web.extender.whiteboard.internal.Activator.start(Activator.java:78)
>         at 
> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
>         at org.apache.felix.framework.Felix.activateBundle(Felix.java:1977)
>         at org.apache.felix.framework.Felix.startBundle(Felix.java:1895)
>         at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:944)
>         at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:931)
>         at 
> org.apache.karaf.features.internal.FeaturesServiceImpl.installFeatures(FeaturesServiceImpl.java:488)
>         at 
> org.apache.karaf.features.internal.FeaturesServiceImpl.installFeature(FeaturesServiceImpl.java:405)
>         at 
> org.apache.karaf.features.internal.FeaturesServiceImpl.installFeature(FeaturesServiceImpl.java:401)
>         at 
> org.apache.karaf.features.command.InstallFeatureCommand.doExecute(InstallFeatureCommand.java:62)
>         at 
> org.apache.karaf.features.command.FeaturesCommandSupport.doExecute(FeaturesCommandSupport.java:41)
>         at 
> org.apache.karaf.shell.console.OsgiCommandSupport.execute(OsgiCommandSupport.java:38)
>         at 
> org.apache.felix.gogo.commands.basic.AbstractCommand.execute(AbstractCommand.java:35)
>         at 
> org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78)
>         at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:474)
>         at 
> org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:400)
>         at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
>         at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
>         at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
>         at 
> org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89)
>         at org.apache.karaf.shell.console.jline.Console.run(Console.java:183)
>         at java.lang.Thread.run(Thread.java:745)
>         at 
> org.apache.karaf.shell.ssh.ShellFactoryImpl$ShellImpl$4.doRun(ShellFactoryImpl.java:144)
>         at 
> org.apache.karaf.shell.ssh.ShellFactoryImpl$ShellImpl$4$1.run(ShellFactoryImpl.java:135)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at javax.security.auth.Subject.doAs(Subject.java:356)
>         at 
> org.apache.karaf.shell.ssh.ShellFactoryImpl$ShellImpl$4.run(ShellFactoryImpl.java:133)
> Found 1 deadlock.
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to