From fa070b9103659227c8e041445b28dac0c20996ec Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Tue, 5 Jul 2016 15:20:53 +0200 Subject: [PATCH 1/3] smbd/cleanupd: use smbd_reinit_after_fork() Using smbd_reinit_after_fork() rather then reinit_after_fork() ensures am_parent is reset to NULL. Otherwise, when exiting for some reason, the inherited atexit handler killkids() calls kill(0,SIGTERM) terminating our whole process group including the main smbd. Bug: https://bugzilla.samba.org/show_bug.cgi?id=12016 Signed-off-by: Ralph Boehme Reviewed-by: Volker Lendecke (cherry picked from commit 3a0c16b08c7dcfe389fbc429aae734ff52c84166) --- source3/smbd/server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source3/smbd/server.c b/source3/smbd/server.c index b7948b4..074d376 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -478,7 +478,7 @@ static bool cleanupd_init(struct messaging_context *msg, bool interactive, close(up_pipe[0]); - status = reinit_after_fork(msg, ev, true, "cleanupd"); + status = smbd_reinit_after_fork(msg, ev, true, "cleanupd"); if (!NT_STATUS_IS_OK(status)) { DBG_WARNING("reinit_after_fork failed: %s\n", nt_errstr(status)); -- 2.7.4 From dfc72104a735b3fd44bb8a318e1049fc3f255666 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Tue, 5 Jul 2016 15:37:53 +0200 Subject: [PATCH 2/3] smbd/notifyd: use smbd_reinit_after_fork() Using smbd_reinit_after_fork() rather then reinit_after_fork() ensures am_parent is reset to NULL. Otherwise, when exiting for some reason, the inherited atexit handler killkids() calls kill(0,SIGTERM) terminating our whole process group including the main smbd. Bug: https://bugzilla.samba.org/show_bug.cgi?id=12016 Signed-off-by: Ralph Boehme Reviewed-by: Volker Lendecke (cherry picked from commit bb90a8484a734b76ddd4d270f31fcdb4ae6cc48d) --- source3/smbd/server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 074d376..e6c6c33 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -396,7 +396,7 @@ static bool smbd_notifyd_init(struct messaging_context *msg, bool interactive) return true; } - status = reinit_after_fork(msg, ev, true, "smbd-notifyd"); + status = smbd_reinit_after_fork(msg, ev, true, "smbd-notifyd"); if (!NT_STATUS_IS_OK(status)) { DEBUG(1, ("%s: reinit_after_fork failed: %s\n", __func__, nt_errstr(status))); -- 2.7.4 From d6dfa6d222ac22a491a54f0d2d0c508973eb48ff Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Tue, 5 Jul 2016 15:38:31 +0200 Subject: [PATCH 3/3] s3-rpc_server/mdssd: use smbd_reinit_after_fork() Using smbd_reinit_after_fork() rather then reinit_after_fork() ensures am_parent is reset to NULL. Otherwise, when exiting for some reason, the inherited atexit handler killkids() calls kill(0,SIGTERM) terminating our whole process group including the main smbd. Bug: https://bugzilla.samba.org/show_bug.cgi?id=12016 Signed-off-by: Ralph Boehme Reviewed-by: Volker Lendecke Autobuild-User(master): Volker Lendecke Autobuild-Date(master): Mon Jul 11 02:02:33 CEST 2016 on sn-devel-144 (cherry picked from commit 6efd0af5e8d8ee81b5f53afb126d87950088b7cd) --- source3/rpc_server/mdssd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source3/rpc_server/mdssd.c b/source3/rpc_server/mdssd.c index f76d13e..710b377 100644 --- a/source3/rpc_server/mdssd.c +++ b/source3/rpc_server/mdssd.c @@ -667,7 +667,7 @@ void start_mdssd(struct tevent_context *ev_ctx, return; } - status = reinit_after_fork(msg_ctx, ev_ctx, true, "mdssd-master"); + status = smbd_reinit_after_fork(msg_ctx, ev_ctx, true, "mdssd-master"); if (!NT_STATUS_IS_OK(status)) { DEBUG(0,("reinit_after_fork() failed\n")); smb_panic("reinit_after_fork() failed"); -- 2.7.4