Caused/introduced by JDK-8262068 .
Fixed later as a byproduct ofJDK-8210708 in JDK 20.
Symptom: We crash with -UseClassUnloading when dumping dead objects in non-collected (sinceJDK-8210708) regions. Those dead objects contain references to other dead objects that did live in collected regions (either as members or as array elems). When trying to dump those object references, we crash when extracting the Klass* from these dead references. Typically in DumperSupport::mask_dormant_archived_object(oopDesc*).
This seems to be exactly the bug fixed byJDK-8265259, but JDK-8265259 limits the fix to +ClassUnloading. But one can have cycles of dead objects without their classes being unloaded. I think that happens here.
Fixed later as a byproduct of
Symptom: We crash with -UseClassUnloading when dumping dead objects in non-collected (since
This seems to be exactly the bug fixed by
- relates to
-
JDK-8265259 G1: Fix HeapRegion::block_is_obj for unloading class in full gc
-
- Resolved
-
-
JDK-8210708 Use single mark bitmap in G1
-
- Resolved
-
-
JDK-8262068 Improve G1 Full GC by skipping compaction for regions with high survival ratio
-
- Resolved
-