RFR: 8362203: assert(state == nullptr || state->get_thread_oop() != nullptr) failed: incomplete state
Serguei Spitsyn
sspitsyn at openjdk.org
Tue Jul 15 07:22:39 UTC 2025
On Mon, 14 Jul 2025 23:42:03 GMT, Leonid Mesnik <lmesnik at openjdk.org> wrote:
> The problem happens if post_early_vm_start is triggered.
> The fix is to complete initialization once threadObj become available.
>
> I'vent observed that recompute_enable and hitting assertion might happens before this step. However it might be makes sense to check state in assertion if needed.
This looks good in general. Thank you for catching with Kitchensink and fixing this issue!
I've posted a couple of nits.
src/hotspot/share/prims/jvmtiThreadState.cpp line 1046:
> 1044: void JvmtiThreadState::update_thread_oop_during_vm_start(JavaThread* thread) {
> 1045: assert(thread->threadObj() != nullptr, "santity check");
> 1046: if (thread->jvmti_thread_state()->get_thread_oop() == nullptr) {
Nit: Replace `thread->jvmti_thread_state()->get_thread_oop()` with `get_thread_oop()`.
src/hotspot/share/prims/jvmtiThreadState.cpp line 1047:
> 1045: assert(thread->threadObj() != nullptr, "santity check");
> 1046: if (thread->jvmti_thread_state()->get_thread_oop() == nullptr) {
> 1047: _thread_oop_h.release(JvmtiExport::jvmti_oop_storage());
Nit: This line needs a comment explaining we are releasing an `OopHandle` pointing to `null`.
-------------
PR Review: https://git.openjdk.org/jdk/pull/26303#pullrequestreview-3019013676
PR Review Comment: https://git.openjdk.org/jdk/pull/26303#discussion_r2206621244
PR Review Comment: https://git.openjdk.org/jdk/pull/26303#discussion_r2206627052
More information about the hotspot-dev
mailing list