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.
This commit is contained in:
William Lallemand 2018-11-20 17:36:53 +01:00 committed by Willy Tarreau
parent 31a1c1d5e7
commit 0564d41333

View File

@ -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);