Request for review - 7199349

Jon Masamitsu jon.masamitsu at
Fri Sep 28 16:59:28 PDT 2012

7199349: NPG: PS: Crash seen in jprt

The error is caused by the calculation in scavenge_contents_parallel()
of start_card and end_card where end_card was incorrectly set beyond
start_card.  The incorrect code had been introduced to fix a problem
exposed when the card table for perm gen was removed.  That first
problem was an assertion error resulting when byte_for() was passed
an addressed not covered by the card table.   I reverted to
the previous code and do not invoke this code when the old gen
is empty.  scavenge_contents_parallel() processes the card table
to find old-to-young pointers and so is not needed in that case.

Added a delay in two places in the young collection to widen the
opportunity for these circumstances to occur.

Thanks to StefanK for his analysis of the problem.

More information about the hotspot-dev mailing list