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

David Holmes david.holmes at oracle.com
Mon Jan 4 21:23:01 UTC 2021


Ping! Can I get a second review please.

Thanks,
David

On 29/12/2020 5:10 pm, David Holmes 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.
> 
> -------------
> 
> Changes:
>    - all: https://git.openjdk.java.net/jdk/pull/1816/files
>    - new: https://git.openjdk.java.net/jdk/pull/1816/files/8786d584..b989bc52
> 
> Webrevs:
>   - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=1816&range=01
>   - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=1816&range=00-01
> 
>    Stats: 3 lines in 2 files changed: 0 ins; 0 del; 3 mod
>    Patch: https://git.openjdk.java.net/jdk/pull/1816.diff
>    Fetch: git fetch https://git.openjdk.java.net/jdk pull/1816/head:pull/1816
> 
> PR: https://git.openjdk.java.net/jdk/pull/1816
> 


More information about the hotspot-runtime-dev mailing list