RFR: 8296323: JVMTI can_support_virtual_threads not available for agents loaded into running VM [v7]
Daniel D. Daugherty
dcubed at openjdk.org
Tue Nov 22 20:59:47 UTC 2022
On Tue, 22 Nov 2022 05:57:37 GMT, Serguei Spitsyn <sspitsyn at openjdk.org> wrote:
>> The can_support_virtual_thread was initially implemented as an onload capability.
>> It is why this capability does not work for the agents loaded into running VM.
>> The fix is to move it from `onload` to `always`capabilities list.
>>
>> Testing:
>> New test is added: VirtualStartThreadTest.
>> TBD: mach5 jvmti, jdi and tier1-6 tests.
>
> Serguei Spitsyn has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains eight additional commits since the last revision:
>
> - Merge branch 'master' into br19
> Merge
> - removed thread->vthread() != NULL from JvmtiVirtualThreadEventMark constructor
> - minor update for unnamed threads in jvmti_common.h
> - fixed a trailing white space issue
> - extended VirtualThreadStartTest to support more configs; fixed issue in jvmtiExport.cpp
> - roll back unintended VirtualThread.java file update
> - simplified VirtualThreadStartTest
> - 8296323: JVMTI can_support_virtual_threads not available for agents loaded into running VM
src/hotspot/share/prims/jvmtiExport.cpp line 202:
> 200: JvmtiEventMark(thread) {
> 201: _jthread = to_jobject(thread->vthread());
> 202: assert(thread->vthread() != NULL || thread->threadObj() == NULL, "sanity check");
Seems a little strange to me that L202 is after L201. You're asserting
that `thread->vthread() != NULL` after passing it to a `to_jobject()` call.
-------------
PR: https://git.openjdk.org/jdk/pull/11246
More information about the hotspot-dev
mailing list