summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2019-12-19 11:20:30 +1300
committerRalph Boehme <slow@samba.org>2019-12-20 10:09:34 +0000
commit30cbc5b90e4951a0ea924c204ff73e15c9750ace (patch)
treebd91ec99390e73f007d882771538d09b0af3a596 /source4
parentb28d1dca86d33efac9d03b35c5c9804e02ddfb9a (diff)
downloadsamba-30cbc5b90e4951a0ea924c204ff73e15c9750ace.tar.gz
s4-smbd: Also restart prefork children lost to SIGKILL (-9)
Samba 4.10 and later versions have a process restart capability to greatly reduce the impact of crashes due to a NULL pointer de-reference or abort(). However SIGKILL was deliberatly omitted. Sadly this is the most likely case, due to the OOM killer, as raised here: https://lists.samba.org/archive/samba-technical/2019-November/134529.html Subsequent discussion (offline) has been to agree that we should restart in this case. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14221 Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org>
Diffstat (limited to 'source4')
-rw-r--r--source4/smbd/process_prefork.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/source4/smbd/process_prefork.c b/source4/smbd/process_prefork.c
index a7222079624..5667fb5f1ef 100644
--- a/source4/smbd/process_prefork.c
+++ b/source4/smbd/process_prefork.c
@@ -518,7 +518,8 @@ static void prefork_child_pipe_handler(struct tevent_context *ev,
DBG_ERR("Parent %d, Child %d terminated with signal %d\n",
getpid(), pid, status);
if (status == SIGABRT || status == SIGBUS || status == SIGFPE ||
- status == SIGILL || status == SIGSYS || status == SIGSEGV) {
+ status == SIGILL || status == SIGSYS || status == SIGSEGV ||
+ status == SIGKILL) {
prefork_restart(ev, rc);
}