From patchwork Thu Mar 29 12:54:54 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [bitbake-devel, 5/8] runqueue.py: check results[0] in keys of build_pids before being used to avoid exceptions Date: Thu, 29 Mar 2012 12:54:54 -0000 From: Shane Wang X-Patchwork-Id: 24861 Message-Id: To: bitbake-devel@lists.openembedded.org [Yocto #2186] Signed-off-by: Shane Wang --- bitbake/lib/bb/runqueue.py | 20 ++++++++++++-------- 1 files changed, 12 insertions(+), 8 deletions(-) diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 6970548..67ad14b 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py @@ -1049,17 +1049,21 @@ class RunQueueExecute: result = os.waitpid(-1, os.WNOHANG) if result[0] == 0 and result[1] == 0: return None - task = self.build_pids[result[0]] - del self.build_pids[result[0]] - self.build_pipes[result[0]].close() - del self.build_pipes[result[0]] + task = None + if result[0] in self.build_pids.keys(): + task = self.build_pids[result[0]] + del self.build_pids[result[0]] + if result[0] in self.build_pipes.keys(): + self.build_pipes[result[0]].close() + del self.build_pipes[result[0]] # self.build_stamps[result[0]] may not exist when use shared work directory. if result[0] in self.build_stamps.keys(): del self.build_stamps[result[0]] - if result[1] != 0: - self.task_fail(task, result[1]>>8) - else: - self.task_complete(task) + if task: + if result[1] != 0: + self.task_fail(task, result[1]>>8) + else: + self.task_complete(task) return True def finish_now(self):