--- 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