JVM hanging when using G1GC on JDK8 b78 or b79 (Linux 32 bit) (original) (raw)

Thomas Schatzl thomas.schatzl at oracle.com
Wed Mar 6 03🔞08 PST 2013


Hi,

On Wed, 2013-03-06 at 20:23 +1000, David Holmes wrote:

On 6/03/2013 5:55 PM, Dawid Weiss wrote: > > Here you go: > http://pastebin.com/raw.php?i=b2PHLm1e

Thanks. I would have to say this seems to be the suspicious part: Thread 22 (Thread 0xf20ffb40 (LWP 22939)): [...] from /var/lib/jenkins/tools/java/32bit/jdk1.8.0-ea-b79/jre/lib/i386/server/libjvm.so #6 0xf6b5ea41 in ConcurrentG1RefineThread::runyoungrssampling() () from The suspendible thread set logic looks 'tricky". Time for the G1 experts to take over. :)

The young gen rs sampling thread is a thread that does some statistical updates while the application is running. So that in the STW pause not so much work needs to be done.

At a safepoint it is always suspended, this is normal.

As Bengt mentioned, the problem seems to be thread 10, which is the VM thread (the one responsible for bringing everything to a safepoint and then distributing work).

According to the stack trace, this thread seems to be waiting for synchronization with the marking threads because of a mark stack overflow during weak reference processing.

However all marking threads are already waiting due to the safepointing operation, and so it waits endlessly.

As Bengt mentioned, this thread shouldn't be waiting, and shouldn't need to because it seems to be the only thread working on weak references anyway (i.e. this phase is single threaded).

(All imo)

Thomas



More information about the hotspot-dev mailing list