BUG/MINOR: mworker: wrong signals during startup

Since the new master-worker model in 3.1, signals are registered in
step_init_3(). However, those signals were supposed to be registered
only for the worker or the standalone mode. It would call the wrong
callback in the master even during configuration parsing.

The patch set the signals handler to NULL for the master so it does
nothing until they really are registered.

Must be backported as far as 3.1.
This commit is contained in:
William Lallemand 2025-11-18 10:23:13 +01:00
parent 709cde6d08
commit 9bf01a0d29

View File

@ -2452,11 +2452,17 @@ static void step_init_2(int argc, char** argv)
*/ */
static void step_init_3(void) static void step_init_3(void)
{ {
if (master) {
signal_register_fct(SIGQUIT, dump, SIGQUIT); signal_register_fct(SIGQUIT, NULL, 0);
signal_register_fct(SIGUSR1, sig_soft_stop, SIGUSR1); signal_register_fct(SIGUSR1, NULL, 0);
signal_register_fct(SIGHUP, sig_dump_state, SIGHUP); signal_register_fct(SIGHUP, NULL, 0);
signal_register_fct(SIGUSR2, NULL, 0); signal_register_fct(SIGUSR2, NULL, 0);
} else {
signal_register_fct(SIGQUIT, dump, SIGQUIT);
signal_register_fct(SIGUSR1, sig_soft_stop, SIGUSR1);
signal_register_fct(SIGHUP, sig_dump_state, SIGHUP);
signal_register_fct(SIGUSR2, NULL, 0);
}
/* Always catch SIGPIPE even on platforms which define MSG_NOSIGNAL. /* Always catch SIGPIPE even on platforms which define MSG_NOSIGNAL.
* Some recent FreeBSD setups report broken pipes, and MSG_NOSIGNAL * Some recent FreeBSD setups report broken pipes, and MSG_NOSIGNAL