RFR: 8334492: DiagnosticCommands (jcmd) should accept %p in output filenames and substitute PID
Sonia Zaldana Calles
szaldana at openjdk.org
Wed Jul 17 13:52:05 UTC 2024
Hi all,
This PR addresses [8334492](https://bugs.openjdk.org/browse/JDK-8334492) enabling jcmd diagnostic commands that issue an output file to accept the `%p` pattern in the file name and substitute it for the PID.
This PR addresses the following diagnostic commands:
- [x] Compiler.perfmap
- [x] GC.heap_dump
- [x] System.dump_map
- [x] Thread.dump_to_file
- [x] VM.cds
Note that some jcmd diagnostic commands already enable this functionality (`JFR.configure, JFR.dump, JFR.start and JFR.stop`).
I propose opening a separate issue to track updating the man page similarly to how it’s done for the JFR diagnostic commands. For example,
filename (Optional) Name of the file to which the flight recording data is
written when the recording is stopped. If no filename is given, a
filename is generated from the PID and the current date and is
placed in the directory where the process was started. The
filename may also be a directory in which case, the filename is
generated from the PID and the current date in the specified
directory. (STRING, no default value)
Note: If a filename is given, '%p' in the filename will be
replaced by the PID, and '%t' will be replaced by the time in
'yyyy_MM_dd_HH_mm_ss' format.
Unfortunately, per [8276265](https://bugs.openjdk.org/browse/JDK-8276265), sources for the jcmd manpage remain in Oracle internal repos so this PR can’t address that.
Testing:
- [x] Added test case passes.
- [x] Modified existing VM.cds tests to also check for `%p` filenames.
Looking forward to your comments and addressing any diagnostic commands I might have missed (if any).
Cheers,
Sonia
-------------
Commit messages:
- 8334492: DiagnosticCommands (jcmd) should accept %p in output filenames and substitute PID
Changes: https://git.openjdk.org/jdk/pull/20198/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=20198&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8334492
Stats: 130 lines in 5 files changed: 116 ins; 0 del; 14 mod
Patch: https://git.openjdk.org/jdk/pull/20198.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/20198/head:pull/20198
PR: https://git.openjdk.org/jdk/pull/20198
More information about the serviceability-dev
mailing list