Message ID | 20220329142755.1473185-2-richard.purdie@linuxfoundation.org |
---|---|
State | Accepted, archived |
Commit | a2cde38311a51112dca5e7bb4e7feaf4e6a281b3 |
Headers | show |
Series | [1/6] cooker: Fix exception handling in parsers | expand |
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py index c4d720a6b6..fb71a968f2 100644 --- a/lib/bb/cooker.py +++ b/lib/bb/cooker.py @@ -2249,7 +2249,7 @@ class CookerParser(object): result = self.result_queue.get(timeout=0.25) except queue.Empty: empty = True - pass + yield None, None, None else: empty = False yield result @@ -2266,6 +2266,10 @@ class CookerParser(object): if isinstance(result, BaseException): # Turn exceptions back into exceptions raise result + if parsed is None: + # Timeout, loop back through the main loop + return True + except StopIteration: self.shutdown() return False
When parsing, the parser isn't servicing the main loop so a Ctrl+C in the UI won't be seen on the cooker/server side. Fix this by returning when queue timeouts occur. This helps where there is a hung or slow parsing thread. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> --- lib/bb/cooker.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)