[gnome-continuous-yocto/gnomeostree-3.28-rocko: 7004/8267] bitbake: process: Clean up server communication timeout errors



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]