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