1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-07-16 03:47:19 +00:00

arm/lib: Handle timeout for spawn object on stop()

The current code is waiting 5 seconds to get an EOF on the
console pexpect spawn object, on a particularly slow machine
this timeout was not enough ending up into a TIMEOUT exception.

To solve this, increase the timeout and handle the TIMEOUT exception
by printing an error on the debug console instead of letting the
exception raise up to the stack, force the spawn object close() call
as well, since at this stage we would like the process to terminate
anyway.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
Luca Fancellu
2024-09-23 17:04:19 +01:00
committed by Jon Mason
parent ea21deb5e9
commit 950a4afce4
+8 -2
View File
@@ -134,8 +134,14 @@ class FVPRunner:
for console in self._pexpects: for console in self._pexpects:
import pexpect import pexpect
# Ensure pexpect logs all remaining output to the logfile # Ensure pexpect logs all remaining output to the logfile
console.expect(pexpect.EOF, timeout=5.0) try:
console.close() console.expect(pexpect.EOF, timeout=30.0)
except pexpect.TIMEOUT:
pexpect_logfile = ""
if console.logfile is not None:
pexpect_logfile = f" ({console.logfile})"
self._logger.debug(f"Unable to get EOF on pexpect spawn obj{pexpect_logfile}.")
console.close(force=True)
if self._fvp_process and self._fvp_process.returncode and \ if self._fvp_process and self._fvp_process.returncode and \
self._fvp_process.returncode > 0: self._fvp_process.returncode > 0: