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: