RFR: 8341273: JVMTI is not properly hiding some continuation related methods [v3]
Alan Bateman
alanb at openjdk.org
Wed Oct 16 14:53:15 UTC 2024
On Wed, 16 Oct 2024 10:07:31 GMT, Serguei Spitsyn <sspitsyn at openjdk.org> wrote:
>> src/java.base/share/classes/java/lang/VirtualThread.java line 219:
>>
>>> 217: public void run() {
>>> 218: // notify JVMTI
>>> 219: vthread.notifyJvmtiStart();
>>
>> The notifyJvmtiMount and notifyJvmtiUnmount (native) methods already have the annotations. Is it really required on the caller too? I'm wondering if the comment on JvmtiMountTransition needs to be expanded to explain this.
>
> The method `java/lang/VirtualThread$VThreadContinuation$1.run()` is starting and finishing in a VTMS transition. The issue is with the JVMTI `NotifyFramePop`. We need a way to disallow adding `FramePop` event requests to its frame because such requests cause problems because they are not used to post a `FramePop` events nor they are properly cleared. The annotation `@JvmtiMountTransition` is needed to help with this. I'm trying to move the `notifyJvmtiStart()/notifyJvmtiEnd()` calls to earlier frame to reduce a little bit the scope of VTMS transition. What do you think is the best place to explain it? Would placed a comment before annotation `@JvmtiMountTransition` for method `java/lang/VirtualThread$VThreadContinuation$1.run()` good enough?
No issue from me on moving the notifications to the run method. My comment was more for the JvmtiMountTransition's class description as it's not easy to audit the use of this annotation.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/21397#discussion_r1803270431
More information about the hotspot-dev
mailing list