[Pkg-libvirt-maintainers] Bug#1082530: libvirt-daemon: libvirtd does not look up qemu-bridge-helper below /usr/libexec/qemu

Farblos farblos at vodafonemail.de
Sat Sep 21 16:41:01 BST 2024


Package: libvirt-daemon
Version: 10.7.0-3
Severity: normal
X-Debbugs-Cc: farblos at vodafonemail.de

Dear Maintainer,

   * What led up to the situation?

Recent upgrade of packages libvirt-daemon (10.7.0-3) and/or qemu-system-common
(1:9.0.2+ds-2+b1).

   * What exactly did you do (or not do) that was effective (or
     ineffective)?
   
Tried to start a ***user-level*** QEMU VM through libvirt/virsh.

   * What was the outcome of this action?

The VM failed to start with error message:

  [~]$ virsh start ol
  error: Failed to start domain 'ol'
  error: /usr/lib/qemu/qemu-bridge-helper --use-vnet --br=virbr0 --fd=32: failed to communicate with bridge helper: : Transport endpoint is not connected

The journal contains the following log entries:

  Sep 21 17:33:08 host01 libvirtd[5562]: /usr/lib/qemu/qemu-bridge-helper --use-vnet --br=virbr0 --fd=32: failed to communicate with bridge helper: : Transport endpoint is not connected
  Sep 21 17:33:08 host01 kernel: audit: type=1400 audit(1726932788.816:33): apparmor="DENIED" operation="file_mmap" class="file" profile="libvirtd//qemu_bridge_helper" name="/usr/bin/dash" pid=5614 comm="qemu-bridge-hel" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0

   * What outcome did you expect instead?

The VM starting as usual.

   * Educated Guess

- Package qemu-system-common has moved the QEMU bridge helper to
  directory /usr/libexec/qemu/qemu-bridge-helper, replacing the
  original /usr/lib/qemu/qemu-bridge-helper with a Bourne shell
  wrapper script that passes control to the real executable.

- However, function virDomainCreateInBridgePortWithHelper in file
  src/hypervisor/domain_interface.c of libvirt still looks for
  the bridge helper only in the previous locations, which is
  $PATH plus the entries in local variable bridgeHelperDirs.
  Directory /usr/libexec/qemu is not among these.

- As a result, libvirtd tries to start the bridge helper through
  the Bourne shell wrapper script, which conflicts with the
  AppArmor rules for libvirtd.

   * Workaround

As a work-around, one can configure variable bridge_helper to the
absolute path "/usr/libexec/qemu/qemu-bridge-helper" in file
~/.config/libvirt/qemu.conf.

-- System Information:
Debian Release: trixie/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 6.10.9-amd64 (SMP w/16 CPU threads; PREEMPT)
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 libvirt-daemon depends on:
ii  libc6                  2.40-2
ii  libgcc-s1              14.2.0-3
ii  libglib2.0-0t64        2.82.0-1
ii  libtirpc3t64           1.3.4+ds-1.3
ii  libvirt-common         10.7.0-3
ii  libvirt-daemon-common  10.7.0-3
ii  libvirt0               10.7.0-3
ii  libxml2                2.9.14+dfsg-1.3+b3
ii  logrotate              3.22.0-1

Versions of packages libvirt-daemon recommends:
pn  libvirt-daemon-driver-interface        <none>
pn  libvirt-daemon-driver-lxc              <none>
ii  libvirt-daemon-driver-network          10.7.0-3
ii  libvirt-daemon-driver-nodedev          10.7.0-3
ii  libvirt-daemon-driver-nwfilter         10.7.0-3
ii  libvirt-daemon-driver-qemu             10.7.0-3
ii  libvirt-daemon-driver-secret           10.7.0-3
ii  libvirt-daemon-driver-storage          10.7.0-3
pn  libvirt-daemon-driver-storage-disk     <none>
pn  libvirt-daemon-driver-storage-iscsi    <none>
pn  libvirt-daemon-driver-storage-logical  <none>
pn  libvirt-daemon-driver-storage-mpath    <none>
pn  libvirt-daemon-driver-storage-scsi     <none>
pn  libvirt-daemon-driver-vbox             <none>
pn  libvirt-daemon-driver-xen              <none>
pn  libvirt-daemon-lock                    <none>
ii  libvirt-daemon-log                     10.7.0-3
pn  libvirt-daemon-plugin-lockd            <none>
pn  libvirt-daemon-plugin-sanlock          <none>

Versions of packages libvirt-daemon suggests:
pn  libvirt-daemon-driver-storage-gluster       <none>
pn  libvirt-daemon-driver-storage-iscsi-direct  <none>
pn  libvirt-daemon-driver-storage-rbd           <none>
pn  libvirt-daemon-driver-storage-zfs           <none>
ii  libvirt-daemon-system                       10.7.0-3

-- no debconf information



More information about the Pkg-libvirt-maintainers mailing list