RFR: 8353727: HeapDumpPath doesn't expand %p [v2]

Kevin Walls kevinw at openjdk.org
Wed Apr 9 08:52:31 UTC 2025


On Wed, 9 Apr 2025 06:43:20 GMT, Thomas Stuefe <stuefe at openjdk.org> wrote:

>> Kevin Walls has updated the pull request incrementally with two additional commits since the last revision:
>> 
>>  - length checking update
>>  - Chris feedback
>
> src/hotspot/share/services/heapDumper.cpp line 2760:
> 
>> 2758:   if (dump_file_seq == 0) { // first time in, we initialize base_path
>> 2759:     // Set base path (name or directory, default or custom, without seq no), doing %p substitution.
>> 2760:     const char *path_src = (HeapDumpPath != nullptr && HeapDumpPath[0] != '\0') ? HeapDumpPath : dump_file_name;
> 
> Why do you expand the dump file name here? 
> 
> If you want to minimize the expand calls, you could:
> 
> - append the unexpanded dump_file_name to the unexpanded HeapDumpPath
> - expand
> - create dir (extract the directory name by temporarily setting the the last '/' to '\0; create dir; restore '/')
> now you are done.

It concerned me that we presume there is no %p in the directory/path.  It might be tricky (get the pid, create a directory, before the first heap dump), but it's possible.
Trying to use an existing directory with a literal %p in it will fail, but we can't have this both ways, and should either honour the %p substitution fully, or not.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/24482#discussion_r2034820138


More information about the hotspot-runtime-dev mailing list