qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [Bug 1819108] [NEW] qemu-bridge-helper failure but qemu not


From: cavanxg
Subject: [Qemu-devel] [Bug 1819108] [NEW] qemu-bridge-helper failure but qemu not exit
Date: Fri, 08 Mar 2019 06:52:24 -0000

Public bug reported:

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 ?

** Affects: qemu
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1819108

Title:
  qemu-bridge-helper failure but qemu not exit

Status in QEMU:
  New

Bug description:
  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 manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1819108/+subscriptions



reply via email to

[Prev in Thread] Current Thread [Next in Thread]