aboutsummaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/ui/uievent.py22
1 files changed, 19 insertions, 3 deletions
diff --git a/bitbake/lib/bb/ui/uievent.py b/bitbake/lib/bb/ui/uievent.py
index eb760c00c3..c6b100c840 100644
--- a/bitbake/lib/bb/ui/uievent.py
+++ b/bitbake/lib/bb/ui/uievent.py
@@ -44,10 +44,26 @@ class BBUIEventQueue:
server.register_function( self.send_event, "event.sendpickle" )
server.socket.settimeout(1)
- self.EventHandle = self.BBServer.registerEventHandler(self.host, self.port)
+ self.EventHandler = None
+ count_tries = 0
- if (self.EventHandle == None):
- bb.warn("Could not register UI event handler %s:%d" % (self.host, self.port))
+ # the event handler registration may fail here due to cooker being in invalid state
+ # this is a transient situation, and we should retry a couple of times before
+ # giving up
+
+ while self.EventHandler == None and count_tries < 5:
+ self.EventHandle = self.BBServer.registerEventHandler(self.host, self.port)
+
+ if (self.EventHandle != None):
+ break
+
+ bb.warn("Could not register UI event handler %s:%d, retry" % (self.host, self.port))
+ count_tries += 1
+ import time
+ time.sleep(1)
+
+
+ if self.EventHandle == None:
raise Exception("Could not register UI event handler")
self.server = server