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
