review request 7140866: assert(covered) failed: Card for end of new region not committed

Bengt Rutisson bengt.rutisson at
Tue Feb 14 20:55:14 PST 2012

Hi again Dean,

Please disregard my last email. The changed behavior I was thinking 
about was actually for "-XX:-UseSharedSpaces -XX:-DumpSharedSpaces", but 
in that case I think we bail out already at line 207 and never get in to 
the code you changed.

  207   if (spec()->enable_shared_spaces()) {

Sorry for the confusion.

Change looks good! Ship it!

(Copyright year should be 2012.)


On 2012-02-14 23:24, Bengt Rutisson wrote:
> Hi Dean,
> Thanks for fixing this. Overall I think your change look good, but I 
> have one question:
> The check on line 282 uses spec()->enable_shared_spaces(), which I 
> think is basically the same as "UseSharedSpaces || DumpSharedSpaces". 
> So, this means that if we are running with "-XX:-UseSharedSpaces 
> -XX:+DumpSharedSpaces" we would before your change do a call to
> _rs->resize_covered_region(MemRegion(readonly_bottom, readwrite_end))
> but after your change we won't do that call, right? Is this an 
> intended change of behavior?
> I admit that I know too little about this to even know if the above 
> command line makes sense, but it seems to be allowed.
> Thanks,
> Bengt
> On 2012-02-13 23:09, Dean Long wrote:
>> The problem happens when trying to use a shared archive.  If for some 
>> reason mapping the shared file fails,
>> we call
>>     _rs->resize_covered_region(MemRegion(shared_bottom, shared_bottom));
>> to undo the earlier call to
>>     _rs->resize_covered_region(MemRegion(readonly_bottom, 
>> readwrite_end));
>> Unfortunately the resize code is not prepared to deal with a 
>> zero-sized region so an assert fails.
>> Rather than touch the resize code, this fix changes the caller to 
>> only call resize_covered_region()
>> once after the shared file is mapped.
>> Tested fix on a particular linux arm platform where the mmap fails 
>> 100% of the time due to a different issue.
>> Ran -Xshare:dump first then a few GC tests.
>> dl

More information about the hotspot-gc-dev mailing list