Message ID | 20220609055610.29857-1-mikko.rapeli@bmw.de |
---|---|
State | Accepted, archived |
Commit | 35167536c163eb6b7653cbcaad9f65b834d3e2f8 |
Headers | show |
Series | event.py: ignore exceptions from stdout and sterr operations in atexit | expand |
Hi Mikko, On Thu, 9 Jun 2022 08:56:10 +0300 "Mikko Rapeli" <mikko.rapeli@bmw.de> wrote: > From: Mikko Rapeli <mikko.rapeli@bmw.de> > > When atexit functions run, stdout and stderr operations may fail, e.g. > when output is piped to less but has been exited by the user. > This removes error print from output of "bitbake -e sqlite3 | less" > if user presses "q" before bitbake has finished processing: > > [Errno 32] Broken pipeError in atexit._run_exitfuncs: > Traceback (most recent call last): > File "/home/builder/src/poky/bitbake/lib/bb/event.py", line 135, in print_ui_queue > sys.stdout.flush() > > Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de> > --- > bitbake/lib/bb/event.py | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py > index df020551e3..97668601a1 100644 > --- a/bitbake/lib/bb/event.py ^^^^^^^^ This patch does not apply on the bitbake tree due to the extra 'bitbake/' directory component. Perhaps you generated it from a poky tree instead? I removed the extra component and applied it however, thus no need to resend, and also: Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py index df020551e3..97668601a1 100644 --- a/bitbake/lib/bb/event.py +++ b/bitbake/lib/bb/event.py @@ -132,8 +132,14 @@ def print_ui_queue(): if not _uiready: from bb.msg import BBLogFormatter # Flush any existing buffered content - sys.stdout.flush() - sys.stderr.flush() + try: + sys.stdout.flush() + except: + pass + try: + sys.stderr.flush() + except: + pass stdout = logging.StreamHandler(sys.stdout) stderr = logging.StreamHandler(sys.stderr) formatter = BBLogFormatter("%(levelname)s: %(message)s")