[bitbake-devel] [PATCH] bitbake-worker: Ensure pipe closure doesn't crash before killpg()

Richard Purdie richard.purdie at linuxfoundation.org
Wed Sep 9 21:44:37 UTC 2015


If the pipe is closed, we want to ensure that we kill any child processes
by triggering the sigterm handler before we exit. This code does that,
hopefully avoiding the remaining process left behind issues on the autobuilder.

Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

diff --git a/bitbake/bin/bitbake-worker b/bitbake/bin/bitbake-worker
index 0551d02..9a6b467 100755
--- a/bitbake/bin/bitbake-worker
+++ b/bitbake/bin/bitbake-worker
@@ -87,7 +87,11 @@ def worker_child_fire(event, d):
     global worker_pipe
 
     data = "<event>" + pickle.dumps(event) + "</event>"
-    worker_pipe.write(data)
+    try:
+        worker_pipe.write(data)
+    except IOError:
+        sigterm_handler(None, None)
+        raise
 
 bb.event.worker_fire = worker_fire
 





More information about the bitbake-devel mailing list