The following are the remaining LTP 20250530 failures on amd64 - arch_prctl01 ARCH_SET_CPUID/ARCH_GET_CPUID don't work https://bugs.kde.org/show_bug.cgi?id=506596 - clock_gettime04 diff is: +vdso_helpers.c:27: TINFO: Couldn't find AT_SYSINFO_EHDR +vdso_helpers.c:72: TINFO: Couldn't find vdso_gettime() This is because vdso_helpers.c check whether it can find AT_SYSINFO_EHDR which valgrind filters out in setup_client_stack in coregrind/m_initimg/initimg-linux.c. - clone05 fails because vfork should suspend the parent till the child is done. Not fully analyzed yet. - clone08 fails because valgrind doesn't support CLONE_VM without VKI_CLONE_VFORK or VKI_CLONE_FS and VKI_CLONE_FILES. Added to ltp-excludes.txt. - close_range02 fails because it calls clone with just CLONE_FILES, but without CLONE_VM and CLONE_FS. Added to ltp-excludes.txt - execveat01 Looks like we aren't handling AT_FDCWD with a relative path correctly. https://bugs.kde.org/show_bug.cgi?id=506806 - execveat02 The following two subtests fail: * 2) execveat() fails and returns EINVAL if flag specified is invalid. * 3) execveat() fails and returns ELOOP if the file identified by dirfd and pathname is a symbolic link and flag includes AT_SYMLINK_NOFOLLOW. It looks like these checks are done for relative paths, but not for absolute paths. https://bugs.kde.org/show_bug.cgi?id=506813 - fcntl13 - fcntl13_64 Warning: unimplemented fcntl command: 999 Fixed by commit aec4871f7c9deed31f5d5606e4f9d07b43a448ec Suppress unimplemented fcntl command warning with -q - fcntl14 - fcntl14_64 - fcntl34 - fcntl34_64 - fcntl36 - fcntl36_64 Test timeouted, sending SIGKILL! They do pass with export LTP_TIMEOUT_MUL=5 . But that takes too long. Added to ltp-excludes.txt - fork_procs Sometimes times out under memcheck, but not always. Should we export LTP_TIMEOUT_MUL=2? - futex_waitv01 - futex_waitv02 - futex_waitv03 futex2, futex_waitv WARNING: unhandled amd64-linux syscall: 449 https://bugs.kde.org/show_bug.cgi?id=506816 - getcpu02 The difference is how it PASSes: getcpu02.c:35: TINFO: Test cpu_id outside process address space getcpu02.c:53: TPASS: getcpu() caused SIGSEGV getcpu02.c:35: TINFO: Test node_id outside process address space getcpu02.c:53: TPASS: getcpu() caused SIGSEGV But under valgrind (--tool=none): getcpu02.c:35: TINFO: Test cpu_id outside process address space getcpu02.c:45: TPASS: getcpu(tc->cpu_id, tc->node_id) : EFAULT (14) getcpu02.c:35: TINFO: Test node_id outside process address space getcpu02.c:45: TPASS: getcpu(tc->cpu_id, tc->node_id) : EFAULT (14) Needs more investigation. - ioctl01 Warning: noted but unhandled ioctl 0x98967f with no direction hints. This is a deliberate non-existing ioctl to check if the return value is ENOTTY (not EINVAL). Maybe we can print our warning from the POST handler if the ret value != ENOTTY? - kcmp03 clone call had CLONE_VM flags set Added to ltp-excludes.txt. - kill11 Test timeouted, sending SIGKILL! This is when testing SIGSTKFLT. And then it also tries SIGSYS. https://bugs.kde.org/show_bug.cgi?id=506890 - mallinfo02 TFAIL: malloc uses sbrk when size >= 128k Checks hblks field, which we never update. Not sure if this is a good/real testcase. - mallinfo2_01 We should implement and override mallinfo2 like we do mallinfo. https://bugs.kde.org/show_bug.cgi?id=506967 - mlock03 parses /proc/self/maps and mlocks ranges (which might fail but are just reported with TINFO) with valgrind the maps are different so the TINFOs are different. The actual test passes. So we have to ignore all TINFOs. - mmap04 creates mappings and then checks them in /proc/self/maps Do we have to create a fake /proc/self/maps ? - mmap08 mmap08.c:28: TFAIL: mmap(NULL, page_sz, PROT_WRITE, MAP_FILE | MAP_SHARED, fd, 0) expected EBADF: EINVAL (22) The test closes fd before calling mmap and expects EBADF not EINVAL. https://bugs.kde.org/show_bug.cgi?id=506970 - mmap17 mmap17.c:59: TFAIL: mmap failed, with unexpected error code, expected EEXIST:EACCES (13) Uses MAP_FIXED_NOREPLACE. Tries to check that mmap at an exisiting mapping fails with EEXIST, not EACCES. https://bugs.kde.org/show_bug.cgi?id=418756 - munlockall01 munlockall01.c:25: TBROK: Could not lock memory using mlockall():ENOMEM (12) Works when run with priviliges, so I assume valgrind loads too much into memory for mlockall to work? - nanosleep01 Works locally. - openat202 openat202.c:62: TFAIL: resolve-no-magiclinks: openat2() passed unexpectedly openat succeeds in opening /proc/self/exe even when RESOLVE_NO_MAGICLINKS is given. Probably because /proc/self/exe is a special file under valgrind. https://bugs.kde.org/show_bug.cgi?id=506910 - personality01 Works locally. - pipe07 pipe07.c:76: TFAIL: exp_num_pipes (1014) != num_pipe_fds (1020) Goes through /proc/self/fd to count file descriptors, this shows a couple more because we don't virtualize /proc/self/fd https://bugs.kde.org/show_bug.cgi?id=331311 - pipe13 Works locally - pipe15 pipe15.c:62: TCONF: NOFILE limit max too low: 1024 < 1024 (that message is wrong it tests nfd.rlim_max < pipe_count * 2 + 3) The problem is that nfd.rlim_max is 524288 without valgrind, but only 1024 under valgrind (equal to pipe_count). As returned by getrlimit RLIMIT_NOFILE. This happens because in coregrind/m_main.c (setup_file_descriptors) we setup VG_(fd_soft_limit) and VG_(fd_hard_limit) to rl.rlim_cur - N_RESERVED_FDS We could be a little bit more generous in setup_file_descriptors (if rlim_max allows it, maybe make rlim_cur * 4 ?) or run this test with ulimit -n 3000. - ppoll01 commit 300d541a82d9966e833e4db9028011121253a19b Check ppoll ufds array is safe to deref before checking fd members - prctl10 commit e113cde88cb0f588a76d8ceaef2ce2a630d3b9a9 auxprogs/filters/prctl10 add (child) core dump filter ptrace01 ptrace05 ptrace09 - remap_file_pages01 - remap_file_pages02 remap_file_pages is not wrapped https://bugs.kde.org/show_bug.cgi?id=309554 - setsockopt10 Fails also without valgrind. Should fail the same under valgrind. But because we run quickly after each other a socket port cannot be bound (yet) causing the output to be different. We should look into why this test fails natively. - semop01 Works locally - set_thread_area01 get_thread_area and set_thread_area are only wrapped for i386 and mips, not for amd64. https://bugs.kde.org/show_bug.cgi?id=369032 - shmctl05 unhandled amd64-linux syscall: 216 shmctl05.c:47: TCONF: syscall(216) __NR_remap_file_pages not supported on your arch https://bugs.kde.org/show_bug.cgi?id=309554 - shmget03 Works locally. - sighold02 Fails because it want to set the signal handler for real time sig 64, the last one, which we use as VG_SIGVGKILL. Not clear how we would fix this. The test simply goes to NSIG. It does check SIGRTMIN. If we could make it also check SIGRTMAX then we could override __libc_current_sigrtmax (see signal.h). - signal01 signal01.c:56: TFAIL: (long)signal(SIGKILL, tc->sighandler) succeeded Should fail with EINVAL (SIGKILL can not be reset to default) https://bugs.kde.org/show_bug.cgi?id=506930 - sysctl04 Not investigated yet. - sysfs01 - sysfs02 - sysfs03 - sysfs04 - sysfs05 sysfs syscall not wrapped syscall is weird and deprecated https://bugs.kde.org/show_bug.cgi?id=506929 - ustat01 - ustat02 ustat syscall not wrapped syscall is deprecated, so probably unused in real programs https://bugs.kde.org/show_bug.cgi?id=506928 - waitpid01 Doesn't handle SIGSYS https://bugs.kde.org/show_bug.cgi?id=506890
- clone302 ../../../../include/lapi/sched.h:80: TCONF: syscall(435) __NR_clone3 not supported on your arch https://bugs.kde.org/show_bug.cgi?id=420906
mseal01 ../../../../include/lapi/pkey.h:51: TCONF: pkeys are not available for test Because we don't support RDPKRU/WRPKRU instructions. Our pkey_alloc always returns ENOSPC. mseal02.c:45: TFAIL: mseal(0x483d000, 18446744073709547521, 0) expected EINVAL: +ENOMEM (12) We should check for overflow first (EINVAL), then valid memory (ENOMEM). Fixed in commit d7743540064c58d3dcb850804fb29f742757d853 linux mseal PRE wrapper should First check for overflow
- eventfd2_03 sometimes fails with a different TINFO order eventfd2_03: diff -u log2err log3err: --- log2err 2025-08-02 13:36:29.936286548 +0000 +++ log3err 2025-08-02 13:36:30.233294160 +0000 @@ -5,8 +5,8 @@ eventfd2_03.c:36: TINFO: eventfd2_03.c:39: TINFO: eventfd2_03.c:36: TINFO: -eventfd2_03.c:39: TINFO: eventfd2_03.c:42: TINFO: +eventfd2_03.c:39: TINFO: eventfd2_03.c:45: TINFO: eventfd2_03.c:42: TINFO: eventfd2_03.c:45: TINFO: This probably comes from the fork children running in different order.
- faccessat01 faccessat01.c:49: TFAIL: faccessat(-100, faccessatdir/faccessatfile, R_OK, 0) failed: EBADF (9) - faccessat201 faccessat201.c:50: TPASS: faccessat2(3, faccessat2file, R_OK, 0) passed faccessat201.c:50: TFAIL: faccessat2(-1, /tmp/LTP_facejD0qP/faccessat2dir/faccessat2file, R_OK, 0) failed: EBADF (9) faccessat201.c:50: TFAIL: faccessat2(-100, faccessat2dir/faccessat2file, R_OK, 0) failed: EBADF (9) faccessat201.c:50: TPASS: faccessat2(3, faccessat2file, R_OK, 512) passed faccessat201.c:50: TFAIL: faccessat2(-1, /tmp/LTP_facejD0qP/faccessat2dir/faccessat2file, R_OK, 512) failed: EBADF (9) faccessat201.c:50: TFAIL: faccessat2(-100, faccessat2dir/faccessat2file, R_OK, 512) failed: EBADF (9) faccessat201.c:50: TFAIL: faccessat2(-100, faccessat2symlink, R_OK, 256) failed: EBADF (9) This seems to be introduced by commit bc66a6e865d952ac51ffb0e63c127ce7cd977b98 Add fd_allowed and POST_newFd_RES to all syscalls that use or return fds https://bugs.kde.org/show_bug.cgi?id=507853
- futimesat01 ==695142== Warning: invalid file descriptor -100 in syscall futimesat() futimesat01 5 TFAIL : futimesat01.c:85: futimesat() failed: TEST_ERRNO=EBADF(9): Bad file descriptor futimesat doesn't handle AT_FDCWD https://bugs.kde.org/show_bug.cgi?id=507868
- fchmodat01 - fchmodat02 fchmodat01.c:47: TFAIL: fchmodat(-100, fchmodatdir/fchmodatfile, 0600, 0) failed: EBADF (9) fchmodat02.c:55: TFAIL: fchmodat() with invalid flag expected EINVAL: EBADF (9) This also seems to cause a lot of arm64 LTP failures fchmodat fchmodat2 should handle AT_FDCWD and absolute paths https://bugs.kde.org/show_bug.cgi?id=507873