Description of problem: rhel-8 ltrace (ltrace-0.7.91-28.el8) sometimes traces an unexpected SIGILL along with "Couldn't read registers" messages when tracing the testcase below on aarch64: [root@hpe-apollo-cn99xx-14-vm-10 random-apps]# cat mthd2.c #include <stdio.h> #include <pthread.h> #include <unistd.h> #include <sys/types.h> #include <signal.h> #define NTHD 60 int thd_no; long sub_func(void) { uid_t uid; printf("sub-thread created: %d\n", ++thd_no); for (;;) { uid = getuid(); sleep(1); } return (long)uid; } void *sub_thd(void *c) { sub_func(); } main(int argc, char *argv[]) { int i; pthread_t thd[NTHD]; printf("test start...\n"); for (i = 0; i < NTHD; i++) { pthread_create(&thd[i], NULL, sub_thd, NULL); } } [root@hpe-apollo-cn99xx-14-vm-10 random-apps]# gcc mthd2.c -lpthread -o mthd2 mthd2.c:31:1: warning: return type defaults to ‘int’ [-Wimplicit-int] main(int argc, char *argv[]) ^~~~ [root@hpe-apollo-cn99xx-14-vm-10 random-apps]# ltrace -f ./mthd2 (...) [pid 1646438] pthread_create(0xffffe89b1830, 0, 0x4007e8, 0 <unfinished ...> [pid 1646497] printf(0x400928, 59, 0xffff6c41f1e0, 0x6ccc1f9df9b51a41 <unfinished ...> [pid 1646496] getuid(23, 0, 0xebf26c795e99b600, 0xffff6cc2f8e0sub-thread created: 59 <unfinished ...> [pid 1646497] <... printf resumed> ) = 23 [pid 1646497] getuid(23, 0, 0xebf26c795e99b600, 0xffff6c41f8e0 <unfinished ...> [pid 1646438] <... pthread_create resumed> ) = 0 get_instruction_pointer: Couldn't read registers of 1646498. [pid 1646498] --- SIGILL (Illegal instruction) --- get_instruction_pointer: Couldn't read registers of 1646488. syscall_p: Couldn't read registers of 1646488. [pid 1646496] +++ exited (status 0) +++ [pid 1646494] +++ exited (status 0) +++ [pid 1646491] +++ exited (status 0) +++ [pid 1646487] +++ exited (status 0) +++ (...) [pid 1646438] +++ exited (status 0) +++ [root@hpe-apollo-cn99xx-14-vm-10 random-apps]# Version-Release number of selected component (if applicable): ltrace-0.7.91-28.el8.aarch64 RHEL-8.3.0-20200415.n.0 How reproducible: Intermittently Steps to Reproduce: 1. gcc mthd2.c -lpthread -o mthd2 2. ltrace -f ./mthd2
I doubt we will have the resources to ever fix this, and given the lack of upstream resources, I doubt anyone else will fix it either. As there doesn't appear to be a customer case attached to this, I resort to closing it WONTFIX. Please update the test case to reflect that this spurious failure may happen in the future so this bug doesn't get continuously re-opened ;-)