RFR: 8356870: HotSpotDiagnosticMXBean.dumpThreads and jcmd Thread.dump_to_file updates [v2]

Andrey Turbanov aturbanov at openjdk.org
Mon May 26 16:08:52 UTC 2025


On Sun, 25 May 2025 06:21:05 GMT, Alan Bateman <alanb at 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 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
>
> Alan Bateman has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase.

src/java.base/share/classes/jdk/internal/vm/ThreadDumper.java line 186:

> 184:         Thread.State state = snapshot.threadState();
> 185:         writer.println("#" + thread.threadId() + " \"" + snapshot.threadName()
> 186:                 +  "\" " + (thread.isVirtual() ? "virtual " : "") + state + " " + now);

Suggestion:

                + "" " + (thread.isVirtual() ? "virtual " : "") + state + " " + now);

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

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


More information about the serviceability-dev mailing list