The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
PUBLIC COMMENTS
Missing protected page below heap with compressed oops
which use narrow_oop_base and implicit null check.
It is caused by ReservedSpace code misses checks that OS
reserved heap at requested address.
Before 6951686 fix Linux will reserve heap memory at address
which is not requested for compressed oops VM (usually above
32Gb virtual address: 0x00002aaaae200000). But VM thinks
it did reserve at requested address and it does not need
protected page below heap, so the code in protect_noaccess_prefix()
is not executed.
Solution:
Add missing checks. I also added few asserts and prints
to make sure memory reservation done correctly for
compressed oops.
EVALUATION
Missing protected page below heap with compressed oops which use narrow_oop_base.
It is caused by 6951686 bug which is fixed in HS19 only. Because of that bug (requested address is not used in special memory reservation) the heap is reserved above 32Gb virtual address ( 0x00002aaaae200000) but the VM code thinks it does reserved at requested address and it does not need nonaccess prefix (protected page below heap), so code in ReservedSpace::protect_noaccess_prefix() is not executed. But after heap initialization in Universe::initialize_heap() the narrow_oop_base is set based on heap address.
So the ReservedSpace code is missing the check that heap is not reserved at specified address.