RFR: 8342303: Segfault in update_inherited_vtable: AppCDS, old bytecode, and redefineClasses [v8]
Calvin Cheung
ccheung at openjdk.org
Thu Nov 7 18:31:01 UTC 2024
On Thu, 7 Nov 2024 05:26:07 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>
>
> 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
Thanks for the reviews!
-------------
PR Comment: https://git.openjdk.org/jdk/pull/21667#issuecomment-2462942202
More information about the hotspot-runtime-dev
mailing list