BUG/MEDIUM: mworker: wait again for signals when execvp fail

After execvp fails, the signals were ignored, preventing to try a reload
again. It is now fixed by reaching the top of the mworker_wait()
function once the execvp failed.
This commit is contained in:
William Lallemand 2017-11-15 19:02:56 +01:00 committed by Willy Tarreau
parent 722d4ca0dd
commit 2f8b31c2c6

View File

@ -670,6 +670,8 @@ static void mworker_wait()
int exitpid = -1; int exitpid = -1;
int status = 0; int status = 0;
restart_wait:
mworker_register_signals(); mworker_register_signals();
mworker_unblock_signals(); mworker_unblock_signals();
@ -679,6 +681,8 @@ static void mworker_wait()
int sig = caught_signal; int sig = caught_signal;
if (sig == SIGUSR2 || sig == SIGHUP) { if (sig == SIGUSR2 || sig == SIGHUP) {
mworker_reload(); mworker_reload();
/* should reach there only if it fail */
goto restart_wait;
} else { } else {
Warning("Exiting Master process...\n"); Warning("Exiting Master process...\n");
mworker_kill(sig); mworker_kill(sig);