RFR: 8253429: Error reporting should report correct state of terminated/aborted threads
Zhengyu Gu
zgu at openjdk.java.net
Fri Sep 25 14:58:30 UTC 2020
On Fri, 25 Sep 2020 14:23:44 GMT, David Holmes <dholmes at openjdk.org> wrote:
>> For some non-JavaThread, their object instances can outlast threads' lifespan. For example, we still can query/report
>> thread's state after thread terminated.
>> But the query/report currently returns wrong state. E.g. a terminated thread appears to be alive and seemly has valid
>> thread stack, etc.
>> This patch sets non-JavaThread's state to ZOMBIE just before it terminates, so that we can distinguish terminated
>> thread from live thread.
>> Also, thread should not report its SMR info, if it has terminated or it never started (thread->osthread() == NULL).
>>
>> Note: Java thread does not have such issue, its thread object is deleted before thread terminates.
>
> src/hotspot/share/runtime/thread.cpp line 955:
>
>> 953: }
>> 954: } else {
>> 955: st->print(" Aborted");
>
> Not sure this is reachable and if it is then I'm not sure what state the thread is actually in. If a Thread never gets
> an osThread() it isn't started so shouldn't be locatable by any means.
so, you prefer "ShouldNotReachHere()" ?
-------------
PR: https://git.openjdk.java.net/jdk/pull/341
More information about the hotspot-runtime-dev
mailing list