On Mon, 27 Apr 2026 06:31:00 GMT, David Holmes <[email protected]> wrote:
> Please review this change to fix a problem that can rise if JVM TI suspension > is allowed when a thread is executing in a JNI "critical" region. The gory > details are in the first comment so that the PR emails are shorter > > A new test is introduced to check that we cannot suspend in a critical region > > Other testing: > - Tiers 1-5 on all platforms > > The key insights into this solution are attributed to @pchilano. Everything > simpler I tried was buggy and led me back to Patricio's suggested changes to > the operation filtering. The actual details of this and any remaining bugs in > it are all my own. > > Thanks. > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai). Changes requested by lmesnik (Reviewer). test/hotspot/jtreg/runtime/jni/critical/libSuspendInCritical.cpp line 34: > 32: static jvmtiEnv* jvmti = nullptr; > 33: > 34: volatile static jboolean stay_in_critical_native = JNI_TRUE; The `stay_in_critical_native` and `native_counter` should be std::atomic and not volatile for mutli-threading correctness in C++. ------------- PR Review: https://git.openjdk.org/jdk/pull/30936#pullrequestreview-4184484100 PR Review Comment: https://git.openjdk.org/jdk/pull/30936#discussion_r3150454284
