From 42fa34142ea685f91115a551e74416ca28ef1c91 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sun, 6 Oct 2013 13:42:39 +0100 Subject: [PATCH] cooker/command: Add error state for the server and use for pre_serve errors Currently if errors occur when starting the PR service, there is a race that occurs since the UI runs various commands including starting builds before processing the CookerExit(). By adding the error state and refusing to run async commands in this mode, builds are prevented from starting and the UI reaches the exit code with the system shutting down cleanly. Signed-off-by: Richard Purdie --- lib/bb/command.py | 2 ++ lib/bb/cooker.py | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/bb/command.py b/lib/bb/command.py index 3ca27a69e0f..a2795ce0b71 100644 --- a/lib/bb/command.py +++ b/lib/bb/command.py @@ -86,6 +86,8 @@ class Command: def runAsyncCommand(self): try: + if self.cooker.state == bb.cooker.state.error: + return False if self.currentAsyncCommand is not None: (command, options) = self.currentAsyncCommand commandmethod = getattr(CommandsAsync, command) diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py index ad36b34aa48..b504f45da68 100644 --- a/lib/bb/cooker.py +++ b/lib/bb/cooker.py @@ -61,7 +61,7 @@ class CollectionError(bb.BBHandledException): """ class state: - initial, parsing, running, shutdown, forceshutdown, stopped = range(6) + initial, parsing, running, shutdown, forceshutdown, stopped, error = range(7) class SkippedPackage: @@ -1321,6 +1321,7 @@ class BBCooker: self.prhost = prserv.serv.auto_start(self.data) except prserv.serv.PRServiceConfigError: bb.event.fire(CookerExit(), self.event_data) + self.state = state.error return def post_serve(self): -- 2.47.3