[bitbake-devel] [PATCH 1/2] runqueue: wait and deal with those <defunct> sub-processes as soon as they are os.killed() when "Force stop"
Shane Wang
shane.wang at intel.com
Fri Mar 30 09:12:41 UTC 2012
When "Force stop" is performed during the build stage, after os.kill() kills the build sub-processes, there are many <defunct> 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 <defunct> 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]
Signed-off-by: Shane Wang <shane.wang at intel.com>
---
bitbake/lib/bb/runqueue.py | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index 6970548..b870caf 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:
--
1.7.6
More information about the bitbake-devel
mailing list