mirror of
https://github.com/samba-team/samba.git
synced 2025-08-24 21:49:29 +03:00
Stop spamming the logs with "Could not remove pid XX from serverid.tdb" messages and initiating the cleanup function on every process death.
We now have many sub-processes from smbd that don't serve SMB1/SMB2 requests and don't register themselves in the serverid.tdb. Only initiate the cleanup from processes that were explicitly in the child list. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Thu May 31 04:44:09 CEST 2012 on sn-devel-104
This commit is contained in:
@ -416,6 +416,24 @@ static void remove_child_pid(struct smbd_parent_context *parent,
|
||||
struct smbd_child_pid *child;
|
||||
struct server_id child_id;
|
||||
|
||||
child_id = pid_to_procid(pid);
|
||||
|
||||
for (child = parent->children; child != NULL; child = child->next) {
|
||||
if (child->pid == pid) {
|
||||
struct smbd_child_pid *tmp = child;
|
||||
DLIST_REMOVE(parent->children, child);
|
||||
TALLOC_FREE(tmp);
|
||||
parent->num_children -= 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (child == NULL) {
|
||||
/* not all forked child processes are added to the children list */
|
||||
DEBUG(2, ("Could not find child %d -- ignoring\n", (int)pid));
|
||||
return;
|
||||
}
|
||||
|
||||
if (unclean_shutdown) {
|
||||
/* a child terminated uncleanly so tickle all
|
||||
processes to see if they can grab any of the
|
||||
@ -435,25 +453,10 @@ static void remove_child_pid(struct smbd_parent_context *parent,
|
||||
}
|
||||
}
|
||||
|
||||
child_id = pid_to_procid(pid);
|
||||
|
||||
if (!serverid_deregister(child_id)) {
|
||||
DEBUG(1, ("Could not remove pid %d from serverid.tdb\n",
|
||||
(int)pid));
|
||||
}
|
||||
|
||||
for (child = parent->children; child != NULL; child = child->next) {
|
||||
if (child->pid == pid) {
|
||||
struct smbd_child_pid *tmp = child;
|
||||
DLIST_REMOVE(parent->children, child);
|
||||
TALLOC_FREE(tmp);
|
||||
parent->num_children -= 1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* not all forked child processes are added to the children list */
|
||||
DEBUG(2, ("Could not find child %d -- ignoring\n", (int)pid));
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
|
Reference in New Issue
Block a user