On Sun, 25 May 2025 05:08:12 GMT, Chen Liang <li...@openjdk.org> wrote:

>> Updates the thread dump generated by HotSpotDiagnosticMXBean.dumpThreads and 
>> jcmd Thread.dump_to_file to include thread state and lock information. Also 
>> update the HotSpotDiagnosticMXBean.dumpThreads API description to link to a 
>> description of the JSON format dump as that format is intended to be 
>> parseable/read by tools.
>> 
>> This PR is dependent on 
>> [pull/25425](https://github.com/openjdk/jdk/pull/25425). As noted in that 
>> PR, the changes accumulated in the loom repo, and have been split up to make 
>> it easier to review. The change to src/hotspot and TheadShapshot are in 
>> pull/25425.
>> 
>> The changes include some re-implementation of ThreadDumper. This is because 
>> it used PrintStream and didn't fail if there was an I/O error, e.g. file 
>> system full. Furthermore, the indentation to pretty print the json was 
>> fragile and hard to maintain so this is changed to use a supporting writer 
>> class to do this.
>> 
>> Test coverage is significantly expanded, including updating the test library 
>> that is used by several tests to parse the thread dump.
>> 
>> Testing: tier1-6
>
> src/hotspot/share/classfile/javaClasses.cpp line 5519:
> 
>> 5517: oop 
>> java_util_concurrent_locks_AbstractOwnableSynchronizer::get_owner_threadObj(oop
>>  obj) {
>> 5518:   assert(_owner_offset != 0, "Must be initialized");
>> 5519:   return obj->obj_field_acquire(_owner_offset);
> 
> Is this a preexisting bug? If yes we should have this fixed in a separate 
> patch so it is eligible for backporting, etc.

This is a dependent PR, there are no changes to src/hotspot in this PR. Maybe I 
should left this PR in draft until pull/25425 is integrated to avoid any 
confusion.

In any case, it is changed to use obj_field_acquire because the field is 
volatile and accessed (asynchronously) from the thread handshake. So different 
to the access from VM_ThreadDump which is a VM operation.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25429#discussion_r2106095164

Reply via email to