RFR: 8057722 G1: Code root hashtable updated incorrectly when evacuation failed
Bengt Rutisson
bengt.rutisson at oracle.com
Tue Sep 9 11:33:08 UTC 2014
Hi Mikael,
On 2014-09-08 18:00, Mikael Gerdin wrote:
> 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/
Looks good. Thanks for finding and fixing this!
Bengt
>
> 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