[gnome-continuous-yocto/gnomeostree-3.28-rocko: 7061/8267] bitbake: daemonize: Ensure child process exits safely
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-continuous-yocto/gnomeostree-3.28-rocko: 7061/8267] bitbake: daemonize: Ensure child process exits safely
- Date: Sun, 17 Dec 2017 05:43:09 +0000 (UTC)
commit 8625f83e383d3d30c1cb44d6293cc302728692cd
Author: Richard Purdie <richard purdie linuxfoundation org>
Date: Mon Jul 31 11:30:56 2017 +0100
bitbake: daemonize: Ensure child process exits safely
When we create the child, if an exception occurred it was transfering
back into the parent context. We don't want to do that us use a try/finally
to ensure we exit.
We need to ensure a traceback is printed and any queued UI messages which
may not have made it to the client UI at this point.
(Bitbake rev: dec1d2c26f6cb3ffeb44beaab0129cd531a6d08b)
Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>
bitbake/lib/bb/daemonize.py | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
---
diff --git a/bitbake/lib/bb/daemonize.py b/bitbake/lib/bb/daemonize.py
index 8380828..a4664ad 100644
--- a/bitbake/lib/bb/daemonize.py
+++ b/bitbake/lib/bb/daemonize.py
@@ -30,6 +30,7 @@ __version__ = "0.2"
import os # Miscellaneous OS interfaces.
import sys # System-specific parameters and functions.
import io
+import traceback
# Default daemon parameters.
# File mode creation mask of the daemon.
@@ -192,6 +193,10 @@ def createDaemon(function, logfile):
sys.stdout = open(logfile, 'a+')
sys.stderr = sys.stdout
- function()
-
- os._exit(0)
+ try:
+ function()
+ except Exception as e:
+ traceback.print_exc()
+ bb.event.print_ui_queue()
+ finally:
+ os._exit(0)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]