Bug 5464 - SIGCLD Signal handler destroyed in fork_domain_child() call.
SIGCLD Signal handler destroyed in fork_domain_child() call.
Status: RESOLVED FIXED
Product: Samba 3.2
Classification: Unclassified
Component: Winbind
3.2.0
Other Linux
: P3 regression
: ---
Assigned To: Jeremy Allison
Samba QA Contact
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2008-05-14 15:55 UTC by Jeremy Allison
Modified: 2008-06-06 02:39 UTC (History)
0 users

See Also:


Attachments
Patch (610 bytes, patch)
2008-05-14 16:07 UTC, Jeremy Allison
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jeremy Allison 2008-05-14 15:55:13 UTC
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.

This bug also exists in 3.0 as well as 3.2. Needs fixing for 3.2 stable.

Jeremy.
Comment 1 Jeremy Allison 2008-05-14 16:07:56 UTC
Created attachment 3291 [details]
Patch
Comment 2 Karolin Seeger 2008-06-06 02:39:15 UTC
Patch is in v3-2-stable (c8c63401423cf15ba6b56) and will be included in 3.2.0rc2 and higher. Closing out bug report.