diff mbox series

[yocto-autobuilder-helper] summarize_top_output: skip blank lines in top output

Message ID 20260718090159.3460055-2-yoann.congal@smile.fr
State New
Headers show
Series [yocto-autobuilder-helper] summarize_top_output: skip blank lines in top output | expand

Commit Message

Yoann Congal July 18, 2026, 9:02 a.m. UTC
From: Yoann Congal <yoann.congal@smile.fr>

Blank line can happen in top output. e.g. in [0] at the end of the
block.

Skip those to avoid this error:
| Traceback (most recent call last):
|   File "/srv/pokybuild/yocto-worker/qemux86-64-ptest/yocto-autobuilder-helper/scripts/summarize_top_output.py", line 181, in <module>
|     main()
|     ~~~~^^
|   File "/srv/pokybuild/yocto-worker/qemux86-64-ptest/yocto-autobuilder-helper/scripts/summarize_top_output.py", line 178, in main
|     short_summary, summary, kernel_summary, zombie_summary, other_build = summarize_top(outputs, target)
|                                                                           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
|   File "/srv/pokybuild/yocto-worker/qemux86-64-ptest/yocto-autobuilder-helper/scripts/summarize_top_output.py", line 66, in summarize_top
|     cmd = line.split(maxsplit=max_cols)[-1]
|           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^
| IndexError: list index out of range
| ERROR: Command ['/srv/pokybuild/yocto-worker/qemux86-64-ptest/yocto-autobuilder-helper/scripts/summarize_top_output.py', '/srv/autobuilder/valkyrie.yocto.io/pub/non-release/20260717-146/testresults', 'qemux86-64-ptest'] failed

[0]: https://valkyrie.yocto.io/pub/non-release/20260717-146/testresults/qemux86-64-ptest/intermittent_failure_host_data/host_stats_do_package_write_deb_failure_1.txt

This should fix [YOCTO #16338].

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
---
 scripts/summarize_top_output.py | 2 ++
 1 file changed, 2 insertions(+)
diff mbox series

Patch

diff --git a/scripts/summarize_top_output.py b/scripts/summarize_top_output.py
index 618cde1..dfd4299 100755
--- a/scripts/summarize_top_output.py
+++ b/scripts/summarize_top_output.py
@@ -63,6 +63,8 @@  def summarize_top(top_outs, target):
         zombie_summary = {}
         short_summary = top_out[:top_header + cpu_hoggers]
         for line in top_out[top_header:]:
+            if not line:            # trailing blank line before "end: top output"
+                continue
             cmd = line.split(maxsplit=max_cols)[-1]
             if cmd.startswith(HOME):
                 b = cmd.split(HOME)[1].split("/")[0]