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::run_young_rs_sampling() () > 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 --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org