mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 06:45:07 +02:00
7033292: G1: nightly failure: Non-dirty cards in region that should be dirty
The epochs on the card cache array are initialized to 0 and our initial epoch also starts at 0. So, until the first GC, it might be possible to successfully "claim" a card which was in fact never initialized. Reviewed-by: johnc, iveresov, ysr
This commit is contained in:
parent
3e9fe24ddd
commit
cec5c20656
1 changed files with 5 additions and 1 deletions
|
@ -51,7 +51,11 @@ ConcurrentG1Refine::ConcurrentG1Refine() :
|
|||
_cache_size_index(0), _expand_card_counts(false),
|
||||
_hot_cache(NULL),
|
||||
_def_use_cache(false), _use_cache(false),
|
||||
_n_periods(0),
|
||||
// We initialize the epochs of the array to 0. By initializing
|
||||
// _n_periods to 1 and not 0 we automatically invalidate all the
|
||||
// entries on the array. Otherwise we might accidentally think that
|
||||
// we claimed a card that was in fact never set (see CR7033292).
|
||||
_n_periods(1),
|
||||
_threads(NULL), _n_threads(0)
|
||||
{
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue