RFR: 8339725: Concurrent GC crashed due to GetMethodDeclaringClass [v5]

Liang Mao lmao at openjdk.org
Wed Sep 11 02:41:06 UTC 2024


On Wed, 11 Sep 2024 02:23:10 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> Liang Mao has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Exclude libagent8339725.cpp compiling for windows
>
> src/hotspot/share/prims/jvmtiEnv.cpp line 3216:
> 
>> 3214:   NULL_CHECK(method, JVMTI_ERROR_INVALID_METHODID);
>> 3215:   Klass* k = method->method_holder();
>> 3216:   Handle holder(Thread::current(), k->klass_holder()); // keep the klass alive
> 
> How do we know `k` is not already unloaded?

We don't know `k` would be unloaded or not in the middle of GC concurrent marking. So I think we need to keep it alive just like accessing weak reference.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20907#discussion_r1753034077


More information about the hotspot-dev mailing list