JVM hangs beyond recovery

David Holmes David.Holmes at oracle.com
Mon Jun 14 00:55:17 PDT 2010

Stas Oskin said the following on 06/13/10 17:27:
>     We start in Java, try to load a native library and enter the dynamic
>     linker. That in turn causes native code in libxuggle-xuggler-io.3 to
>     run which tries to invoke Java code:
>     com::xuggle::ferry::Logger::getStaticLogger
>     If this is done while holding a lock in the dynamic linker then we
>     will deadlock if any other thread tries to acquire that lock and a
>     safepoint is trigerred - which in the above case is done by the
>     thread holding that lock.
> I posted this issue to Xuggler list, and Xuggler developer/founder Art 
> quickly posted a possible fix. He is not 100% sure it solves it, and my 
> own Java/native skills are not so great to validate it (other then 
> actually using is and finding out if it really helped, which I'm doing), 
> so I will very appreciate if you could give a quick look to fix and give 
> your verdict.
> Here is the diff:
> http://code.google.com/p/xuggle/source/detail?r=1041

I can't say if this fixes it or not as I don't know how all the code 
hooks together. But I'm somewhat surprised that this is related to 
JNI_ONload as from what I saw the problem is caused by a hook executed 
by the dlopen while the internal dl lock is held - I would not think 
that JNI_Onload could be executed while inside dlopen.

David Holmes

More information about the hotspot-runtime-dev mailing list