From a4f077b1fe28994b3180a49a969a6d044b5114e1 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 21 Aug 2014 21:45:16 +0100 Subject: bitbake: knotty: Improve exception handling Currently, IOErrors are just passed over due to the broken Exception clause. A command like "bitbake X | " would break stdout triggering a traceback. With these changes we print the exceptions, shut down the server gracefully and exit which is a much nicer behaviour and is less confusion to the user. (Bitbake rev: 9544108f7b413038d871ce6ca88232de2f2434d9) Signed-off-by: Richard Purdie --- bitbake/lib/bb/ui/knotty.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'bitbake/lib/bb/ui/knotty.py') diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py index 746dcf462a..bb6d4cbbec 100644 --- a/bitbake/lib/bb/ui/knotty.py +++ b/bitbake/lib/bb/ui/knotty.py @@ -508,6 +508,10 @@ def main(server, eventHandler, params, tf = TerminalFilter): # ignore interrupted io if ioerror.args[0] == 4: pass + sys.stderr.write(str(ioerror)) + if not params.observe_only: + _, error = server.runCommand(["stateForceShutdown"]) + main.shutdown = 2 except KeyboardInterrupt: termfilter.clearFooter() if params.observe_only: @@ -526,7 +530,11 @@ def main(server, eventHandler, params, tf = TerminalFilter): logger.error("Unable to cleanly shutdown: %s" % error) main.shutdown = main.shutdown + 1 pass - + except Exception as e: + sys.stderr.write(str(e)) + if not params.observe_only: + _, error = server.runCommand(["stateForceShutdown"]) + main.shutdown = 2 summary = "" if taskfailures: summary += pluralise("\nSummary: %s task failed:", -- cgit v1.2.3-54-g00ecf