RFR (XXS): 7158682: G1: Handle leak when running nsk.sysdict tests

Bengt Rutisson bengt.rutisson at oracle.com
Fri Apr 27 13:19:16 UTC 2012


Hi John,

I think this looks good, but I have a question for my understanding.

You have placed the HandleMark outside loops where we eventually will 
store a handle to the pending list lock. I guess this will free up all 
allocated handles once we exit the loop.

Are there any issues with putting the HandleMark inside the loop and 
free up handles one at a time? Is there still a risk of native OOME with 
your change if we get stuck in one of the allocation loops?

Bengt

On 2012-04-25 20:08, John Cuthbertson wrote:
> Hi Everyone,
>
> Can I have a couple of volunteers to review this fairly small change? 
> The webrev can be found at: 
> http://cr.openjdk.java.net/~johnc/7158682/webrev/
>
> Summary:
> This issue was mainly caused by the excessively high number of GC 
> retry attempts seen (and fixed) in 7147724. Each time we retry the GC 
> we allocate a handle to hold the pending list lock and there is no 
> HandleMark around the code that retries the GC. As a result of the 
> combination of these two factors, we ran out of C heap and couldn't 
> allocate a new HandleArea. The fixes for 7147724 address the excessive 
> retry attempts - but we can still retry the GC if the prologue 
> operations are not successful and we still don't free the handles 
> allocated in the prologues of the attempted GC operations. The changes 
> for this CR address this last issue.
>
> Many thanks to Mikael Gerdin for his initial diagnosis of the issue.
>
> Testing:
> The failing test cases (with the changes for 7147724 removed and 
> instrumentation in the HandleMark class); GC test suite with 
> +ExplicitGCInvokesConcurrent; jprt
>
> Thanks,
>
> JohnC




More information about the hotspot-gc-dev mailing list