From: Richard Purdie Date: Wed, 19 Mar 2014 11:29:12 +0000 (+0000) Subject: bitbake: runqueue: Don't catch all child return codes X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ea52b5e21b71e0731ea0b8356770691b4b93d5be;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git bitbake: runqueue: Don't catch all child return codes Catching all child exit status values is a bad idea. Setting an http sstate mirror is a great way to view that spectacularly break things. The previous change did have good code changes so don't revert those parts. (Bitbake rev: fa7ffb62d510ac1124ae7e08fa4d190a710f5b54) Signed-off-by: Richard Purdie --- diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index fa7a99fba1b..fc6bec11f90 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py @@ -914,10 +914,11 @@ class RunQueue: workerpipe.close() def sigchild_exception(self, *args, **kwargs): - pid = -1 - while pid: + for w in [self.worker, self.fakeworker]: + if not w: + continue try: - pid, status = os.waitpid(-1, os.WNOHANG) + pid, status = os.waitpid(w.pid, os.WNOHANG) if pid != 0 and not self.teardown: name = None if self.worker and pid == self.worker.pid: