[gnome-continuous-yocto/gnomeostree-3.28-rocko: 6370/8267] bitbake: cooker: ensure graceful exit after exception during BuildCompleted handler



commit 6964efddd31c479386d1643c1025bc102710392f
Author: Paul Eggleton <paul eggleton linux intel com>
Date:   Wed Jun 14 12:10:25 2017 +0200

    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 <paul eggleton linux intel com>
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>

 bitbake/lib/bb/cooker.py |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index 6a1b649..479dc5a 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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]