JVM hangs beyond recovery

Stas Oskin stas.oskin at gmail.com
Wed Jun 9 01:36:56 PDT 2010


Thanks for the explanation.

The underlying problem looks familiar to me though I can't find the culprit
> thread in the gdb thread dump. This problem occurs when a library uses a
> native dynamic loader hook (I'll call it dlsym) to make a call into the JVM.
> This is done while holding an internal dlsym mutex lock and the end result
> is a deadlock if any of the other threads in the Java application need to
> perform a dlsym related operation (which you can see in the thread dump that
> they do and are all blocked on that internal mutex).
I noticed this happening mostly in DB related operations. I'm using
mysql-connector-java-5.1.6 which according to MySQL documentation, is "a
native Java driver", and indeed doesn't seem to contain any native code
library, but I wonder if this related to what you experienced in past.

The culprit is whomever calls into the VM from inside the dlsym code. As I
> said I can't see that culprit in the stack traces, but typically it happens
> when someone installs an "on-load" hook or something of that nature.

Is there any good way to detect the exact library causing this deadlock?
This happens quite rarely and spontaneously, so just disabling native
libraries one by one and trying to find the cause didn't work for me.

Thanks again for all the help.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/attachments/20100609/39def2bd/attachment-0001.html 

More information about the hotspot-runtime-dev mailing list