On Sun, 8 Mar 2026 01:49:29 GMT, Fei Yang <[email protected]> wrote: >> Yasumasa Suenaga has updated the pull request incrementally with one >> additional commit since the last revision: >> >> Make setSP() to abstract method > > src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/riscv64/RISCV64Frame.java > line 272: > >> 270: if (cb.isUpcallStub()) { >> 271: return senderForUpcallStub(map, (UpcallStub)cb); >> 272: } else { > > Hi, > I tried this on `linux-riscv64` platform and I witnessed test failure when > running `serviceability/sa/TestJhsdbJstackWithVirtualThread.java`: > > java.lang.RuntimeException: 'must have non-zero frame size' found in stdout > at > jdk.test.lib.process.OutputAnalyzer.shouldNotContain(OutputAnalyzer.java:299) > at > TestJhsdbJstackWithVirtualThread.runJstack(TestJhsdbJstackWithVirtualThread.java:63) > at > TestJhsdbJstackWithVirtualThread.main(TestJhsdbJstackWithVirtualThread.java:74) > at > java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) > at java.base/java.lang.reflect.Method.invoke(Method.java:565) > at > com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:335) > at java.base/java.lang.Thread.run(Thread.java:1527) > > JavaTest Message: Test threw exception: java.lang.RuntimeException > JavaTest Message: shutting down test > > > I guess you might want to add following add-on change. I see aarch64 and > amd64 has a similar frame size check before invoking `senderForCompiledFrame` > method. > > diff --git > a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/riscv64/RISCV64Frame.java > > b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/riscv64/RISCV64Frame.java > index 67b4314a3c7..a35c0735979 100644 > --- > a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/riscv64/RISCV64Frame.java > +++ > b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/riscv64/RISCV64Frame.java > @@ -269,7 +269,7 @@ public Frame sender(RegisterMap regMap, CodeBlob cb) { > if (cb != null) { > if (cb.isUpcallStub()) { > return senderForUpcallStub(map, (UpcallStub)cb); > - } else { > + } else if (cb.getFrameSize() > 0) { > return senderForCompiledFrame(map, cb); > } > }
Thanks a lot! You are right. I applied that change to both RISC-V and PPC64. Could you check again? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/30107#discussion_r2901153961
