On Fri, 14 Aug 2026 21:07:00 GMT, Leonid Mesnik <[email protected]> wrote:

>> The class `ThreadSnapshot$ThreadLock` is internal ThreadSnapshot class.
>> The `ThreadSnapshot` and `ThreadSnapshot$ThreadLock` are  created and filled 
>> by VM. The objects for `ThreadLock` are 
>> 
>> The crash originally appeared when jcmd ThreadDump was called for timed-out 
>> test `compiler/c2/Test6603011.java`. The test is executed with `-Xcomp 
>> -XX:-Inline` which is required to reproduce the issue. 
>> In other cases the klass initialized by interpreter or compiler.  
>> 
>> This is why this crash was not find by jcmd test that test how jcmd works 
>> for monitors.
>> created but the class is not initialized. 
>> 
>> BTW, the `ThreadSnapshot` is initialized 
>> 
>>   if (snapshot_klass->should_be_initialized()) {
>>     snapshot_klass->initialize(CHECK_NULL);
>>   }
>> 
>> 
>> Note: `-XX:CompileCommand=compileonly,*ThreadSnapshot*::*` in test is to 
>> reduce execution time only, test fails without it.
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Leonid Mesnik has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   updated after feedback in PR

src/hotspot/share/services/threadService.cpp line 1502:

> 1500: 
> 1501:   // Locks
> 1502:   refArrayHandle locks;

It looks like "refArrayHandle locks" can also be moved into the "if" block 
below.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/32363#discussion_r3787178234

Reply via email to