You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by metatech <me...@gmail.com> on 2012/01/12 11:57:26 UTC
Re: Deadlock in ModuleClassLoader
Richard S. Hall wrote:
>
> http://underlap.blogspot.com/2006/11/experimental-fix-for-sunbug-4670071.html
>
For the record, here is another occurence of the problem on ServiceMix 4.3.
[ 129] [Active ] [ ] [ ] [ 60] OPS4J Pax Web -
Runtime (0.7.4)
[ 133] [Starting ] [ ] [ ] [ 60] OPS4J Pax Web -
Extender - Whiteboard (0.7.4)
Both bundles are trying to load class "org.osgi.service.http.HttpService".
Found one Java-level deadlock:
=============================
"Thread-12":
waiting to lock monitor 0x080eea70 (object 0x95506608, a
org.apache.felix.framework.ModuleImpl$ModuleClassLoaderJava5),
which is held by "FelixStartLevel"
"FelixStartLevel":
waiting to lock monitor 0x081b9768 (object 0x9552b2d8, a
org.apache.felix.framework.ModuleImpl$ModuleClassLoaderJava5),
which is held by "Thread-12"
Java stack information for the threads listed above:
===================================================
"Thread-12":
at
org.apache.felix.framework.ModuleImpl$ModuleClassLoader.findClass(ModuleImpl.java:1830)
- waiting to lock <0x95506608> (a
org.apache.felix.framework.ModuleImpl$ModuleClassLoaderJava5)
at
org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:727)
at org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:71)
at
org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1768)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at
org.apache.felix.framework.ModuleImpl.getClassByDelegation(ModuleImpl.java:645)
at org.apache.felix.framework.resolver.WireImpl.getClass(WireImpl.java:99)
at
org.apache.felix.framework.ModuleImpl.searchImports(ModuleImpl.java:1390)
at
org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:722)
at org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:71)
at
org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1768)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at
org.ops4j.pax.web.service.internal.Activator.createHttpServiceFactory(Activator.java:98)
at
org.ops4j.pax.web.service.internal.Activator.access$200(Activator.java:47)
at org.ops4j.pax.web.service.internal.Activator$1.run(Activator.java:76)
at java.lang.Thread.run(Thread.java:662)
"FelixStartLevel":
at
org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1759)
- waiting to lock <0x9552b2d8> (a
org.apache.felix.framework.ModuleImpl$ModuleClassLoaderJava5)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at
org.apache.felix.framework.ModuleImpl.getClassByDelegation(ModuleImpl.java:645)
at org.apache.felix.framework.resolver.WireImpl.getClass(WireImpl.java:99)
at
org.apache.felix.framework.ModuleImpl.searchImports(ModuleImpl.java:1390)
at
org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:722)
at org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:71)
at
org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1768)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at
org.apache.felix.framework.ModuleImpl$ModuleClassLoader.findClass(ModuleImpl.java:1907)
- locked <0x95506608> (a
org.apache.felix.framework.ModuleImpl$ModuleClassLoaderJava5)
at
org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:727)
at org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:71)
at
org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1768)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at
org.apache.felix.framework.ModuleImpl.getClassByDelegation(ModuleImpl.java:645)
at org.apache.felix.framework.resolver.WireImpl.getClass(WireImpl.java:99)
at
org.apache.felix.framework.ModuleImpl.searchImports(ModuleImpl.java:1390)
at
org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:722)
at org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:71)
at
org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1768)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
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:629)
at org.apache.felix.framework.Felix.activateBundle(Felix.java:1842)
at org.apache.felix.framework.Felix.startBundle(Felix.java:1759)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1163)
at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:264)
at java.lang.Thread.run(Thread.java:662)
Found 1 deadlock.
The problem sometimes happens on very slow machines and with full DEBUG log
enabled, so I cannot really test that the JVM flags
"XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass" work reliably as a
workaround.
metatech
--
View this message in context: http://old.nabble.com/Deadlock-in-ModuleClassLoader-tp31266713p33127027.html
Sent from the Apache Felix - Users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org
Re: Deadlock in ModuleClassLoader
Posted by "Richard S. Hall" <he...@ungoverned.org>.
This appears to be an older version of the Felix framework, right? Makes
it difficult to know if the issue still effects the latest release since
there were definitely changes in this area. If you could verify that, it
would be good. If it is related to JVM internal class loader locking,
then there still isn't much we can do.
-> richard
On 1/12/12 05:57 , metatech wrote:
>
> Richard S. Hall wrote:
>> http://underlap.blogspot.com/2006/11/experimental-fix-for-sunbug-4670071.html
>>
> For the record, here is another occurence of the problem on ServiceMix 4.3.
>
> [ 129] [Active ] [ ] [ ] [ 60] OPS4J Pax Web -
> Runtime (0.7.4)
> [ 133] [Starting ] [ ] [ ] [ 60] OPS4J Pax Web -
> Extender - Whiteboard (0.7.4)
>
> Both bundles are trying to load class "org.osgi.service.http.HttpService".
>
> Found one Java-level deadlock:
> =============================
> "Thread-12":
> waiting to lock monitor 0x080eea70 (object 0x95506608, a
> org.apache.felix.framework.ModuleImpl$ModuleClassLoaderJava5),
> which is held by "FelixStartLevel"
> "FelixStartLevel":
> waiting to lock monitor 0x081b9768 (object 0x9552b2d8, a
> org.apache.felix.framework.ModuleImpl$ModuleClassLoaderJava5),
> which is held by "Thread-12"
>
> Java stack information for the threads listed above:
> ===================================================
> "Thread-12":
> at
> org.apache.felix.framework.ModuleImpl$ModuleClassLoader.findClass(ModuleImpl.java:1830)
> - waiting to lock<0x95506608> (a
> org.apache.felix.framework.ModuleImpl$ModuleClassLoaderJava5)
> at
> org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:727)
> at org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:71)
> at
> org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1768)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> at
> org.apache.felix.framework.ModuleImpl.getClassByDelegation(ModuleImpl.java:645)
> at org.apache.felix.framework.resolver.WireImpl.getClass(WireImpl.java:99)
> at
> org.apache.felix.framework.ModuleImpl.searchImports(ModuleImpl.java:1390)
> at
> org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:722)
> at org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:71)
> at
> org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1768)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> at
> org.ops4j.pax.web.service.internal.Activator.createHttpServiceFactory(Activator.java:98)
> at
> org.ops4j.pax.web.service.internal.Activator.access$200(Activator.java:47)
> at org.ops4j.pax.web.service.internal.Activator$1.run(Activator.java:76)
> at java.lang.Thread.run(Thread.java:662)
> "FelixStartLevel":
> at
> org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1759)
> - waiting to lock<0x9552b2d8> (a
> org.apache.felix.framework.ModuleImpl$ModuleClassLoaderJava5)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> at
> org.apache.felix.framework.ModuleImpl.getClassByDelegation(ModuleImpl.java:645)
> at org.apache.felix.framework.resolver.WireImpl.getClass(WireImpl.java:99)
> at
> org.apache.felix.framework.ModuleImpl.searchImports(ModuleImpl.java:1390)
> at
> org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:722)
> at org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:71)
> at
> org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1768)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
> at
> org.apache.felix.framework.ModuleImpl$ModuleClassLoader.findClass(ModuleImpl.java:1907)
> - locked<0x95506608> (a
> org.apache.felix.framework.ModuleImpl$ModuleClassLoaderJava5)
> at
> org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:727)
> at org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:71)
> at
> org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1768)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> at
> org.apache.felix.framework.ModuleImpl.getClassByDelegation(ModuleImpl.java:645)
> at org.apache.felix.framework.resolver.WireImpl.getClass(WireImpl.java:99)
> at
> org.apache.felix.framework.ModuleImpl.searchImports(ModuleImpl.java:1390)
> at
> org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:722)
> at org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:71)
> at
> org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1768)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> 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:629)
> at org.apache.felix.framework.Felix.activateBundle(Felix.java:1842)
> at org.apache.felix.framework.Felix.startBundle(Felix.java:1759)
> at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1163)
> at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:264)
> at java.lang.Thread.run(Thread.java:662)
>
> Found 1 deadlock.
>
> The problem sometimes happens on very slow machines and with full DEBUG log
> enabled, so I cannot really test that the JVM flags
> "XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass" work reliably as a
> workaround.
>
> metatech
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org
Re: Deadlock in ModuleClassLoader
Posted by metatech <me...@gmail.com>.
Hi,
On second inspection, the problem seems to be slightly different.
Here are more details about the locked being held :
Lock 0x95506608 : org.ops4j.pax.web.service.WebContainer
Lock 0x9552b2d8 : org.osgi.service.http.HttpService
[ 127] [Active ] [ ] [ ] [ 60] OPS4J Pax Web - API
(0.7.4)
[ 129] [Active ] [ ] [ ] [ 60] OPS4J Pax Web -
Runtime (0.7.4)
[ 133] [Starting ] [ ] [ ] [ 60] OPS4J Pax Web -
Extender - Whiteboard (0.7.4)
metatech wrote:
>
> For the record, here is another occurence of the problem on ServiceMix
> 4.3.
>
--
View this message in context: http://old.nabble.com/Deadlock-in-ModuleClassLoader-tp31266713p33127356.html
Sent from the Apache Felix - Users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org