8320189: vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t001 memory corruption when using -Xcheck:jni #25422
+25
−28
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This update is fixing a couple of
nsk/jvmti/ scenarios
tests.The tests in a JVMTI
ClassFileLoadHook
callback provide new class file bytes with the result returned by JNIGetByteArrayElements()
. It violates the JVMTIClassFileLoadHook
spec saying:Please, see the JVMTI ClassFileLoadHook spec:
https://docs.oracle.com/en/java/javase/24/docs/specs/jvmti.html#ClassFileLoadHook
It is the root cause of a memory corruption detected with the VM option
-Xcheck:jni
.The fix is to convert a JNI allocated array returned by
GetByteArrayElements()
to a JMVTI allocated array. New conversion functionjni_array_to_jvmti_allocated()
is added to thejvmti_common.hpp
.Testing:
Progress
Issue
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/25422/head:pull/25422
$ git checkout pull/25422
Update a local copy of the PR:
$ git checkout pull/25422
$ git pull https://git.openjdk.org/jdk.git pull/25422/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 25422
View PR using the GUI difftool:
$ git pr show -t 25422
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/25422.diff
Using Webrev
Link to Webrev Comment