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 |
