[SCM] Samba Shared Repository - branch v3-2-test updated - release-3-2-0pre2-2326-g6da910c

Jeremy Allison jra at samba.org
Wed May 14 21:11:51 GMT 2008


The branch, v3-2-test has been updated
       via  6da910cc1c6baccbb143f0b2d347e31e9f84c35b (commit)
      from  4d30a6bff9ce8e826f0109e99021d6683ec4299f (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test


- Log -----------------------------------------------------------------
commit 6da910cc1c6baccbb143f0b2d347e31e9f84c35b
Author: Jeremy Allison <jra at samba.org>
Date:   Wed May 14 14:11:26 2008 -0700

    Fix bug #5464. Pointed out by Herb @ Connectathon. In fork_domain_child() we call :
    
    CatchChild();
    
    *before* we fork the domain child. This call establishes a signal handler that
    eats SIGCLD signals and doesn't call sys_select_signal() as the main daemon
    SIGCLD handler should do. This causes the parent to ignore dead children and
    time out, instead of calling winbind_child_died() on receipt of the signal. The
    correct fix is to move the CatchChild call into the child code after the fork.
    
    Jeremy.

-----------------------------------------------------------------------

Summary of changes:
 source/winbindd/winbindd_dual.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/winbindd/winbindd_dual.c b/source/winbindd/winbindd_dual.c
index 1d741be..d465801 100644
--- a/source/winbindd/winbindd_dual.c
+++ b/source/winbindd/winbindd_dual.c
@@ -982,9 +982,6 @@ static bool fork_domain_child(struct winbindd_child *child)
 	ZERO_STRUCT(state);
 	state.pid = sys_getpid();
 
-	/* Stop zombies */
-	CatchChild();
-
 	child->pid = sys_fork();
 
 	if (child->pid == -1) {
@@ -1006,6 +1003,9 @@ static bool fork_domain_child(struct winbindd_child *child)
 
 	/* Child */
 
+	/* Stop zombies in children */
+	CatchChild();
+
 	state.sock = fdpair[0];
 	close(fdpair[1]);
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list