RFR: 8369505: jhsdb jstack --mixed cannot handle continuation stub on Linux AMD64
Yasumasa Suenaga
ysuenaga at openjdk.org
Sat Oct 11 03:16:03 UTC 2025
On Thu, 9 Oct 2025 14:11:39 GMT, Yasumasa Suenaga <ysuenaga at openjdk.org> wrote:
> I tried to get mixed thread dump of the application which runs virtual threads (see [Test.java on JBS](https://bugs.openjdk.org/secure/attachment/116453/Test.java)) via `jhsdb jstack --mixed`, then I got following message:
>
>
> sun.jvm.hotspot.utilities.AssertionFailure: must have non-zero frame size
> at jdk.hotspot.agent/sun.jvm.hotspot.utilities.Assert.that(Assert.java:32)
> at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.senderForCompiledFrame(X86Frame.java:374)
> at jdk.hotspot.agent/sun.jvm.hotspot.runtime.x86.X86Frame.sender(X86Frame.java:273)
> at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.sender(Frame.java:225)
> at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.realSender(Frame.java:230)
> at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.sender(VFrame.java:120)
> at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.javaSender(VFrame.java:150)
> at jdk.hotspot.agent/sun.jvm.hotspot.tools.PStack.initJFrameCache(PStack.java:224)
> at jdk.hotspot.agent/sun.jvm.hotspot.tools.PStack.run(PStack.java:73)
> at jdk.hotspot.agent/sun.jvm.hotspot.tools.PStack.run(PStack.java:65)
> at jdk.hotspot.agent/sun.jvm.hotspot.tools.PStack.run(PStack.java:60)
> at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.run(JStack.java:67)
> at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:278)
> at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.start(Tool.java:241)
> at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.execute(Tool.java:134)
> at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.runWithArgs(JStack.java:90)
> at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.runJSTACK(SALauncher.java:306)
> at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.main(SALauncher.java:507)
>
>
> And also I got following (strange) stacks which causes `AssersionFailure` in above:
>
>
> ----------------- 70094 -----------------
> "ForkJoinPool-1-worker-4" #32 daemon prio=5 tid=0x00007f8f5c371660 nid=70094 runnable [0x00007f8f406d9000]
> java.lang.Thread.State: RUNNABLE
> JavaThread state: _thread_in_native
> 0x00007f8f64658462 __syscall_cancel_arch + 0x32
> 0x00007f8f6464c75c __internal_syscall_cancel + 0x5c
> 0x00007f8f646a8c37 __GI___nanosleep + 0x17
> 0x00007f8f646bb14e __sleep + 0x3e
> 0x00007f8f4b3a8e1e <nep_invoker_blob>
> 0x00007f8f4b33fe48 * java.lang.invoke.LambdaForm$MH+0x000000000c047000.invoke(java.lang.Object, long, int) bci:10 (Interpreted frame)
> 0x00007f8f4b33fe48...
I saw same issue in JDK 25 on Fedora Rawhide on Raspberry Pi 4.
I will try to fix on AArch64.
Server compiler detected.
JVM version is 25+36-3489
sun.jvm.hotspot.utilities.AssertionFailure: must have non-zero frame size
at jdk.hotspot.agent/sun.jvm.hotspot.utilities.Assert.that(Assert.java:32)
at jdk.hotspot.agent/sun.jvm.hotspot.runtime.aarch64.AARCH64Frame.senderForCompiledFrame(AARCH64Frame.java:414)
at jdk.hotspot.agent/sun.jvm.hotspot.runtime.aarch64.AARCH64Frame.sender(AARCH64Frame.java:295)
at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.sender(Frame.java:207)
at jdk.hotspot.agent/sun.jvm.hotspot.runtime.Frame.realSender(Frame.java:212)
at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.sender(VFrame.java:120)
at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VFrame.javaSender(VFrame.java:150)
at jdk.hotspot.agent/sun.jvm.hotspot.tools.PStack.initJFrameCache(PStack.java:224)
at jdk.hotspot.agent/sun.jvm.hotspot.tools.PStack.run(PStack.java:73)
at jdk.hotspot.agent/sun.jvm.hotspot.tools.PStack.run(PStack.java:65)
at jdk.hotspot.agent/sun.jvm.hotspot.tools.PStack.run(PStack.java:60)
at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.run(JStack.java:67)
at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:278)
at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.start(Tool.java:241)
at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.execute(Tool.java:134)
at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.runWithArgs(JStack.java:90)
at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.runJSTACK(SALauncher.java:306)
at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.main(SALauncher.java:507)
----------------- 1884 -----------------
"ForkJoinPool-1-worker-4" #30 daemon prio=5 tid=0x0000ffff982c0ce0 nid=1884 runnable [0x0000ffff4d20b000]
java.lang.Thread.State: RUNNABLE
JavaThread state: _thread_in_native
0x0000ffffa03282e8 __syscall_cancel_arch + 0x28
0x0000ffffa0358b7c __clock_nanosleep + 0x3c
0x0000ffffa0363740 __GI___nanosleep + 0x20
0x0000ffffa0373f50 __sleep + 0x50
0x0000ffff87c4c878 <nep_invoker_blob>
0x0000ffff87b3b910 * java.lang.invoke.LambdaForm$MH+0x0000004001047000.invoke(java.lang.Object, long, int) bci:10 (Interpreted frame)
0x0000ffff87b3b910 * java.lang.invoke.LambdaForm$MH+0x000000400104fc00.invokeExact_MT(java.lang.Object, long, int, java.lang.Object) bci:21 (Interpreted frame)
0x0000ffff87b3b910 * jdk.internal.foreign.abi.DowncallStub+0x0000004001048000.invoke(java.lang.foreign.SegmentAllocator, java.lang.foreign.MemorySegment, int) bci:44 (Interpreted frame)
0x0000ffff87b3b910 * java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.lang.Object, java.lang.Object, java.lang.Object, int) bci:14 (Interpreted frame)
0x0000ffff87b3b910 * java.lang.invoke.LambdaForm$MH+0x000000400104dc00.invoke(java.lang.Object, int) bci:44 (Interpreted frame)
0x0000ffff87b3ba90 * java.lang.invoke.LambdaForm$MH+0x000000400104c400.invoke_MT(java.lang.Object, int, java.lang.Object) bci:18 (Interpreted frame)
0x0000ffff87b3ba90 * Test.run() bci:21 line:28 (Interpreted frame)
0x0000ffff87b3a080 <StubRoutines (continuationstubs)>
0x0000ffff87b3ba90 <interpreter> return entry points
0x0000ffff87b3ba90 <interpreter> return entry points
0x0000ffff87b3ba90 <interpreter> return entry points
0x0000ffff87b3c030 <interpreter> return entry points
0x0000ffff87b3b820 <interpreter> return entry points
0x0000ffff87b3b820 <interpreter> return entry points
0x0000ffff87b3b910 <interpreter> return entry points
0x0000ffff87b3ba90 <interpreter> return entry points
0x0000ffff87b3ba90 <interpreter> return entry points
0x0000ffff87b3ba90 <interpreter> return entry points
0x0000ffff87b37154 <StubRoutines (initialstubs)>
0x0000ffff9f620198 JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*) + 0x248
0x0000ffff9f621824 JavaCalls::call_virtual(JavaValue*, Handle, Klass*, Symbol*, Symbol*, JavaThread*) + 0x174
0x0000ffff9f6fa7f8 thread_entry(JavaThread*, JavaThread*) + 0x8c
0x0000ffff9f639d88 JavaThread::thread_main_inner() [clone .part.0] + 0xa4
0x0000ffff9fbbc308 Thread::call_run() + 0xa8
0x0000ffff9fa006a8 thread_native_entry(Thread*) + 0xd8
0x0000ffffa031e8d4 start_thread + 0x404
-------------
PR Comment: https://git.openjdk.org/jdk/pull/27728#issuecomment-3392845921
More information about the serviceability-dev
mailing list