RFR: JDK-8280002: jmap -histo may leak stream

Aleksey Shipilev shade at openjdk.java.net
Fri Jan 14 12:55:25 UTC 2022


On Fri, 14 Jan 2022 10:04:53 GMT, Thomas Stuefe <stuefe at openjdk.org> wrote:

> Very trivial fix to a handle/memory leak. 
> 
> JDK-8215624 added parallel heap iteration to both `jmap -histo` and `jcmd GC.class_histogram`. When called with an explicit file and an invalid argument for number of threads, it leaks the file (bit of memory and a handle).
> 
> Reproduce with:
> 
> `jmap -histo:parallel=notanumber,file=xx.txt`
> 
> Can only be reproduced with jmap. jcmd is safe, arguments are handled correctly in shared code.

This is not as trivial, AFAICS. Note that the existing code `delete fs` after checking `if (os != NULL && os != out)`. Does it mean this patch can effectively `delete out`?

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

PR: https://git.openjdk.java.net/jdk/pull/7078


More information about the serviceability-dev mailing list