RFR: 8308237: add JDWP and JDI virtual thread support for ThreadReference.PopFrames [v4]
Andrey Turbanov
aturbanov at openjdk.org
Mon May 22 09:14:55 UTC 2023
On Mon, 22 May 2023 06:35:47 GMT, Chris Plummer <cjplummer at openjdk.org> wrote:
>> This is a follow-on to [JDK-8308000](https://bugs.openjdk.org/browse/JDK-8308000) which adds JVMTI PopFrames support for virtual thread. For JDWP and JDI this is mostly a spec update, although JDI needs minor changes to properly throw the correct exception. Note this PR needs JDK-8264699 in order to function properly, so there may be some GHA failures until JDK-8308000 is pushed.
>>
>> There are a large number of tests that can now be removed from the problem list. Also, one test needs to be modified to no longer expect OpaqueFrameException for virtual threads. It was just revereted back to it's previous form before the OpaqueFrameException support was added for virtual threads.
>>
>> As you can see from the problemlist update, there are quite a few tests for popFrames() support. However, there are still two coverage gaps:
>>
>> - There is no test for throwing NativeMethodException (even for platform threads)
>> - There is no test case for throwing OpaqueFrameException when the virtual thread is suspended but not mounted.
>>
>> I may eventually add one or both tests to the PR, or I may just file separate CRs for them for now.
>
> Chris Plummer has updated the pull request incrementally with one additional commit since the last revision:
>
> fix jcheck errors
test/jdk/com/sun/jdi/PopFramesTest.java line 115:
> 113: try {
> 114: Thread.sleep(10000);
> 115: } catch (InterruptedException e) {
Suggestion:
} catch (InterruptedException e) {
test/jdk/com/sun/jdi/PopFramesTest.java line 192:
> 190: }
> 191:
> 192: public static void main(String[] args) throws Exception {
Suggestion:
public static void main(String[] args) throws Exception {
test/jdk/com/sun/jdi/PopFramesTest.java line 248:
> 246: BreakpointEvent bpe = startTo("PopFramesTestTarg", "popMethod", "()V");
> 247: ClassType targetClass = (ClassType)bpe.location().declaringType();
> 248: ThreadReference mainThread = bpe.thread();
Suggestion:
ThreadReference mainThread = bpe.thread();
test/jdk/com/sun/jdi/PopFramesTest.java line 254:
> 252: try {
> 253: Thread.sleep(1000); // give thread chance to get into Thread.sleep() or loop
> 254: } catch (InterruptedException e) {
Suggestion:
} catch (InterruptedException e) {
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14022#discussion_r1200225974
PR Review Comment: https://git.openjdk.org/jdk/pull/14022#discussion_r1200226261
PR Review Comment: https://git.openjdk.org/jdk/pull/14022#discussion_r1200227466
PR Review Comment: https://git.openjdk.org/jdk/pull/14022#discussion_r1200227660
More information about the serviceability-dev
mailing list