On Sat, 7 Feb 2026 03:16:12 GMT, Chris Plummer <[email protected]> wrote:
>>> All the core file tests fail in this way.
>>
>> The failure happened except TestJhsdbJstackMixedWithVDSOCallCore.java? e.g.
>> TestJmapCore.java
>
>> > All the core file tests fail in this way.
>>
>> The failure happened except TestJhsdbJstackMixedWithVDSOCallCore.java? e.g.
>> TestJmapCore.java
>
> TestJhsdbJstackMixedWithVDSOCallCore.java is skipped:
>
> TEST RESULT: Passed. Skipped: jtreg.SkippedException: vDSO debuginfo not
> found (/lib/modules/5.15.0-308.179.6.3.el9uek.x86_64/vdso/vdso64.so)
>
> The path exists, so I guess it just doesn't have the needed debuginfo.
@plummercj Thanks a lot for sharing various information!
This error is caused by vDSO size.
On Rocky Linux 8.10 (kernel-4.18.0-553.el8_10.x86_64 at least), program headers
are as following:
Program Headers:
Type Offset VirtAddr PhysAddr
FileSiz MemSiz Flags Align
LOAD 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000f5e 0x0000000000000f5e R E 0x1000
DYNAMIC 0x00000000000003e0 0x00000000000003e0 0x00000000000003e0
0x0000000000000110 0x0000000000000110 R 0x8
NOTE 0x00000000000004f0 0x00000000000004f0 0x00000000000004f0
0x000000000000003c 0x000000000000003c R 0x4
GNU_EH_FRAME 0x000000000000052c 0x000000000000052c 0x000000000000052c
0x0000000000000044 0x0000000000000044 R 0x4
Load segment size is 0xf5e (3934 bytes), but vdso file size is 5232 bytes.
SA handles load segment only because it contains executable code. Each memory
segment should be aligned memory page (4KB in Linux), thus SA required 4KB for
vDSO, but actual memory segment size is 8KB because entire vDSO as ELF binary
is on memory.
Thus we have to treat vDSO as special case to load entire vDSO into memory map.
This PR works on both Rocky Linux 8 and Fedora 43.
@plummercj Could you run this PR on your machine again?
-------------
PR Comment: https://git.openjdk.org/jdk/pull/29610#issuecomment-3863877515