From 8625f83e383d3d30c1cb44d6293cc302728692cd Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 31 Jul 2017 11:30:56 +0100 Subject: 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 --- bitbake/lib/bb/daemonize.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'bitbake/lib/bb/daemonize.py') diff --git a/bitbake/lib/bb/daemonize.py b/bitbake/lib/bb/daemonize.py index 8380828a17..a4664ad76b 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) -- cgit v1.2.3-54-g00ecf