RFR: 8340631: assert(reserved_rgn->contain_region(base_addr, size)) failed: Reserved CDS region should contain this mapping region [v11]

Matias Saavedra Silva matsaave at openjdk.org
Thu Jan 9 00:27:57 UTC 2025


> What testing with `UseCompressedClassPointers` set to false, this assert is hit due to memory being released twice during the failure path of CDS archive mapping. This patch makes it so the RW and RO regions are only released once at the end in `MetaspaceShared::release_reserved_spaces()`. 
> 
> This patch hides `unmap_region` as the method should not be called on regions that were reserved. Instead, the region is skipped and we verify that it is indeed in the reserved space. Verified` with tier 1-4 tests.

Matias Saavedra Silva has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 16 additional commits since the last revision:

 - Fixed copyright
 - Ioi suggestions
 - Merge branch 'master' into cds_mapping_8340631
 - Replaced memset
 - Fixed assert
 - Merge branch 'master' into cds_mapping_8340631
 - New implementation
 - Stefan and Ioi comments
 - Corrected edge case
 - Removed unneeded assert and caught edge case
 - ... and 6 more: https://git.openjdk.org/jdk/compare/9ad0a915...65db5d02

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/22743/files
  - new: https://git.openjdk.org/jdk/pull/22743/files/516373b7..65db5d02

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=22743&range=10
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=22743&range=09-10

  Stats: 9028 lines in 94 files changed: 50 ins; 8725 del; 253 mod
  Patch: https://git.openjdk.org/jdk/pull/22743.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/22743/head:pull/22743

PR: https://git.openjdk.org/jdk/pull/22743


More information about the hotspot-runtime-dev mailing list