On Tue, 12 May 2026 16:58:07 GMT, Kevin Walls <[email protected]> wrote:

>> This implements "jcmd on core files" for Linux, and for MiniDumps on Windows 
>> (MacOS is "future work").
>> jcmd "revives" the VM memory and .so/.dll from the core/minidump, and runs 
>> the existing native diagnostic command parser and command implementations.
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Kevin Walls has updated the pull request incrementally with two additional 
> commits since the last revision:
> 
>  - Use accessor to access _mutex
>  - remove revival 'status' field

Changes requested by dholmes (Reviewer).

src/hotspot/os/posix/mutex_posix.hpp line 100:

> 98: 
> 99:   void clear_for_revive() {
> 100:     pthread_mutex_init(mutex(), nullptr);

No this is not valid. It is UB to reinitialize an initialized mutex. You would 
have to  call `pthread_mutex_destroy()`, but it is UB to destroy a locked mutex 
so that don't work either.

You will need to do something at a higher-level that turns locking into a no-op 
when running in the revived VMThread.

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

PR Review: https://git.openjdk.org/jdk/pull/31011#pullrequestreview-4279743450
PR Review Comment: https://git.openjdk.org/jdk/pull/31011#discussion_r3232641781

Reply via email to