summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2013-12-10 10:09:35 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-12-11 14:15:14 +0000
commitbc2e0796c1846d1567db6343b24b85fd7dba9163 (patch)
tree825ccebfe7208564c091383de33eff3f79efed79
parentdf0f92cdc925fe7f3bb2e6afe76cf10b0656ead6 (diff)
downloadbitbake-bc2e0796c1846d1567db6343b24b85fd7dba9163.tar.gz
bitbake: 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. (Bitbake master rev: 42fa34142ea685f91115a551e74416ca28ef1c91) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/command.py2
-rw-r--r--lib/bb/cooker.py3
2 files changed, 4 insertions, 1 deletions
diff --git a/lib/bb/command.py b/lib/bb/command.py
index 3ca27a69e..a2795ce0b 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 ad36b34aa..b504f45da 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):