[gnome-continuous-yocto/gnomeostree-3.28-rocko: 7004/8267] bitbake: process: Clean up server communication timeout errors
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-continuous-yocto/gnomeostree-3.28-rocko: 7004/8267] bitbake: process: Clean up server communication timeout errors
- Date: Sun, 17 Dec 2017 05:38:22 +0000 (UTC)
commit 5f835043f24cef29d229918a9e9cdef62407e558
Author: Richard Purdie <richard purdie linuxfoundation org>
Date: Fri Jul 28 15:46:20 2017 +0100
bitbake: process: Clean up server communication timeout errors
This timeout path was commonly hit due to errors starting the server. Now we
have a better way to handle that, the retry logic can be improved and cleaned
up. This patch:
* Makes the timeout 5s rather than intervals of 1s with a message. Paul
noted some commands can take around 1s to run on a server which has just
been started on a loaded system.
* Allows a broke connection to exit immediately rather than retrying something
which will never work.
* Drops the Ctrl+C masking, we shouldn't need that anymore and any issues
would be better handled in other ways.
This should make things clearer and less confusing for users and is much cleaner
code too.
(Bitbake rev: 8633b7cd03cfaba3e0359aa5da22fc76b66768c7)
Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>
bitbake/lib/bb/server/process.py | 15 +++------------
1 files changed, 3 insertions(+), 12 deletions(-)
---
diff --git a/bitbake/lib/bb/server/process.py b/bitbake/lib/bb/server/process.py
index 3530bdc..e4b9d96 100644
--- a/bitbake/lib/bb/server/process.py
+++ b/bitbake/lib/bb/server/process.py
@@ -303,19 +303,10 @@ class ServerCommunicator():
self.recv = recv
def runCommand(self, command):
-
self.connection.send(command)
- while True:
- # don't let the user ctrl-c while we're waiting for a response
- try:
- for idx in range(0,4): # 0, 1, 2, 3
- if self.recv.poll(1):
- return self.recv.get()
- else:
- bb.note("Timeout while attempting to communicate with bitbake server, retrying...")
- raise ProcessTimeout("Gave up; Too many tries: timeout while attempting to communicate with
bitbake server")
- except KeyboardInterrupt:
- pass
+ if not self.recv.poll(5):
+ raise ProcessTimeout("Timeout while waiting for a reply from the bitbake server")
+ return self.recv.get()
def updateFeatureSet(self, featureset):
_, error = self.runCommand(["setFeatures", featureset])
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]