RFR(S) 8153843: G1CardLiveDataHelper incorrectly sets next_live_bytes on dead humongous regions
mikael.gerdin at oracle.com
Fri Apr 8 15:47:57 UTC 2016
Please review this small change to solve an integration blocker in hs-rt
which surfaced with the latest integration from main.
The problem is that humongous regions are kept around for longer
(possibly indefinitely) because the card live data helper
unconditionally sets the actual size of humongous objects instead of the
number of live bytes. Having a non-zero live bytes count prevents the
cleanup pause from freeing the humongous objects.
When the next gc pause then tries to register those objects with eager
reclaim it looks at the class pointer of the object and if the class of
the humongous object was unloaded then we crash.
Testing: Crashing testcase, JPRT job running
More information about the hotspot-gc-dev