# HG changeset patch # User tonyp # Date 1254922938 14400 # Node ID 4c3458a31e17796747d5dba35c701a8217e44a06 # Parent 1f19207eefc2df50ee216314fc2895a815c95009 6888316: G1: has_aborted() || _cm->region_stack_empty() fails Summary: Remove incorrect guarantee. Reviewed-by: apetrusenko, iveresov diff -r 1f19207eefc2 -r 4c3458a31e17 src/share/vm/gc_implementation/g1/concurrentMark.cpp --- a/src/share/vm/gc_implementation/g1/concurrentMark.cpp Mon Oct 05 12:05:48 2009 -0400 +++ b/src/share/vm/gc_implementation/g1/concurrentMark.cpp Wed Oct 07 09:42:18 2009 -0400 @@ -3416,13 +3416,6 @@ _region_finger = NULL; } - // We only push regions on the region stack during evacuation - // pauses. So if we come out the above iteration because we region - // stack is empty, it will remain empty until the next yield - // point. So, the guarantee below is safe. - guarantee( has_aborted() || _cm->region_stack_empty(), - "only way to exit the loop" ); - if (_cm->verbose_low()) gclog_or_tty->print_cr("[%d] drained region stack, size = %d", _task_id, _cm->region_stack_size());