RFR: 8334492: DiagnosticCommands (jcmd) should accept %p in output filenames and substitute PID [v6]

Sonia Zaldana Calles szaldana at openjdk.org
Mon Jul 22 19:49:08 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

Sonia Zaldana Calles has updated the pull request incrementally with three additional commits since the last revision:

 - Fixing memory leak
 - Fixing pointer style, s/NULL/nullptr, and exception
 - Cleaning up parserTests.cpp

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/20198/files
  - new: https://git.openjdk.org/jdk/pull/20198/files/cdf1d457..801fc582

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=20198&range=05
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=20198&range=04-05

  Stats: 78 lines in 4 files changed: 9 ins; 16 del; 53 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