On Thu, 2020-08-06 at 15:45 +0200, Marc Hartmayer wrote: > On Tue, Aug 04, 2020 at 11:39 PM +0200, Andrea Bolognani <abologna@xxxxxxxxxx> wrote: > > This patch broke libvirt in Debian for certain setups. > > > > With AppArmor enabled (the default), the error is > > > > $ virsh start cirros > > error: Failed to start domain cirros > > error: internal error: Process exited prior to exec: libvirt: > > error : Cannot delete directory '/run/libvirt/qemu/1-cirros.dev': > > Device or resource busy > > > > If I disable AppArmor by passing security='' on the kernel command > > line, the error message changes to > > > > $ virsh start cirros > > error: Failed to start domain cirros > > error: internal error: Process exited prior to exec: libvirt: > > QEMU Driver error : Unable to get devmapper targets for > > /var/lib/libvirt/images/cirros.qcow2: Success > > > > An effective workaround is to set namespaces=[] in qemu.conf, but > > that's of course not something that we want users doing :) > > > > The underlying issue seems to be caused by the fact that, on a Debian > > installation that uses plain partitions instead of LVM, /proc/devices > > doesn't contain an entry for device-mapper right after boot, which... > > ... this code expects. > > > > Running > > > > $ sudo dmsetup info > > No devices found > > We see the same problem as mentioned by Andrea. The host kernel > configuration used: > > … > CONFIG_BLK_DEV_DM_BUILTIN=y > CONFIG_BLK_DEV_DM=m > … > > As soon as we load the kernel module ‘dm-mod‘ everything works because > then ‘device-mapper‘ is listed in /proc/devices. Thanks Marc! I have confirmed that Debian also uses the same kernel configuration as the one you have reported above, and that running dmsetup(8) causes the dm-mod kernel module to be loaded. For comparison Fedora, where everything works fine, uses CONFIG_BLK_DEV_DM_BUILTIN=y CONFIG_BLK_DEV_DM=y -- Andrea Bolognani / Red Hat / Virtualization