Package: autopkgtest
Version: 5.15
Severity: important
Tags: patch
Control: block 926945 by -1
Control: block 973038 by -1
Dear Maintainer,
/usr/bin/autopkgtest-virt-qemu starts child qemu-system-*
by subprocess.Popen(argv).
This invocation implicitly assumes that child qemu-system-*
writes nothing to stdout, as the child shares its stdout with
autopkgtest-virt-qemu.
On the other hand, autopkgtest-virt-qemu communicates with
parent autopkgtest via stdout&stdin.
When qemu-system-* writes "Welcome GRUB" or something similar
to stdout, autopkgtest receives "Welcome GRUB" as a message
from autopkgtest-virt-qemu. Nobody wants such communication!!
qemu-system-x86_64 or qemu-system-i386 does not write anything
to stdout. On the other hand, qemu-system-aarch64, qemu-system-arm,
and qemu-system-ppc64le write lots of "Welcome GRUB" and likes to
stdout, and autopkgtest gets really confused.
This is the reason why autopkgtest-virt-qemu fails with arm
and ppc64el QEMU testbeds.
Just giving stdout=subprocess.DEVNULL and such to subprocess.Popen
solves this problem. The attached patch,
against "apt-get source autopkgtest",
does this modification.
I think autopkgtest-virt-qemu should set its child qemu-system-*'s
stdio to reasonable values.
Now we become able to use autopkgtest-virt-qemu for
arm64, armhf, armel, and ppc64el in additon to amd64 and i386!
Best regards, Ryutaroh Matsumoto
-- System Information:
Debian Release: bullseye/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 5.9.0-3-amd64 (SMP w/12 CPU threads)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8),
LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages autopkgtest depends on:
ii apt-utils 2.1.11
ii libdpkg-perl 1.20.5
ii procps 2:3.3.16-5
ii python3 3.8.6-1
ii python3-debian 0.1.38
Versions of packages autopkgtest recommends:
ii autodep8 0.24
Versions of packages autopkgtest suggests:
pn lxc <none>
pn lxd <none>
ii ovmf 2020.08-1
ii qemu-efi-aarch64 2020.08-1
ii qemu-efi-arm 2020.08-1
ii qemu-system 1:5.1+dfsg-4+b1
ii qemu-utils 1:5.1+dfsg-4+b1
pn schroot <none>
ii vmdb2 0.19-1
-- no debconf information
--- autopkgtest-5.15/virt/autopkgtest-virt-qemu-5.15 2020-11-21
23:10:54.688621286 +0900
+++ autopkgtest-5.15/virt/autopkgtest-virt-qemu 2020-11-21 23:13:30.243027411
+0900
@@ -623,7 +623,7 @@
if args.qemu_options:
argv.extend(args.qemu_options.split())
- p_qemu = subprocess.Popen(argv)
+ p_qemu = subprocess.Popen(argv, stdin=subprocess.DEVNULL,
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
try:
try: