s3: increase the log level for missing PIDs on SIGCHLD
authorDavid Disseldorp <ddiss@suse.de>
Wed, 16 Feb 2011 16:23:25 +0000 (17:23 +0100)
committerKarolin Seeger <kseeger@samba.org>
Thu, 18 Aug 2011 19:15:15 +0000 (21:15 +0200)
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 <vlendec@samba.org>
Autobuild-Date: Thu Feb 17 11:11:45 CET 2011 on sn-devel-104
(cherry picked from commit 9c12232f1ae36e00d04114ad73edd8ba3c2c6a5c)

Fix bug #8269 (smbd spams log with "Could not find child X -- ignoring"
messages).
(cherry picked from commit ba118ac287d49267dd2f346d4ddd2e590ebbe653)
(cherry picked from commit c943af7ff13c64343e5246b27a7416627bffd365)

source3/smbd/server.c

index 9c2709caf6ba49cc89862d77515b2daa641b0474..dbcf5fdb513e92c073749c6fb8329c4954b26a40 100644 (file)
@@ -235,7 +235,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));
 }
 
 /****************************************************************************