Integrated: 8224852: JVM crash on watched field access from native code
Leonid Mesnik
lmesnik at openjdk.org
Fri Oct 31 01:43:18 UTC 2025
On Tue, 30 Sep 2025 21:32:01 GMT, Leonid Mesnik <lmesnik at openjdk.org> 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.
This pull request has now been integrated.
Changeset: 4f9f0868
Author: Leonid Mesnik <lmesnik at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/4f9f086847f531ab1791727d74955cfd8ec56811
Stats: 336 lines in 4 files changed: 329 ins; 0 del; 7 mod
8224852: JVM crash on watched field access from native code
Reviewed-by: amenkov, sspitsyn
-------------
PR: https://git.openjdk.org/jdk/pull/27584
More information about the serviceability-dev
mailing list