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)
committerOlivier Houchard <cognet@ci0.org>
Wed, 18 Mar 2020 12:10:05 +0000 (13:10 +0100)
commitb0198cc4132381910cdeb9b5a867632b8b83262c
tree070d6bd74db0429c1be79c45ffd69572a2eaccc1
parentde01ea9878870dad5df1471743097851f53e7793
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.
src/signal.c