RFR: 8214118: HeapRegions marked as archive even if CDS mapping fails

Jiangli Zhou jiangli.zhou at oracle.com
Wed Nov 21 19:14:45 UTC 2018

Hi Stefan,

The change looks good. Thanks for fixing this issue!



On 11/21/18 6:43 AM, Stefan Johansson wrote:
> Hi,
> Please review this fix to avoid leaving heap metadata in an 
> inconsistent state when CDS archive mapping fails.
> Issue: https://bugs.openjdk.java.net/browse/JDK-8214118
> Webrev: http://cr.openjdk.java.net/~sjohanss/8214118/00/
> Summary
> -------
> Since JDK 12b15 a default CDS archive is shipped with the JDK. If this 
> archive for some reason fails to be mapped into the heap, the cleanup 
> leaves the heap metadata in a inconsistent state. Instead of clearing 
> the range in the map storing which regions are archive, it once again 
> marks the range as archive.
> This information is used by the G1 Full collections and because a 
> regions is marked as archive even though it is not, we skip marking 
> through this region. This causes the heap to be corrupt and we can 
> crash in many different ways.
> Testing
> -------
> Verified that the new code clears the map correctly and re-ran the 
> benchmark previously failing many times. Tier 1-3 of normal functional 
> testing also run through m5 without problems.
> Thanks,
> Stefan

More information about the hotspot-dev mailing list