From 127d3bd8d5509ae17e359c1365859fd362ffc74f Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 4 Jul 2024 11:10:38 +0100 Subject: [PATCH] oeqa/runtime/ssh: In case of failure, show exit code and handle -15 (SIGTERM) Ensure we show the failing exit code in case of failures. We're seeing autobuilder failures with -15 (SIGTERM) which is probably from slow boot/init. Retry in these cases for now. Signed-off-by: Richard Purdie --- meta/lib/oeqa/runtime/cases/ssh.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/meta/lib/oeqa/runtime/cases/ssh.py b/meta/lib/oeqa/runtime/cases/ssh.py index ae92bb34cd9..9a8deb3f25e 100644 --- a/meta/lib/oeqa/runtime/cases/ssh.py +++ b/meta/lib/oeqa/runtime/cases/ssh.py @@ -5,6 +5,7 @@ # import time +import signal from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends @@ -19,16 +20,18 @@ class SSHTest(OERuntimeTestCase): status, output = self.target.run("uname -a", timeout=5) if status == 0: break - elif status == 255: + elif status == 255 or status == -signal.SIGTERM: # ssh returns 255 only if a ssh error occurs. This could # be an issue with "Connection refused" because the port # isn't open yet, and this could check explicitly for that # here. However, let's keep it simple and just retry for # all errors a limited amount of times with a sleep to # give it time for the port to open. + # We sometimes see -15 (SIGTERM) on slow emulation machines too, likely + # from boot/init not being 100% complete, retry for these too. time.sleep(5) continue else: - self.fail("uname failed with \"%s\"" %output) + self.fail("uname failed with \"%s\" (exit code %s)" % (output, status)) if status == 255: self.fail("ssh error %s" %output) -- 2.47.2