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

Reply via email to