RFR: 8312181: CDS dynamic dump crashes when verifying unlinked class from static archive

Calvin Cheung ccheung at openjdk.org
Fri Jul 28 21:27:09 UTC 2023


During CDS dynamic dump, VM crashes due to `assert(!k->is_shared()) failed` while linking an old class (class file version <= 49) loaded from the static archive. The fix mostly adjusts some assert statements based on static vs dynamic dumping. In `MetaspaceShared::try_link_class`, if linking of a shared class during dynamic dump has failed, the `shared_loading_failed` flag will be set to avoid linking the same class again.

Passed tiers 1 - 4 testing.

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

Commit messages:
 - 8312181: CDS dynamic dump crashes when verifying unlinked class from static archive

Changes: https://git.openjdk.org/jdk/pull/15077/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=15077&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8312181
  Stats: 207 lines in 7 files changed: 190 ins; 3 del; 14 mod
  Patch: https://git.openjdk.org/jdk/pull/15077.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15077/head:pull/15077

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


More information about the hotspot-runtime-dev mailing list