Commit 3f12887 ("MINOR: mworker: don't use children variable anymore")
introduced a regression.
The previous behavior was to send a signal to every children, whether or
not they are former children. Instead of this, we only send a signal to
the current children, so we don't try to kill -INT or -TERM all
processes during a reload.
No backport needed.
---
src/mworker.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mworker.c b/src/mworker.c
index 6b94c4ff4..b7bb859aa 100644
--- a/src/mworker.c
+++ b/src/mworker.c
@@ -54,7 +54,7 @@ static void mworker_kill(int sig)
list_for_each_entry(child, &proc_list, list) {
/* careful there, we must be sure that the pid > 0, we don't
want to emit a kill -1 */
- if ((child->options & (PROC_O_TYPE_WORKER|PROC_O_TYPE_PROG)) &&
(child->reloads == 0) && (child->pid > 0))
+ if ((child->options & (PROC_O_TYPE_WORKER|PROC_O_TYPE_PROG)) &&
(child->pid > 0))
kill(child->pid, sig);
}
}
--
2.21.0