From 29f6ade68fb2b506a23a7eb3a00cdcffa291b362 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 12 May 2016 23:27:25 +0100 Subject: server/process: Fix missing log messages issue Currently if the server dies, its possible that log messages are never displayed which is particularly problematic if one of those messages is the exception and backtrace the server died with. Rather than having the event queue exit as soon as the server disappears, we should pop events from the queue until its empty before exiting. This patch tweaks that code so that even if the server is dead and we're going to exit, we return any events left in the pipe. This makes debugging certain failures much easier. Signed-off-by: Richard Purdie --- lib/bb/server/process.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'lib/bb/server/process.py') diff --git a/lib/bb/server/process.py b/lib/bb/server/process.py index a3078a873..cc58c720a 100644 --- a/lib/bb/server/process.py +++ b/lib/bb/server/process.py @@ -222,11 +222,10 @@ class ProcessEventQueue(multiprocessing.queues.Queue): def waitEvent(self, timeout): if self.exit: - sys.exit(1) + return self.getEvent() try: if not self.server.is_alive(): - self.setexit() - return None + return self.getEvent() return self.get(True, timeout) except Empty: return None @@ -235,9 +234,10 @@ class ProcessEventQueue(multiprocessing.queues.Queue): try: if not self.server.is_alive(): self.setexit() - return None return self.get(False) except Empty: + if self.exit: + sys.exit(1) return None -- cgit 1.2.3-korg