8036673: G1: Abort weak reference processing if mark stack overflows
Reviewed-by: brutisso, tschatzl
--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp Mon Mar 17 15:18:38 2014 +0100
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp Mon Mar 17 15:18:45 2014 +0100
@@ -2529,6 +2529,11 @@
assert(!rp->discovery_enabled(), "Post condition");
}
+ if (has_overflown()) {
+ // We can not trust g1_is_alive if the marking stack overflowed
+ return;
+ }
+
g1h->unlink_string_and_symbol_table(&g1_is_alive,
/* process_strings */ false, // currently strings are always roots
/* process_symbols */ true);