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>
This commit is contained in:
Richard Purdie
2017-07-31 11:30:56 +01:00
parent 3010e4e7cf
commit 8625f83e38

View File

@@ -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)