From 984c23f7d7d18464a060aa66be7c02abb8266a08 Mon Sep 17 00:00:00 2001 From: Shane Wang Date: Fri, 30 Mar 2012 17:12:41 +0800 Subject: [PATCH] runqueue: wait and deal with those sub-processes as soon as they are os.killed() when "Force stop" When "Force stop" is performed during the build stage, after os.kill() kills the build sub-processes, there are many python processes in the system. In Hob, when the user initiates a new build, os.waitpid() in runqueue_process_waitpid() will be called, and the pids of those processes will be returned as result[0], then self.build_pids[result[0]] will throw KeyError exception because now for the new build self.build_pids is empty. This patch is to address the above issue to collect the results and handle the sub-processes as soon as they are killed. [Yocto #2186] (Bitbake rev: e9f4ca467e795bbc520d12b0e7a5985b6ff0a20e) Signed-off-by: Shane Wang Signed-off-by: Richard Purdie --- bitbake/lib/bb/runqueue.py | 1 + 1 file changed, 1 insertion(+) diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 69705481a0..b870caff4e 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py @@ -1068,6 +1068,7 @@ class RunQueueExecute: for k, v in self.build_pids.iteritems(): try: os.kill(-k, signal.SIGTERM) + os.waitpid(-1, 0) except: pass for pipe in self.build_pipes: