On Thu, 11 May 2023 17:59:55 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:

>> Note this PR depends on the #13546 PR for the following:
>> 
>> [JDK-8306434](https://bugs.openjdk.org/browse/JDK-8306434): add support of 
>> virtual threads to JVMTI StopThread
>> 
>> So it can't be finalized and push until after JDK-8306434 is pushed. There 
>> will also be GHA failures until then. If JDK-8306434 results in any 
>> additional spec changes, they will likely impact this CR also.
>> 
>> 
>> [JDK-8306034](https://bugs.openjdk.org/browse/JDK-8306034) is adding some 
>> virtual thread support to JVMTI StopThread. This will allow JDWP 
>> ThreadReference.Stop and JDI ThreadReference.stop() to have the same level 
>> support for virtual threads.
>> 
>> Mostly this is a spec update for JDWP and JDI, but there are also some minor 
>> changes needed to the ThreadReference.stop() handling of JDWP errors, and 
>> throwing the appropriate exceptions. Also some minor cleanup in jdb. The 
>> debug agent doesn't need changes since JVMTI errors are just passed through 
>> as the corresponding JDWP errors, and the code for this is already in place. 
>> These errors are not new nor need any special handling.
>> 
>> Our existing testing for ThreadReference.stop() is fairly weak:
>> 
>> - nsk/jdb/kill/kill001, which tests stop() when the thread is suspended at a 
>> breakpoint. It will get problem listed by 
>> [JDK-8306034](https://bugs.openjdk.org/browse/JDK-8306034). I have fixes for 
>> it already working and will push it separately.
>> - nsk/jdi/stop/stop001, which is problem listed and only tests when the 
>> thread is blocked in Object.wait()
>> - nsk/jdi/stop/stop002, which only tests that throwing an invalid exception 
>> fails properly
>> 
>> I decided to take stop002 and make it a more thorough test of 
>> ThreadReference.stop(). See the comment at the top for a list of what is 
>> tested. As for reviewing this test, it's probably best to look at it as a 
>> completely new test rather than looking at diffs since so much has been 
>> changed and added.
>
> Chris Plummer 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 11 additional 
> commits since the last revision:
> 
>  - Merge branch 'master' into 8306471_vthread_stop
>    merge with master
>  - clarify test #1 in the debuggee.
>  - fix minor comment typo
>  - fix minor comment typo
>  - Some test logging improvements.
>  - Don't rely in Thread.sleep() to sychronize between debugger and debuggee.
>  - Fix test when suspended in a loop. Cleanup sme comments.
>  - fix some jcheck whitespace errors
>  - minor formatting fixes
>  - minor JDWP spec wording change
>  - ... and 1 more: https://git.openjdk.org/jdk/compare/e7c8f451...195abe20

This PR has been updated after the JVMTI push of the JVMTI StopThread pr. 
Testing is in progress.

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

PR Comment: https://git.openjdk.org/jdk/pull/13548#issuecomment-1544472847

Reply via email to