CRR: 7033292: G1: nightly failure: Non-dirty cards in region that should be dirty (XXS)
Tony Printezis
tony.printezis at oracle.com
Mon Apr 4 15:23:11 UTC 2011
Tiny patch (only a single digit changed and a short comment added):
http://cr.openjdk.java.net/~tonyp/7033292/webrev.0/
The issue is that in the G1 card cache the epoch the cache entries are
initialized to (e.g., 0) is the same as what the current epoch is also
initialized to. This makes the initialized, but not yet populated, cache
entries to look valid until the first GC. When one of those entries is
replaced the evicted card is incorrectly materialized to be the one that
corresponds to the bottom of the heap. The fix is to initialize the
current epoch to 1 to automatically invalidate all the cache entries
that have not been populate yet.
Many thanks to John Cuthbertson for his help on this.
Tony
More information about the hotspot-gc-dev
mailing list