On Sat, 21 Feb 2026 00:41:50 GMT, Yasumasa Suenaga <[email protected]> wrote:
> `TEST=serviceability/sa/TestJhsdbJstackMixedWithVDSOCallCore.java` fails if
> `/lib/modules/<version>/vdso/vdso64.so` is missing. (Seems that is the case
> on default Debian installation.)
>
>
> java.util.NoSuchElementException: No value present
> at java.base/java.util.Optional.get(Optional.java:147)
> at jdk.test.lib.SA.SATestUtils.getDebugInfo(SATestUtils.java:332)
> at
> TestJhsdbJstackMixedWithVDSOCallCore.checkVDSODebugInfo(TestJhsdbJstackMixedWithVDSOCallCore.java:73)
> at
> TestJhsdbJstackMixedWithVDSOCallCore.main(TestJhsdbJstackMixedWithVDSOCallCore.java:85)
> 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)
>
>
> I could reproduce same problem on WSL 2 (kernel
> 6.6.87.2-microsoft-standard-WSL2). The test should be skipped if vDSO library
> not found.
test/lib/jdk/test/lib/SA/SATestUtils.java line 339:
> 337: exists = Files.exists(debuginfoPath);
> 338: } catch (NoSuchElementException _) {
> 339: // return null if vDSO not found.
I'm pretty sure the issue is "readelf" is returning an error because the
library is not found. Would it be better to check proc.exitValue() for 1 to
indicate failure? Would you ever expect "Build ID:" to be missing from the
output if readelf succeeded?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/29854#discussion_r2835629571