On Thu, Jan 21, 2021 at 01:31:46AM +0000, Bertrand Jacquin wrote:
> glibc < 2.10 requires _GNU_SOURCE in order to make use of strsignal(),
> otherwise leading to SEGV at runtime.
> 
>   $ make V=1 TARGET=linux-glibc-legacy USE_THREAD= USE_ACCEPT4=
>   ..
>   src/mworker.c: In function 'mworker_catch_sigchld':
>   src/mworker.c:285: warning: implicit declaration of function 'strsignal'
>   src/mworker.c:285: warning: pointer/integer type mismatch in conditional 
> expression
>   ..
> 
>   $ make V=1 reg-tests REGTESTS_TYPES=slow,default
>   ..
>   ###### Test case: reg-tests/mcli/mcli_start_progs.vtc ######
>   ## test results in: 
> "/tmp/haregtests-2021-01-19_15-18-07.n24989/vtc.29077.28f6153d"
>   ---- h1    Bad exit status: 0x008b exit 0x0 signal 11 core 128
>   ---- h1    Assert error in haproxy_wait(), src/vtc_haproxy.c line 792:  
> Condition(*(&h->fds[1]) >= 0) not true.  Errno=0 Success
>   ..
> 
>   $ gdb ./haproxy /tmp/core.0.haproxy.30270
>   ..
>   Core was generated by `/root/haproxy/haproxy -d -W -S fd@8 -dM -f 
> /tmp/haregtests-2021-01-19_15-18-07.'.
>   Program terminated with signal 11, Segmentation fault.
>   #0  0x00002aaaab387a10 in strlen () from /lib64/libc.so.6
>   (gdb) bt
>   #0  0x00002aaaab387a10 in strlen () from /lib64/libc.so.6
>   #1  0x00002aaaab354b69 in vfprintf () from /lib64/libc.so.6
>   #2  0x00002aaaab37788a in vsnprintf () from /lib64/libc.so.6
>   #3  0x00000000004a76a3 in memvprintf (out=0x7fffedc680a0, format=0x5a5d58 
> "Current worker #%d (%d) exited with code %d (%s)\n", 
> orig_args=0x7fffedc680d0)
>       at src/tools.c:3868
>   #4  0x00000000004bbd40 in print_message (label=0x58abed "ALERT", 
> fmt=0x5a5d58 "Current worker #%d (%d) exited with code %d (%s)\n", 
> argp=0x7fffedc680d0)
>       at src/log.c:1066
>   #5  0x00000000004bc07f in ha_alert (fmt=0x5a5d58 "Current worker #%d (%d) 
> exited with code %d (%s)\n") at src/log.c:1109
>   #6  0x0000000000534b7b in mworker_catch_sigchld (sh=<value optimized out>) 
> at src/mworker.c:293
>   #7  0x0000000000556af3 in __signal_process_queue () at src/signal.c:88
>   #8  0x00000000004f6216 in signal_process_queue () at 
> include/haproxy/signal.h:39
>   #9  run_poll_loop () at src/haproxy.c:2859
>   #10 0x00000000004f63b7 in run_thread_poll_loop (data=<value optimized out>) 
> at src/haproxy.c:3028
>   #11 0x00000000004faaac in main (argc=<value optimized out>, 
> argv=0x7fffedc68498) at src/haproxy.c:904
> 
> See: https://man7.org/linux/man-pages/man3/strsignal.3.html

Thanks, merged. I've added the missing backport info in the commit message and 
renamed the worker tag by mworker.

-- 
William Lallemand

Reply via email to