From 268da271cc2955400fa0068294a64a75e0422cee Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Fri, 24 Apr 2015 10:31:16 -0500 Subject: [PATCH] core: treat ECHILD as child already terminated prevents: NetworkManager[2775]: [1429889302.113450] [NetworkManagerUtils.c:576] nm_utils_kill_child_async(): kill child process 'teamd' (3025): failed due to unexpected return value -1 by waitpid (No child processes, 10) after sending SIGTERM (15) --- src/NetworkManagerUtils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NetworkManagerUtils.c b/src/NetworkManagerUtils.c index ae2e83e48..25c419a79 100644 --- a/src/NetworkManagerUtils.c +++ b/src/NetworkManagerUtils.c @@ -566,7 +566,7 @@ nm_utils_kill_child_async (pid_t pid, int sig, guint64 log_domain, /* let's try again with waitpid, probably there was a race... */ ret = waitpid (pid, &status, 0); - if (ret > 0) { + if (ret > 0 || (ret < 0 && errno == ECHILD)) { nm_log_dbg (log_domain, LOG_NAME_FMT ": process %ld already terminated %s", LOG_NAME_ARGS, (long) ret, _kc_exit_to_string (buf_exit, status)); _kc_invoke_callback (pid, log_domain, log_name, callback, user_data, TRUE, status);