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 ?