diff -r 0f38ab93a53c -r f48d3bec75ba src/hotspot/share/gc/g1/g1CollectionSet.cpp --- a/src/hotspot/share/gc/g1/g1CollectionSet.cpp Thu Jun 13 11:12:23 2019 +0200 +++ b/src/hotspot/share/gc/g1/g1CollectionSet.cpp Thu Jun 13 11:54:55 2019 +0200 @@ -519,6 +519,9 @@ _num_optional_regions -= num_selected_regions; stop_incremental_building(); + + _g1h->verify_region_attr_remset_update(); + return num_selected_regions > 0; } @@ -526,10 +529,15 @@ for (uint i = 0; i < _num_optional_regions; i++) { HeapRegion* r = candidates()->at(candidates()->cur_idx() + i); pss->record_unused_optional_region(r); + // Clear collection set marker and make sure that the remembered set information + // is correct as we still need it later. _g1h->clear_region_attr(r); + _g1h->register_region_with_region_attr(r); r->clear_index_in_opt_cset(); } free_optional_regions(); + + _g1h->verify_region_attr_remset_update(); } #ifdef ASSERT