review request 7140866: assert(covered) failed: Card for end of new region not committed
bengt.rutisson at oracle.com
Tue Feb 14 14:24:59 PST 2012
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
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.
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
> 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.
More information about the hotspot-gc-dev