RFR: 8038925: Java with G1 crashes in dump_instance_fields using jmap or jcmd without fullgc
bengt.rutisson at oracle.com
Wed May 21 09:55:32 UTC 2014
The fix looks good.
One comment about the test. It does not verify that no full GC happens.
The way the test is set up I guess that should not happen and I am not
sure it is worth the effort to add a check for it. Just wanted to
mention it if you want to make test more resilient to future changes in
the JVM that for some reason can trigger a full GC for this test.
I'm fine with leaving the test as it is.
On 5/20/14 4:26 PM, Andreas Eriksson wrote:
> Could I have a review for this G1 jdk7 only fix please?
> (There is a related problem in jdk8 and jdk9, where an assert can fail
> because of this problem. I have logged another bug for this.)
> Due to the marking cleanup reclaiming empty regions, and having stale
> references a crash can occur when doing a heap dump.
> The code tries to do an is_klass check on the object, which crashes
> the VM.
> The fix is to add an is_perm check before doing the check, since
> is_perm will do a bounds check on the oop and if it's in the perm gen
> we know it's safe to look at it since G1 only ever does full
> compactions of the perm gen.
> For more information, and a more in-depth analysis, please see the
> jira bug.
More information about the hotspot-gc-dev