From 0564d413336e3dba210ce9e606da82d94c4ef013 Mon Sep 17 00:00:00 2001 From: William Lallemand Date: Tue, 20 Nov 2018 17:36:53 +0100 Subject: [PATCH] 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. --- src/haproxy.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/haproxy.c b/src/haproxy.c index 6a1397a87..79de01b06 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);