RFR: 8258077: Using -Xcheck:jni can lead to a double-free after JDK-8193234
David Holmes
david.holmes at oracle.com
Thu Dec 24 06:08:43 UTC 2020
Ping!
Thanks,
David
On 17/12/2020 9:54 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
>
> -------------
>
> Commit messages:
> - Updated test to fix nativepath problem.
> - Step 6: Fix the JNI_COMMIT memory leak only for the case of ReleasePrimitiveArrayCritical
> - Step 5: Add the memory-leak test from JDK-8193234 as a manual test
> - Step 4: Revert the change from JDK-8193234
> - Step 3: Fix incorrect function names in the error messages and cleanup formatting.
> - Step 2: Only try to print the GuardedMemory info in debug builds as it can trigger a secondary crash.
> - 8258077: Using -Xcheck:jni can lead to a double-free after JDK-8193234
>
> Changes: https://git.openjdk.java.net/jdk/pull/1816/files
> Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=1816&range=00
> Issue: https://bugs.openjdk.java.net/browse/JDK-8258077
> Stats: 321 lines in 5 files changed: 303 ins; 6 del; 12 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