linux-test-project / ltp

Linux Test Project (mailing list: https://lists.linux.it/listinfo/ltp)
https://linux-test-project.readthedocs.io/
GNU General Public License v2.0
2.31k stars 1.01k forks source link

rt_sigsuspend01 segfault on Alpine 3.18 container (musl) #1087

Open richiejp opened 1 year ago

richiejp commented 1 year ago

The test appears to segfault just after receiving SIGALRM and before calling alarm(0) (setitimer). The instruction pointer is possibly at some weird location and GDB can't find the source lines or even disassemble the current location.

# strace -e setitimer,rt_sigaction,rt_sigprocmask,rt_sigsuspend -f rt_sigsuspend01
rt_sigprocmask(SIG_UNBLOCK, [RT_1 RT_2], NULL, 8) = 0
rt_sigaction(SIGALRM, {sa_handler=0x55dc6c6aa6c0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fcd994c45b7}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGUSR1, {sa_handler=0x55dc6c6aa650, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fcd994c45b7}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
tst_test.c:1684: TINFO: LTP version: 20230516
tst_test.c:1568: TINFO: Timeout per run is 0h 00m 30s
rt_sigaction(SIGINT, {sa_handler=0x55dc6c6aa680, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fcd994c45b7}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTERM, {sa_handler=0x55dc6c6aa680, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fcd994c45b7}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
setitimer(ITIMER_REAL, {it_interval={tv_sec=0, tv_usec=0}, it_value={tv_sec=30, tv_usec=0}}, {it_interval={tv_sec=0, tv_usec=0}, it_value={tv_sec=0, tv_usec=0}}) = 0
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1 RT_2], [], 8) = 0
rt_sigprocmask(SIG_BLOCK, ~[], ~[KILL STOP RTMIN RT_1 RT_2], 8) = 0
rt_sigprocmask(SIG_SETMASK, ~[KILL STOP RTMIN RT_1 RT_2], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], strace: Process 15392 attached
NULL, 8) = 0
[pid 15392] rt_sigprocmask(SIG_SETMASK, ~[KILL STOP RTMIN RT_1 RT_2], NULL, 8) = 0
[pid 15392] rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
[pid 15392] rt_sigaction(SIGALRM, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fcd994c45b7}, {sa_handler=0x55dc6c6aa6c0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fcd994c45b7}, 8) = 0
[pid 15392] rt_sigaction(SIGUSR1, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fcd994c45b7}, {sa_handler=0x55dc6c6aa650, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fcd994c45b7}, 8) = 0
[pid 15392] rt_sigaction(SIGTERM, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fcd994c45b7}, {sa_handler=0x55dc6c6aa680, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fcd994c45b7}, 8) = 0
[pid 15392] rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fcd994c45b7}, {sa_handler=0x55dc6c6aa680, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fcd994c45b7}, 8) = 0
[pid 15391] --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_USER, si_pid=15392, si_uid=0} ---
[pid 15391] setitimer(ITIMER_REAL, {it_interval={tv_sec=0, tv_usec=0}, it_value={tv_sec=30, tv_usec=0}}, {it_interval={tv_sec=0, tv_usec=0}, it_value={tv_sec=29, tv_usec=989844}}) = 0
[pid 15392] rt_sigaction(SIGALRM, {sa_handler=0x55dc6c6a9f00, sa_mask=[ALRM], sa_flags=SA_RESTORER, sa_restorer=0x7fcd994c45b7},  <unfinished ...>
[pid 15391] --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_USER, si_pid=15392, si_uid=0} ---
[pid 15392] <... rt_sigaction resumed>{sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fcd994c45b7}, 8) = 0
[pid 15391] setitimer(ITIMER_REAL, {it_interval={tv_sec=0, tv_usec=0}, it_value={tv_sec=30, tv_usec=0}},  <unfinished ...>
[pid 15392] rt_sigaction(SIGALRM, {sa_handler=0x55dc6c6a9f00, sa_mask=[ALRM], sa_flags=SA_RESTORER, sa_restorer=0x7fcd994c45b7},  <unfinished ...>
[pid 15391] <... setitimer resumed>{it_interval={tv_sec=0, tv_usec=0}, it_value={tv_sec=29, tv_usec=997192}}) = 0
[pid 15392] <... rt_sigaction resumed>{sa_handler=0x55dc6c6a9f00, sa_mask=[ALRM], sa_flags=SA_RESTORER, sa_restorer=0x7fcd994c45b7}, 8) = 0
[pid 15392] rt_sigaction(SIGALRM, {sa_handler=0x55dc6c6a9f10, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7ffc7e276428}, NULL, 8) = 0
[pid 15392] rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
[pid 15392] setitimer(ITIMER_REAL, {it_interval={tv_sec=0, tv_usec=0}, it_value={tv_sec=1, tv_usec=0}}, {it_interval={tv_sec=0, tv_usec=0}, it_value={tv_sec=0, tv_usec=0}}) = 0
[pid 15392] rt_sigsuspend([], 8)        = ? ERESTARTNOHAND (To be restarted if no handler)
[pid 15392] --- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---
[pid 15392] --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR, si_addr=0x7ffc7e276428} ---
[pid 15392] +++ killed by SIGSEGV (core dumped) +++
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_DUMPED, si_pid=15392, si_uid=0, si_status=SIGSEGV, si_utime=0, si_stime=0} ---
setitimer(ITIMER_REAL, {it_interval={tv_sec=0, tv_usec=0}, it_value={tv_sec=0, tv_usec=0}}, {it_interval={tv_sec=0, tv_usec=0}, it_value={tv_sec=28, tv_usec=763539}}) = 0
rt_sigaction(SIGTERM, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fcd994c45b7}, {sa_handler=0x55dc6c6aa680, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fcd994c45b7}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fcd994c45b7}, {sa_handler=0x55dc6c6aa680, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fcd994c45b7}, 8) = 0
tst_test.c:1628: TBROK: Test killed by SIGSEGV!

Summary:
passed   0
failed   0
broken   1
skipped  0
warnings 0
+++ exited with 2 +++