RFR: 8342303: Segfault in update_inherited_vtable: AppCDS, old bytecode, and redefineClasses [v8]

Calvin Cheung ccheung at openjdk.org
Thu Nov 7 05:26:07 UTC 2024


> A simple fix to avoid referencing invalid vtable and itable entires in `InstanceKlass::restore_unshareable_info` if a class is not linked during CDS dump time.
> 
> Passed tiers 1 - 4 testing.
> 
> ---------
> ### Progress
> - [ ] Change must be properly reviewed (1 review required, with at least 1 [Reviewer](https://openjdk.org/bylaws#reviewer))
> - [x] Change must not contain extraneous whitespace
> - [x] Commit message must refer to an issue
> 
> 
> 
> ### Reviewing
> <details><summary>Using <code>git</code></summary>
> 
> Checkout this PR locally: \
> `$ git fetch https://git.openjdk.org/jdk.git pull/21667/head:pull/21667` \
> `$ git checkout pull/21667`
> 
> Update a local copy of the PR: \
> `$ git checkout pull/21667` \
> `$ git pull https://git.openjdk.org/jdk.git pull/21667/head`
> 
> </details>
> <details><summary>Using Skara CLI tools</summary>
> 
> Checkout this PR locally: \
> `$ git pr checkout 21667`
> 
> View PR using the GUI difftool: \
> `$ git pr show -t 21667`
> 
> </details>
> <details><summary>Using diff file</summary>
> 
> Download this PR as a diff file: \
> <a href="https://git.openjdk.org/jdk/pull/21667.diff">https://git.openjdk.org/jdk/pull/21667.diff</a>
> 
> </details>

Calvin Cheung 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 10 additional commits since the last revision:

 - fix some tests failures due to jdk/test/lib/compiler/InMemoryJavaCompiler class not found
 - Merge branch 'master' into 8342303-old-class-redefineClasses
 - remove extra import and "@build" entries
 - @coleenp comment - use RedefineClassHelper
 - convert remaining getSystemClassLoader().loadClass() to Class.forName()
 - @dholmes-ora comments - use Class.forName in all cases
 - avoid using getContextClassLoader()
 - add more tests and simplify OldClassAndRedefineClass.java
 - new fix
 - 8342303: Segfault in update_inherited_vtable: AppCDS, old bytecode, and redefineClasses

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/21667/files
  - new: https://git.openjdk.org/jdk/pull/21667/files/d1801774..75471e25

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

  Stats: 260367 lines in 2849 files changed: 160114 ins; 73687 del; 26566 mod
  Patch: https://git.openjdk.org/jdk/pull/21667.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/21667/head:pull/21667

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


More information about the hotspot-runtime-dev mailing list