https://bugs.kde.org/show_bug.cgi?id=506971

            Bug ID: 506971
           Summary: LTP 20250530 amd64 meta bug
    Classification: Developer tools
           Product: valgrind
      Version First 3.25.0
       Reported In:
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]
        Depends on: 309554, 331311, 369032, 418756, 506596, 506806,
                    506813, 506816, 506910, 506928, 506929, 506930, 506970
  Target Milestone: ---

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


Referenced Bugs:

https://bugs.kde.org/show_bug.cgi?id=309554
[Bug 309554] Unhandled syscall remap_file_pages (216)
https://bugs.kde.org/show_bug.cgi?id=331311
[Bug 331311] Valgrind shows open files in /proc/self/fd that don't work for the
process
https://bugs.kde.org/show_bug.cgi?id=369032
[Bug 369032] WARNING: unhandled amd64-linux syscall: 205 (set_thread_area)
https://bugs.kde.org/show_bug.cgi?id=418756
[Bug 418756] MAP_FIXED_NOREPLACE mmap flag unsupported
https://bugs.kde.org/show_bug.cgi?id=506596
[Bug 506596] arch_prctl ARCH_SET_CPUID/ARCH_GET_CPUID don't work
https://bugs.kde.org/show_bug.cgi?id=506806
[Bug 506806] execveat with AT_FDCWD and relative path goes wrong
https://bugs.kde.org/show_bug.cgi?id=506813
[Bug 506813] execveat wrapper need to do more checking
https://bugs.kde.org/show_bug.cgi?id=506816
[Bug 506816] futex2, futex_waitv WARNING: unhandled amd64-linux syscall: 449
https://bugs.kde.org/show_bug.cgi?id=506910
[Bug 506910] openat with RESOLVE_NO_MAGICLINKS succeeds on /proc/self/exe
https://bugs.kde.org/show_bug.cgi?id=506928
[Bug 506928] ustat syscall not wrapped
https://bugs.kde.org/show_bug.cgi?id=506929
[Bug 506929] sysfs syscall not wrapped
https://bugs.kde.org/show_bug.cgi?id=506930
[Bug 506930] valgrind allows SIGKILL being reset to SIG_DFL
https://bugs.kde.org/show_bug.cgi?id=506970
[Bug 506970] mmap needs an EBADF fd_allowed check
-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to