--- old/src/hotspot/share/gc/g1/g1CollectedHeap.cpp 2018-10-03 10:32:55.931583668 +0200 +++ new/src/hotspot/share/gc/g1/g1CollectedHeap.cpp 2018-10-03 10:32:55.512570959 +0200 @@ -2669,16 +2669,14 @@ // The remembered set might contain references to already freed // regions. Filter out such entries to avoid failing card table // verification. - if (g1h->is_in_closed_subset(ct->addr_for(card_ptr))) { - if (*card_ptr != G1CardTable::dirty_card_val()) { - *card_ptr = G1CardTable::dirty_card_val(); - _dcq.enqueue(card_ptr); - } + if (!g1h->is_in_closed_subset(ct->addr_for(card_ptr))) { + continue; + } + if (*card_ptr != G1CardTable::dirty_card_val()) { + *card_ptr = G1CardTable::dirty_card_val(); + _dcq.enqueue(card_ptr); } } - assert(hrrs.n_yielded() == r->rem_set()->occupied(), - "Remembered set hash maps out of sync, cur: " SIZE_FORMAT " entries, next: " SIZE_FORMAT " entries", - hrrs.n_yielded(), r->rem_set()->occupied()); // We should only clear the card based remembered set here as we will not // implicitly rebuild anything else during eager reclaim. Note that at the moment // (and probably never) we do not enter this path if there are other kind of