Awesome work Uwe! Nice job getting this some attention.

- mark

On Mar 6, 2013, at 10:41 AM, Uwe Schindler <u...@thetaphi.de> wrote:

> It seems that there is already an explanation from the Oracle engineer:
> 
>> -----Original Message-----
>> From: John Cuthbertson [mailto:john.cuthbert...@oracle.com]
>> Sent: Wednesday, March 06, 2013 7:04 PM
>> To: Thomas Schatzl
>> Cc: Uwe Schindler; hotspot-gc-...@openjdk.java.net; 'David Holmes';
>> 'Dawid Weiss'; hotspot-...@openjdk.java.net
>> Subject: Re: JVM hanging when using G1GC on JDK8 b78 or b79 (Linux 32 bit)
>> 
>> Hi Everyone,
>> 
>> All:
>> I've looked at the bug report (haven't tried to reproduce it yet) and Bengt's
>> analysis is correct. The concurrent mark thread is entering the
>> synchronization protocol in a marking step call. That code is waiting for 
>> some
>> non-existent workers to terminate before proceeding. Normally we
>> shouldn't be entering that code but I think we overflowed the global marking
>> stack (I updated the CR at ~1am my time with that conjecture). I think I
>> missed a set_phase() call to tell the parallel terminator that we only have 
>> one
>> thread and it's picking up the number of workers that executed the remark
>> parallel task.
>> 
>> Thomas: you were on the right track with your comment about the marking
>> stack size.
>> 
>> David:
>> Thanks for helping out here. The stack trace you mentioned was for one the
>> refinement threads - a concurrent GC thread. When a concurrent GC thread
>> "joins" the suspendible thread set, it means that it will observe and
>> participate in safepoint operations, i.e. the thread will notice that it 
>> should
>> reach a safepoint and the safepoint synchronizer code will wait for it to 
>> block.
>> When we wish a concurrent GC thread to not observe safepoints, that
>> thread leaves the suspendible thread set. I think the name could be a bit
>> better and Tony, before he left, had a change that used a scoped object to
>> join and leave the STS that hasn't been integrated yet. IIRC Tony wasn't
>> happy with the name he chose for that also.
>> 
>> Uwe:
>> Thanks for bringing this up and my apologies for not replying sooner. I will
>> have a fix fairly soon. If I'm correct about it being caused by overflowing 
>> the
>> marking stack you can work around the issue by increasing the
>> MarkStackSize.you could try increasing it to 2M or 4M entries (which is the
>> current max size).
>> 
>> Cheers,
>> 
>> JohnC
> 
> -----
> Uwe Schindler
> H.-H.-Meier-Allee 63, D-28213 Bremen
> http://www.thetaphi.de
> eMail: u...@thetaphi.de
> 
> 
>> -----Original Message-----
>> From: Uwe Schindler [mailto:u...@thetaphi.de]
>> Sent: Wednesday, March 06, 2013 1:35 PM
>> To: dev@lucene.apache.org
>> Subject: FW: JVM hanging when using G1GC on JDK8 b78 or b79 (Linux 32 bit)
>> 
>> They already understood the G1GC problem with JDK 8 b78/b79 and working
>> on a fix. This was really fast:
>> http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2013-
>> March/006128.html
>> 
>> Uwe
>> 
>> -----
>> Uwe Schindler
>> H.-H.-Meier-Allee 63, D-28213 Bremen
>> http://www.thetaphi.de
>> eMail: u...@thetaphi.de
>> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
> For additional commands, e-mail: dev-h...@lucene.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to