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:

Reply via email to