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

Coleen Phillimore coleenp at openjdk.org
Mon Mar 27 21:38:37 UTC 2023


On Mon, 27 Mar 2023 05:09:19 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> `DynamicArchive::prepare_for_dump_at_exit()` could be called concurrently on the two VM exit paths, leading either to assertion failures in debug builds, or a crash in product build when the actual dump occurred. The basic fix was to move the `DynamicArchive::prepare_for_dump_at_exit()` functionality into `before_exit` (java.cpp) where it can only be executed by one thread - thus avoiding the race (Phase 1).
>> 
>> Once that is done we can move the actual dump operation to be co-located with the `prepare_for_dump_at_exit()` (Phase 2) and then consolidate that code by refactoring it into a new `DynamicArchive::dump_at_exit()` method (Phase 3), and then removing the leftover methods that are no longer needed (Phase 4).
>> 
>> Each phase can be seen in distinct commits if you prefer to see the steps involved.
>> 
>> Testing:
>>  - new ExitRace test
>>  - all dynamicArchive tests
>>  - tiers 1-4
>> 
>> Thanks.
>
> David Holmes has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Address Coleen's comments

Marked as reviewed by coleenp (Reviewer).

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

PR Review: https://git.openjdk.org/jdk/pull/13134#pullrequestreview-1359904546


More information about the hotspot-runtime-dev mailing list