On Wed, 22 Oct 2025 03:39:57 GMT, Leonid Mesnik <[email protected]> wrote:

>> The field access/modification events set interp only mode and compiled frame 
>> is not expected. However JNI might call `post_field_access_by_jni` while the 
>> last java frame is compiled. 
>> 
>> 1) The thread switched to interponly mode while it is in JNI code. The 
>> deoptimization is triggered but each frame is really changed only execution 
>> returns to it.  So last java frame was not executed and thus is still 
>> compiled. 
>> 2) The JNI accessed field from the thread where field events are not 
>> enabled. So the `post_field_access_by_jni` is called in threads in 
>> interp_only mode. 
>> 
>> The original example doesn't reproduce issue because of JDK changes and I 
>> don't know of it is 1) or 2)I. I implemented regression test for both 
>> problems. 
>> 
>> The location should be zero for JNI access.
>
> Leonid Mesnik has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   feedback

test/hotspot/jtreg/serviceability/jvmti/events/FieldAccess/FieldsEventsFromJNI/libJvmtiFieldEventsFromJNI.cpp
 line 167:

> 165: 
> 166: JNIEXPORT void JNICALL
> 167: Java_FieldsEventsFromJNI_enableEventsAndModifyField(

Need to rename these as well: 
`s/Java_FieldsEventsFromJNI/Java_FieldEventsFromJNI/g`.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/27584#discussion_r2450427318

Reply via email to