JDK-8263455: NMT: assert on registering a region which completely engulfs an existing region #2942
I am testing a prototype for JDK-8256844 which makes NMT late initializable. One of the many benefits that will bring is that we can now run gtests with NMT enabled.
Which exercises NMT in new ways: we promptly crash in the metaspace tests, which do a lot of arbitrary, random, but entirely valid range commits as part of the VirtualSpaceNode stress tests:
As we can see, the new committed to-be-registered region [0x7fffb2460000...7FFFB26B0000) completely engulfs an existing region [0x7fffb24c0000...0x7FFFB25E0000).
This triggers an assert in VirtualMemoryRegion:
but VirtualMemoryRegion::overlap_region does not handle the engulfing case correctly.
Fix: fixed the overlap function to handle the engulfing case.
Tests: GAs; manually executed runtime/NMT; manually tested (with my prototype VM) that the gtest works after applying this fix.
To checkout this PR locally:
To update a local copy of the PR:
The text was updated successfully, but these errors were encountered:
@tstuefe This change now passes all automated pre-integration checks.
After integration, the commit message for the final commit will be:
At the time when this comment was updated there had been 98 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.
@tstuefe Since your change was applied there have been 105 commits pushed to the
Your commit was automatically rebased without conflicts.
Pushed as commit 444a80b.