RFR: 8369505: jhsdb jstack --mixed cannot handle continuation stub [v5]

Chris Plummer cjplummer at openjdk.org
Mon Oct 13 20:05:14 UTC 2025


On Mon, 13 Oct 2025 08:31:05 GMT, Yasumasa Suenaga <ysuenaga at openjdk.org> wrote:

>> test/hotspot/jtreg/serviceability/sa/TestJhsdbJstackMixedWithVirtualThread.java line 39:
>> 
>>> 37:  * @test
>>> 38:  * @bug 8369505
>>> 39:  * @requires (os.family == "linux") & (vm.hasSA)
>> 
>> I think it would be good to run this on macosx also, but it can't be run --mixed. I did reproduce the exception on macosx without --mixed. It doesn't however produce the "<StubRoutines (continuation stubs)>" frame. The test would need to be modified to instead check for the exception.
>> 
>> Probably we should run this on Windows also.
>
> I updated testcase to run this on other platforms - runs `jhsdb jstack` without `--mixed` and checks stderr.
> 
> I tested on Windows, but I didn't see any errors - I guess `jhsdb jstack` couldn't unwind stacks on Windows, thus it did not reach continuation stub. But it is different problem.

On Windows I am seeing the exception (with your fix disabled):


"ForkJoinPool-1-worker-1" #30 daemon prio=5 tid=0x000001567d6bcdc0 nid=2588 runnable [0x00000002d35fe000]
   java.lang.Thread.State: RUNNABLE
   JavaThread state: _thread_in_native
 - java.lang.invoke.LambdaForm$MH+0x0000000026047800.invoke(java.lang.Object, long, int) @bci=10 (Interpreted frame)
 - java.lang.invoke.LambdaForm$MH+0x000000002604e400.invokeExact_MT(java.lang.Object, long, int, java.lang.Object) @bci=21 (Interpreted frame)
 - jdk.internal.foreign.abi.DowncallStub+0x0000000026048800.invoke(java.lang.foreign.SegmentAllocator, java.lang.foreign.MemorySegment, int) @bci=44 (Interpreted frame)
 - java.lang.invoke.LambdaForm$DMH+0x0000000026048c00.invokeStaticInit(java.lang.Object, java.lang.Object, java.lang.Object, int) @bci=14 (Interpreted frame)
 - java.lang.invoke.LambdaForm$MH+0x000000002604d800.invoke(java.lang.Object, int) @bci=44 (Interpreted frame)
 - java.lang.invoke.LambdaForm$MH+0x000000002604d400.invoke_MT(java.lang.Object, int, java.lang.Object) @bci=18 (Interpreted frame)
 - LingeredAppWithVirtualThread.run() @bci=15, line=65 (Interpreted frame)

Error occurred during stack walking:
sun.jvm.hotspot.utilities.AssertionFailure: must have non-zero frame size

With your fix enabled, I see the full expected stack, so it seems to be working.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27728#discussion_r2427225103


More information about the serviceability-dev mailing list