Re: [OE-core] [PATCH] qemurunner.py: print output from runqemu/qemu-system in stop()

Richard Purdie
2021-08-26T12:03:48Z

On Thu, 2021-08-26 at 13:45 +0200, Alexander Kanavin wrote:
> This is done when starting up qemu has failed, but is not done
> when qemu started ok, but fails later in QMP communication.
>
> Output from runqemu does contain valuable information to find out
> why, so rather than fix all the QMP fails to include it, let's just
> print it in stop().
>
> Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> ---
> meta/lib/oeqa/utils/qemurunner.py | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py
> index 5c9d2b24a3..204ad8b918 100644
> --- a/meta/lib/oeqa/utils/qemurunner.py
> +++ b/meta/lib/oeqa/utils/qemurunner.py
> @@ -535,6 +535,8 @@ class QemuRunner:
> if self.runqemu.poll() is None:
> self.logger.debug("Sending SIGKILL to runqemu")
> os.killpg(os.getpgid(self.runqemu.pid), signal.SIGKILL)
> + if not self.runqemu.stdout.closed:
> + self.logger.info("Output from runqemu:\n%s" % self.getOutput(self.runqemu.stdout))
> self.runqemu.stdin.close()
> self.runqemu.stdout.close()
> self.runqemu_exited = True

This isn't quite so simple I'm afraid:

https://autobuilder.yoctoproject.org/typhoon/#/builders/97/builds/3210/steps/16/logs/stdio

Cheers,

Richard