On Mon, 14 Jul 2025 23:42:03 GMT, Leonid Mesnik <[email protected]> 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