mirror of
https://github.com/samba-team/samba.git
synced 2025-03-27 22:50:26 +03:00
util-runcmd: ignore spurious ECHILD errors
when we get ECHILD in samba_runcmd it is because the parent has set SIGCHLD to SIG_IGN. In that case the child status information is lost. We then have to fallback on the logging of child error messages for any useful information on what happened to the child. A longer term fix is to stop using SIG_IGN for SIGCHLD in the standard process model of s4.
This commit is contained in:
parent
4f5298cbb4
commit
a9f5bfb3a5
@ -241,6 +241,20 @@ static void samba_runcmd_io_handler(struct tevent_context *ev,
|
||||
* stderr, assume its dead */
|
||||
pid_t pid = waitpid(state->pid, &status, 0);
|
||||
if (pid != state->pid) {
|
||||
if (errno == ECHILD) {
|
||||
/* this happens when the
|
||||
parent has set SIGCHLD to
|
||||
SIG_IGN. In that case we
|
||||
can only get error
|
||||
information for the child
|
||||
via its logging. We should
|
||||
stop using SIG_IGN on
|
||||
SIGCHLD in the standard
|
||||
process model.
|
||||
*/
|
||||
tevent_req_done(req);
|
||||
return;
|
||||
}
|
||||
DEBUG(0,("Error in waitpid() for child %s - %s \n",
|
||||
state->arg0, strerror(errno)));
|
||||
if (errno == 0) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user