RFR: 8360164: AOT cache creation crashes in ~ThreadTotalCPUTimeClosure()

Ioi Lam iklam at openjdk.org
Fri Jun 27 05:59:38 UTC 2025


On Fri, 27 Jun 2025 04:41:50 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> `java -XX:AOTMode=create` calls `vm_exit(0)` to terminate the JVM (see [this e-mail thread](https://mail.openjdk.org/pipermail/hotspot-runtime-dev/2024-August/072122.html) for the reason for doing so). However, at this point, the JVM has executed quite a lot of Java code and there are many threads in the JVM that would require a proper shutdown. See [comments by @kimbarrett](https://bugs.openjdk.org/browse/JDK-8360164?focusedId=14792754&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14792754) for a detailed analysis.
>> 
>> This fix calls `JVM_Halt(0)` instead of `vm_exit(0)` so that the proper shutdown code is executed.
>
> src/hotspot/share/runtime/java.cpp line 435:
> 
>> 433:   // Dynamic CDS dumping must happen whilst we can still reliably
>> 434:   // run Java code.
>> 435:   if (CDSConfig::is_dumping_dynamic_archive()) {
> 
> I assume requesting a dynamic dump is mutually exclusive to the use of `-XX:AOTMode=create`?

Yes

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26008#discussion_r2170861163


More information about the hotspot-runtime-dev mailing list