From 9c12232f1ae36e00d04114ad73edd8ba3c2c6a5c Mon Sep 17 00:00:00 2001 From: David Disseldorp Date: Wed, 16 Feb 2011 17:23:25 +0100 Subject: [PATCH] s3: increase the log level for missing PIDs on SIGCHLD Since the fix for bso#7836, the parent smbd is responsible for maintaining an up-to-date printcap cache. It does this by forking a child process to asynchronously fetch printcap data from CUPS. When the child process exits after fetching all printcap data, the parent smbd is sent SIGCHLD. This triggers smbd_sig_chld_handler() which looks for the exited process PID on a "children" list. Child smbd process PIDs are added to the "children" list to ensure cleanup on unclean shutdown and log level change notification messages. Printcap update process PIDs are not added to the list as they do not maintain any state that requires cleanup, nor do they wait on tevent for messages. Autobuild-User: Volker Lendecke Autobuild-Date: Thu Feb 17 11:11:45 CET 2011 on sn-devel-104 --- source3/smbd/server.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 10e8b624306..f4436bfad7a 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -294,7 +294,8 @@ static void remove_child_pid(pid_t pid, bool unclean_shutdown) } } - DEBUG(0, ("Could not find child %d -- ignoring\n", (int)pid)); + /* not all forked child processes are added to the children list */ + DEBUG(1, ("Could not find child %d -- ignoring\n", (int)pid)); } /**************************************************************************** -- 2.34.1