On Tue, 22 Sep 2026 09:26:48 GMT, Serguei Spitsyn <[email protected]> wrote:

> The test 
> `serviceability/jvmti/events/FieldModification/fieldmod02/fieldmod02.java` is 
> crashing with the option:
> `-XX:-DoJVMTIVirtualThreadTransitions`.
> The capability `can_support_virtual_threads` must be rejected with the VM 
> option `-XX:-DoJVMTIVirtualThreadTransitions`. The fix is implementing it. It 
> impacts just a couple of code lines.
> 
> Testing:
>  - Run the test 
> `serviceability/jvmti/events/FieldModification/fieldmod02/fieldmod02.java` 
> with the option `-XX:-DoJVMTIVirtualThreadTransitions`. Now, it is failed 
> with rejecting the capability instead of crashing:
> 
> (AddCapabilities) unexpected error: JVMTI_ERROR_NOT_AVAILABLE (98)
> Error occurred during initialization of VM
> 
> ---------
> - [x] I confirm that I make this contribution in accordance with the [OpenJDK 
> Interim AI Policy](https://openjdk.org/legal/ai).

Overall looks good. I added a suggestion for future cleanup.

src/hotspot/share/prims/jvmtiManageCapabilities.cpp line 106:

> 104:   jc.can_generate_resource_exhaustion_heap_events = 1;
> 105:   jc.can_generate_resource_exhaustion_threads_events = 1;
> 106:   jc.can_support_virtual_threads = DoJVMTIVirtualThreadTransitions;

This flag may have bit rotted a bit, and that shows here. It has essentially 
become a flag to enable/disable support for virtualthread events, and when 
disabling support for virtual thread events, the implementation simply takes 
advantage of it by not doing the unnecessary transitions.

DoJVMTIVirtualThreadTransitions was added so profilers could turn it off and 
not have the overhead of the transitions, which are only executed when JVMTI is 
enabled. That reasoning in not really captured well in the flag name or its 
description.  I kind of think that just a plain JVMTISupportVirtualThreadEvents 
flag would be clearer, with a description saying that it eliminates the JVMTI 
overhead for virtual thread event support. Possibly something to handle in a 
future cleanup.

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

Marked as reviewed by cjplummer (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/33001#pullrequestreview-5284019037
PR Review Comment: https://git.openjdk.org/jdk/pull/33001#discussion_r4076713917

Reply via email to