From 6964efddd31c479386d1643c1025bc102710392f Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Wed, 14 Jun 2017 12:10:25 +0200 Subject: bitbake: cooker: ensure graceful exit after exception during BuildCompleted handler If an event handler for bb.event.BuildCompleted fails, we still need to call finishAsyncCommand() or else BitBake will just exit immediately without showing any error summary, or worse in the case of memory resident mode BitBake will hang and if you Ctrl+C to break out, the command won't be marked as finished which means that no further commands will be able to be executed until the server is manually restarted. (Bitbake rev: 5639faa3eef55cc476a82e810e61ca228cbdf221) Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- bitbake/lib/bb/cooker.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 6a1b649f79..479dc5a114 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py @@ -1361,8 +1361,10 @@ class BBCooker: return False if not retval: - bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runtaskentries), buildname, targets, failures, interrupted), self.data) - self.command.finishAsyncCommand(msg) + try: + bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runtaskentries), buildname, targets, failures, interrupted), self.data) + finally: + self.command.finishAsyncCommand(msg) return False if retval is True: return True -- cgit v1.2.3-54-g00ecf