RFR: 8304147: JVM crash during shutdown when dumping dynamic archive [v2]

David Holmes dholmes at openjdk.org
Mon Mar 27 04:56:35 UTC 2023


On Fri, 24 Mar 2023 18:38:43 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> David Holmes 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:
>> 
>>  - Restore comment to as it was pre JDK-8266770
>>  - Update test to removing debugging code
>>  - Merge branch 'master' into 8304147-dynamic-dump
>>  - Update test comments
>>  - Phase 4: remove unused methods and adjust dump_for_jcmd
>>  - Missed removing the check at the dump_at_exit callsite.
>>  - Phase 3: Consolidate code into a new dump_at_exit that combines check, prepare and dump in one.
>>    Minor tweak to test.
>>  - Merge branch '8304147-test-only' into 8304147-dynamic-dump
>>  - Initial test
>>  - Phase 2: Move the dump to immediately after the prepare_for_dump
>>  - ... and 2 more: https://git.openjdk.org/jdk/compare/955564c9...518f5409
>
> src/hotspot/share/cds/dynamicArchive.cpp line 385:
> 
>> 383:   HandleMark hm(current);
>> 384: 
>> 385:   if (!(DynamicDumpSharedSpaces && archive_name != nullptr)) {
> 
> Can you make this !DynamicDumpSharedSpaces || archive_name == nullptr so it's easier to read.  I'm trying to figure out how archive_name relates to ArchiveClassesAtExit and why you made the switch.

I changed the condition to use a temp variable that should make things clearer.

`ArchiveClassesAtExit` was always passed to `dump` as the `archive_name`, so no "switch" there.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/13134#discussion_r1148781382


More information about the hotspot-runtime-dev mailing list