Jon Masamitsu jon.masamitsu at
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 mailing list