BUG/MEDIUM: wdt: Don't ignore WDTSIG and DEBUGSIG in __signal_process_queue().
authorOlivier Houchard <cognet@ci0.org>
Wed, 18 Mar 2020 12:10:05 +0000 (13:10 +0100)
committerWilly Tarreau <w@1wt.eu>
Tue, 31 Mar 2020 14:52:58 +0000 (16:52 +0200)
commit565ed0dc0465ad67891b4789f563db96c3143365
tree2a5f092aa1ad9d744de85179fdf5ff9a651e63b3
parenta27875ffb48725d277089b03c7e2e8380e4d5678
BUG/MEDIUM: wdt: Don't ignore WDTSIG and DEBUGSIG in __signal_process_queue().

When running __signal_process_queue(), we ignore most signals. We can't,
however, ignore WDTSIG and DEBUGSIG, otherwise that thread may end up
waiting for another one that could hold a glibc lock, while the other thread
wait for this one to enter debug_handler().
So make sure WDTSIG and DEBUGSIG aren't ignored, if they are defined.
This probably explains the watchdog deadlock described in github issue

This should be backported to 2.1, 2.0 and 1.9.

(cherry picked from commit b0198cc4132381910cdeb9b5a867632b8b83262c)
Signed-off-by: Willy Tarreau <w@1wt.eu>
src/signal.c