[bitbake-devel] [PATCH 1/5] [dora] bitbake: cooker/command: Add error state for the server and use for pre_serve errors
Robert Yang
liezhi.yang at windriver.com
Tue Dec 10 15:09:35 UTC 2013
From: Richard Purdie <richard.purdie at linuxfoundation.org>
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 at linuxfoundation.org>
Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
---
bitbake/lib/bb/command.py | 2 ++
bitbake/lib/bb/cooker.py | 3 ++-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/bitbake/lib/bb/command.py b/bitbake/lib/bb/command.py
index 3ca27a6..a2795ce 100644
--- a/bitbake/lib/bb/command.py
+++ b/bitbake/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/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index ad36b34..b504f45 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/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):
--
1.7.10.4
More information about the bitbake-devel
mailing list