From: William Lallemand Date: Tue, 20 Nov 2018 16:36:53 +0000 (+0100) Subject: BUG/MEDIUM: mworker: unregister the signals of main() X-Git-Tag: v1.9-dev8~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0564d413336e3dba210ce9e606da82d94c4ef013;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: mworker: unregister the signals of main() The signal_register_fct() does not remove the handlers assigned to a signal, but add a new handler to a list. We accidentality inherited the handlers of the main() function in the master process which is a problem because they act on the proxies. The side effect was to stop the MASTER proxy which handle the master CLI on a SIGUSR1, and to display some debug info when doing a SIGHUP and a SIGQUIT. --- diff --git a/src/haproxy.c b/src/haproxy.c index 6a1397a879..79de01b061 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -862,6 +862,10 @@ static void mworker_loop() master = 1; + signal_unregister(SIGUSR1); + signal_unregister(SIGHUP); + signal_unregister(SIGQUIT); + signal_register_fct(SIGTERM, mworker_catch_sigterm, SIGTERM); signal_register_fct(SIGUSR1, mworker_catch_sigterm, SIGUSR1); signal_register_fct(SIGINT, mworker_catch_sigterm, SIGINT);