RFR: 8342303: Segfault in update_inherited_vtable: AppCDS, old bytecode, and redefineClasses
David Holmes
dholmes at openjdk.org
Tue Oct 29 10:05:06 UTC 2024
On Wed, 23 Oct 2024 17:15:53 GMT, Calvin Cheung <ccheung at openjdk.org> wrote:
> 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>
Functional fix looks good. Unclear about the the test details ...
Thanks
test/hotspot/jtreg/runtime/cds/appcds/jvmti/redefineClasses/OldClassAndRedefineClassApp.java line 34:
> 32: System.out.println("Main: loading OldSuper");
> 33: // Load an old class (version 49), but not linking it.
> 34: Thread.currentThread().getContextClassLoader().loadClass("OldSuper");
Why the context classloader? Has it been set in this test?
-------------
PR Review: https://git.openjdk.org/jdk/pull/21667#pullrequestreview-2401349691
PR Review Comment: https://git.openjdk.org/jdk/pull/21667#discussion_r1820479420
More information about the hotspot-runtime-dev
mailing list