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