jon.masamitsu at oracle.com
Fri Jul 26 21:46:11 UTC 2013
I'm looking at an assertion failure with CMSParallelInitialMarkEnabled
and CMSEdenChunksRecordAlways both enabled. The assertion
failure is in do_young_space_rescan()
5506 assert(mr.is_empty() || space->used_region().contains(mr),
5507 "Should be in space");
and the failure occurs because _eden_chunk_index is > 0 and
eden is empty.
A young GC has just occurred and a System.gc() is in progress where the
System.gc() is executing the the usual phases of CMS in a stop-the-world
fashion. A rarely seen scenario I think. That is, the initial mark is
I was looking at the places where _eden_chunk_index is reinitialized to
0. I don't think you added any in you changes, right?
I was thinking that _eden_chunk_index should be reset to 0 after
a young GC where we know that eden is empty. What do you think?
More information about the hotspot-gc-dev