[jdk19] RFR: 8289091: move oop safety check from SharedRuntime::get_java_tid() to JavaThread::threadObj() [v3]

Coleen Phillimore coleenp at openjdk.org
Wed Jun 29 14:36:49 UTC 2022


On Tue, 28 Jun 2022 16:55:29 GMT, Daniel D. Daugherty <dcubed at openjdk.org> wrote:

>> A trivial move of the oop safety check from SharedRuntime::get_java_tid() to
>> JavaThread::threadObj(). Also made adjustments to the threadObj() calls in
>> JavaThread::print_on_error() and JavaThread::get_thread_name_string() so
>> that we don't get secondary crashes when a JavaThread crashes after it has
>> detached the GC barrier.
>> 
>> Tested with Mach5 Tier[1-7]. A Mach5 Tier8 will be started this weekend.
>
> Daniel D. Daugherty has updated the pull request incrementally with one additional commit since the last revision:
> 
>   dholmes CR - use Thread::current() instead of Thread::current_or_null().

src/hotspot/share/runtime/thread.cpp line 2151:

> 2149:   st->print("%s \"%s\"", type_name(), get_thread_name_string(buf, buflen));
> 2150:   Thread* current = Thread::current();
> 2151:   if (!current->is_Java_thread() || JavaThread::cast(current)->is_oop_safe()) {

This is really tricky.  Why not have threadObj() return null if this is happening. Then you can say why in that function.

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

PR: https://git.openjdk.org/jdk19/pull/69


More information about the hotspot-runtime-dev mailing list