hg: hsx/hotspot-gc/hotspot: 8009940: G1: assert(_finger == _heap_end) failed, concurrentMark.cpp:809

john.cuthbertson at oracle.com john.cuthbertson at oracle.com
Tue Mar 19 03:31:50 PDT 2013

Changeset: e864cc14ca75
Author:    johnc
Date:      2013-03-19 00:57 -0700
URL:       http://hg.openjdk.java.net/hsx/hotspot-gc/hotspot/rev/e864cc14ca75

8009940: G1: assert(_finger == _heap_end) failed, concurrentMark.cpp:809
Summary: Skip reference processing if the global marking stack overflows during remark. Refactor and rename set_phase(); move code that sets the concurrency level into its own routine. Do not call set_phase() from within parallel reference processing; use the concurrency level routine instead. The marking state should only set reset by CMTask[0] during the concurrent phase of the marking cycle; if an overflow occurs at any stage during the remark, the marking state will be reset after reference processing.
Reviewed-by: brutisso, jmasa

! src/share/vm/gc_implementation/g1/concurrentMark.cpp
! src/share/vm/gc_implementation/g1/concurrentMark.hpp

More information about the hotspot-gc-dev mailing list