RFR: 8279949: JavaThread::_free_handle_block leaks native memory
David Holmes
dholmes at openjdk.java.net
Sun Feb 13 02:09:01 UTC 2022
On Sat, 12 Feb 2022 22:07:33 GMT, Leonid Mesnik <lmesnik at openjdk.org> wrote:
> Please review following fix which delete whole list of JNIHandle blocks in JNIHandleBlock::release_block(...).
> Also, I added sanity verification of _pop_frame_link to ensure that there are no leaks there.
>
> Fix verified with tier1-6. Also, verified that memory leak is not reproduced anymore.
>
> Thanks to Vladimir I. for finding exact root cause of problem.
Sorry Leonid,
I think we need to understand exactly how we end up with a chain of blocks at thread exit - see comment below.
David
src/hotspot/share/runtime/jniHandles.cpp line 395:
> 393: delete block;
> 394: block = next;
> 395: }
Given the comment below about the `pop_frame_link`, I'm concerned that it may be possible that the loop above has deleted the block that `pop_frame_link` refers to. AFAICS we should only have a chain above if we have unbalanced `pushLocalFrame`/`popLocalFrame`, but that is the case the following code is trying to deal with too.
-------------
PR: https://git.openjdk.java.net/jdk/pull/7453
More information about the hotspot-runtime-dev
mailing list