RFR: 8057722 G1: Code root hashtable updated incorrectly when evacuation failed
Mikael Gerdin
mikael.gerdin at oracle.com
Mon Sep 8 16:00:09 UTC 2014
Hi all,
When processing evacuation failures the code root hashtable is walked to
determine which code roots should still be present after the failed
evacuation.
The condition used to determine if an entry should be removed was accidentally
inverted. This caused some missing nmethod remembered set entries after
evacuation failures.
I also noticed a problem where the _length field was not properly updated
after evacuation failures, I fixed this as well and factored out the code to
remove a hashtable entry to a separate function.
Buglink: https://bugs.openjdk.java.net/browse/JDK-8057722
Webrev: http://cr.openjdk.java.net/~mgerdin/8057722/webrev.0/
Testing done: Failing test (with and without
"-XX:+G1EvacuationFailureALot
-XX:+VerifyAfterGC
-XX:+G1VerifyHeapRegionCodeRoots"
which easily triggers the assert)
/Mikael
More information about the hotspot-gc-dev
mailing list