diff options
-rw-r--r-- | bitbake/lib/bb/ui/uievent.py | 22 |
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: | |||
44 | server.register_function( self.send_event, "event.sendpickle" ) | 44 | server.register_function( self.send_event, "event.sendpickle" ) |
45 | server.socket.settimeout(1) | 45 | server.socket.settimeout(1) |
46 | 46 | ||
47 | self.EventHandle = self.BBServer.registerEventHandler(self.host, self.port) | 47 | self.EventHandler = None |
48 | count_tries = 0 | ||
48 | 49 | ||
49 | if (self.EventHandle == None): | 50 | # the event handler registration may fail here due to cooker being in invalid state |
50 | bb.warn("Could not register UI event handler %s:%d" % (self.host, self.port)) | 51 | # this is a transient situation, and we should retry a couple of times before |
52 | # giving up | ||
53 | |||
54 | while self.EventHandler == None and count_tries < 5: | ||
55 | self.EventHandle = self.BBServer.registerEventHandler(self.host, self.port) | ||
56 | |||
57 | if (self.EventHandle != None): | ||
58 | break | ||
59 | |||
60 | bb.warn("Could not register UI event handler %s:%d, retry" % (self.host, self.port)) | ||
61 | count_tries += 1 | ||
62 | import time | ||
63 | time.sleep(1) | ||
64 | |||
65 | |||
66 | if self.EventHandle == None: | ||
51 | raise Exception("Could not register UI event handler") | 67 | raise Exception("Could not register UI event handler") |
52 | 68 | ||
53 | self.server = server | 69 | self.server = server |