[jdk19] RFR: 8287847: Fatal Error when suspending virtual thread after it has terminated [v7]
Chris Plummer
cjplummer at openjdk.org
Sat Jul 2 05:27:28 UTC 2022
On Sat, 2 Jul 2022 02:32:09 GMT, Serguei Spitsyn <sspitsyn at openjdk.org> wrote:
>> Chris Plummer has updated the pull request incrementally with one additional commit since the last revision:
>>
>> provide a slightly more descriptive @summary
>
> test/jdk/com/sun/jdi/SuspendAfterDeath.java line 73:
>
>> 71:
>> 72: public class SuspendAfterDeath extends TestScaffold {
>> 73: private volatile ThreadReference thread;
>
> One minor naming suggestion:
> The name `thread` is too generic. What about something like `targetThread` or `testedThread`?
Ok. I'll rename to targetThread.
> test/jdk/com/sun/jdi/TestScaffold.java line 976:
>
>> 974: }
>> 975: });
>> 976: Thread.currentThread().setName(OLD_MAIN_THREAD_NAME);
>
> Just want to understand what is this thread naming is about.
> Is it just to properly name the threads, or there is some other reason for this?
> Also, why OLD_MAIN_THREAD_NAME is a little bit strange and why old?
The "main" debuggee thread is always launched as a platform thread. There's no choice in that since it is simply the main application thread. When using the virtual thread wrapper, the "main" thread will spawn a virtual thread to run the debuggee on. By default virtual threads have no name. For the nsk debugger tests, "main" was renamed to "old-m-a-i-n", and the new debuggee virtual thread named "main". For some reason that was never done for the com/sun/jdi tests. I only made this change because in `breakpointReached()` of the test it prints out the thread, and I noticed the name was empty. I could leave this change out if you want and file a separate CR for it. The test should still run ok without it.
-------------
PR: https://git.openjdk.org/jdk19/pull/88
More information about the serviceability-dev
mailing list