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

Matias Saavedra Silva matsaave at openjdk.org
Wed Jan 8 19:19:07 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 12 additional commits since the last revision:

 - 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
 - Added assert and made unmap_region private
 - Stefan comment
 - Merge branch 'master' into cds_mapping_8340631
 - Fixed assert
 - ... and 2 more: https://git.openjdk.org/jdk/compare/1e647a17...bf1a4a21

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/22743/files
  - new: https://git.openjdk.org/jdk/pull/22743/files/3cde55ef..bf1a4a21

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

  Stats: 17432 lines in 506 files changed: 11666 ins; 3683 del; 2083 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