RFR: JDK-8280002: jmap -histo may leak stream
Thomas Stuefe
stuefe at openjdk.java.net
Fri Jan 14 19:44:33 UTC 2022
On Fri, 14 Jan 2022 12:52:11 GMT, Aleksey Shipilev <shade 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`? Or can it call `delete nullptr`?
Thanks, @shipilev and @sspitsyn !
-------------
PR: https://git.openjdk.java.net/jdk/pull/7078
More information about the serviceability-dev
mailing list