[kirkstone,2.0] server/process: Fix logging issues where only the first message was displayed

Message ID 506419dc1e0faeca02b6074dd4c26eb424f8c645.1656252284.git.steve@sakoman.com
State Accepted, archived
Commit b8fd6f5d9959d27176ea016c249cf6d35ac8ba03
Headers show
Series [kirkstone,2.0] server/process: Fix logging issues where only the first message was displayed | expand

Commit Message

Steve Sakoman June 26, 2022, 2:08 p.m. UTC
From: Richard Purdie <richard.purdie@linuxfoundation.org>

I realised only the first logging message was being displayed in a given
parsing process. The reason turned out to be the UI handler failing
with a "pop from empty list". The default handler was then lost and
no further messages were processed.

Fix this by catching the exception correctly in the connection writer code.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d3e64f64525187f1409531a0bd99df576e627f7f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
---
 lib/bb/server/process.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Patch

diff --git a/lib/bb/server/process.py b/lib/bb/server/process.py
index 613956f3..f2c5c158 100644
--- a/lib/bb/server/process.py
+++ b/lib/bb/server/process.py
@@ -757,8 +757,11 @@  class ConnectionWriter(object):
                 process.queue_signals = True
                 self._send(obj)
                 process.queue_signals = False
-                for sig in process.signal_received.pop():
-                    process.handle_sig(sig, None)
+                try:
+                    for sig in process.signal_received.pop():
+                        process.handle_sig(sig, None)
+                except IndexError:
+                    pass
         else:
             self._send(obj)