Skip to content

qemu-bridge-helper failure but qemu not exit

This bug has been copied automatically from: https://bugs.launchpad.net/qemu/+bug/1819108
Reported by 'cavanxg' on 2019-03-08 :

When qemu-bridge-helper run failed, its parent process qemu is still
alive.
This is my command line:

qemu-system-x86_64 -curses -enable-kvm -cpu host -smp 4 -m 4096 \
  -vnc :1 \
  -kernel /data/xugang_vms/boot/vmlinuz \
  -initrd /data/xugang_vms/boot/initram \
  -append 'module_blacklist=drm,evbug net.ifnames=0 biosdevname=0
ROOTDEV=rootfs' \
  -drive
file=/data/xugang_vms/instances/vn7/rootfs.img,format=qcow2,if=virtio \
  -monitor unix:/data/xugang_vms/var/monitor/vn7.sock,server,nowait \
  -netdev bridge,br=vmbr99,helper="/root/bridgehelper --ns=kvm_1 ",id=n1
-device virtio-net,netdev=n1,mac=92:99:98:76:01:07

"/root/bridgehelper" is self defined helper binary by me. But after
bridge-helper exited with failure(not send fd to qemu process yet), the
linux vm's console will be messed up. I checked the qemu source code(at
net/tap.c) and found following snip:

===>
do {
            fd = recv_fd(sv[0]);
        } while (fd == -1 && errno == EINTR);
        saved_errno = errno;

        close(sv[0]);

        while (waitpid(pid, &status, 0) != pid) {
            /* loop */
        }
<=========

why recv_fd will infinitely wait for recv? Maybe it shall waitpid and then
recv_fd ?
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information