RFR: 8258077: Using -Xcheck:jni can lead to a double-free after JDK-8193234
Mauro Lacy
github.com+11656534+maurolacy at openjdk.java.net
Fri Dec 11 07:22:07 UTC 2020
On Fri, 11 Dec 2020 06:23:04 GMT, David Holmes <dholmes at openjdk.org> wrote:
>> issue 8193234: When using -Xcheck:jni an internally allocated buffer can leak (original issue).
>
> I've filed: https://bugs.openjdk.java.net/browse/JDK-8258077
>
> Cheers,
> David
Hi David,
Thanks for the issue, I'll change the title to properly reference it.
The point is that I couldn't find those memory leaks. At least in the openjdk code base, I couldn't find tests for that functionality, so, no memory leaks.
And, in any case, if there are tests in another code base, they are leaking because they are incorrect (IMO). In that they are not always following the right calling pattern for `ReleasePrimitiveArrayCritical`.
`ReleasePrimitiveArrayCritical`, despite its name (and to the best of our knowledge), does **not** release the buffer when called with `JNI_COMMIT`. So, it must be called again with a different release mode, to properly release the buffer.
And this, independently of the JVM flags. Or, it will manifest inconsistent behaviour; which is what's happening.
-------------
PR: https://git.openjdk.java.net/jdk/pull/1697
More information about the hotspot-dev
mailing list