http://bugs.sun.com/bugdatabase/view_bug.do?bug_idq40866
http://cr.openjdk.java.net/~dlong/7140866/webrev.00/
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