Skip to content

Javacore support for monitors owned by a vthread #24647

Description

@theresa-m

Unmounted virtual thread monitor information is missing from javacore.

When a virtual thread is unmounted its held monitors are stored in monitorEnterRecords of J9VMContinuation. This list should be used when writing unmounted virtual thread data to a javacore. Unmounted vthread information can be enabled with -XX:+ShowUnmountedThreadStacks.

Example of the current output:

1XMVTHDINFO    Unmounted Threads
NULL           =================
NULL
3XMVTHDINFO        "vthread-one" J9VMContinuation:0x0000000C6ACD5920, java/lang/Thread:0x00000003FFD8C168
3XMVTHDINFO1             Type: Virtual
3XMTHREADINFO3           Java callstack:
4XESTACKTRACE                at jdk/internal/vm/Continuation.yieldImpl(Native Method)
4XESTACKTRACE                at jdk/internal/vm/Continuation.yield0(Continuation.java:251)
4XESTACKTRACE                at jdk/internal/vm/Continuation.yield(Continuation.java:243)
4XESTACKTRACE                at java/lang/VirtualThread.yieldContinuation(VirtualThread.java:560)
4XESTACKTRACE                at java/lang/VirtualThread.parkNanos(VirtualThread.java:818)
4XESTACKTRACE                at java/lang/VirtualThread.sleepNanos(VirtualThread.java:1014)
4XESTACKTRACE                at java/lang/Thread.sleepNanos(Thread.java:566)
4XESTACKTRACE                at java/lang/Thread.sleep(Thread.java:599)
4XESTACKTRACE                at VThreadMonitor.lambda$main$0(VThreadMonitor.java:24)
4XESTACKTRACE                at VThreadMonitor$$Lambda/0x000000006d884c58.run(Bytecode PC:4)
4XESTACKTRACE                at java/lang/Thread.runWith(Thread.java:1551)
4XESTACKTRACE                at java/lang/VirtualThread.run(VirtualThread.java:479)
4XESTACKTRACE                at java/lang/VirtualThread$VThreadContinuation$1.run(VirtualThread.java:259)
4XESTACKTRACE                at jdk/internal/vm/Continuation.enter(Continuation.java:192)
NULL

Metadata

Metadata

Assignees

No one assigned

    Labels

    project:loomUsed to track Project Loom related work

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions