RFR: 8258077: Using -Xcheck:jni can lead to a double-free after JDK-8193234 [v2]

David Holmes david.holmes at oracle.com
Wed Jan 6 13:16:55 UTC 2021


On 6/01/2021 2:49 am, Harold Seigel wrote:
> On Tue, 29 Dec 2020 07:10:20 GMT, David Holmes <dholmes at openjdk.org> wrote:
> 
>>> The fix in JDK-8193234 had an unintended consequence for the Release<X>ArrayElements API, which is now fixed in this issue.
>>>
>>> I'd like to thank Mauro Lacy and Dmitry Timofeev for raising, analysing and discussing this issue. You can follow the thread here:
>>>
>>> http://mail.openjdk.java.net/pipermail/hotspot-dev/2020-December/047248.html
>>>
>>> Although the fix itself is very basic I found a couple of other issues along the way, so I have staged the commits as follows for ease of understanding:
>>>
>>> Step 1: added a regression test for the current double-free problem
>>> Step 2: Only try to print the GuardedMemory info in debug builds as it can lead to secondary crashes
>>> Step 3: Fix incorrect function names in the error messages and cleanup formatting
>>> Step 4: Revert the change from JDK-8193234
>>> Step 5: Add the memory-leak test from JDK-8193234 as a manual test
>>> Step 6: Fix the JNI_COMMIT memory leak only for the case of ReleasePrimitiveArrayCritical
>>>
>>> Finally I had to tweak the test to fix a nativepath problem.
>>>
>>> Testing:
>>>   - tiers 1-4 (tier 4 includes the test run with -Xcheck:jni)
>>>   - local testing of the new tests
>>>
>>> Thanks,
>>> David
>>
>> David Holmes has updated the pull request incrementally with one additional commit since the last revision:
>>
>>    Fix minor nits from Dan's review.
> 
> These changes look good!  Are any changes needed to the JNI Spec?

Thanks for the review Harold. These changes don't impact the JNI spec, 
but there is a separate issue:

https://bugs.openjdk.java.net/browse/JDK-8258185

to examine what the spec says in relation to these modes.

David

> Thanks, Harold
> 
> -------------
> 
> Marked as reviewed by hseigel (Reviewer).
> 
> PR: https://git.openjdk.java.net/jdk/pull/1816
> 


More information about the hotspot-runtime-dev mailing list