Description of problem: Cannot create the libguestfs appliance with latest libvirt. See the full output below. Version-Release number of selected component (if applicable): libvirt-4.6.0-1.fc29.x86_64 qemu-3.0.0-0.2.rc3.fc29.x86_64 How reproducible: 100% Steps to Reproduce: 1. libguestfs-test-tool Additional info: ************************************************************ * IMPORTANT NOTICE * * When reporting bugs, include the COMPLETE, UNEDITED * output below in your bug report. * ************************************************************ PATH=/usr/libexec/python2-sphinx:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/rjones/.local/bin:/home/rjones/bin XDG_RUNTIME_DIR=/run/user/1000 SELinux: Enforcing guestfs_get_append: (null) guestfs_get_autosync: 1 guestfs_get_backend: libvirt guestfs_get_backend_settings: [] guestfs_get_cachedir: /var/tmp guestfs_get_hv: /usr/bin/qemu-kvm guestfs_get_memsize: 500 guestfs_get_network: 0 guestfs_get_path: /usr/lib64/guestfs guestfs_get_pgroup: 0 guestfs_get_program: libguestfs-test-tool guestfs_get_recovery_proc: 1 guestfs_get_smp: 1 guestfs_get_sockdir: /run/user/1000 guestfs_get_tmpdir: /tmp guestfs_get_trace: 0 guestfs_get_verbose: 1 host_cpu: x86_64 Launching appliance, timeout set to 600 seconds. libguestfs: launch: program=libguestfs-test-tool libguestfs: launch: version=1.39.8fedora=29,release=1.fc29,libvirt libguestfs: launch: backend registered: unix libguestfs: launch: backend registered: uml libguestfs: launch: backend registered: libvirt libguestfs: launch: backend registered: direct libguestfs: launch: backend=libvirt libguestfs: launch: tmpdir=/tmp/libguestfsambi2d libguestfs: launch: umask=0002 libguestfs: launch: euid=1000 libguestfs: libvirt version = 4006000 (4.6.0) libguestfs: guest random name = guestfs-1ty0tysxwm8mvdoq libguestfs: connect to libvirt libguestfs: opening libvirt handle: URI = qemu:///session, auth = default+wrapper, flags = 0 libguestfs: successfully opened libvirt handle: conn = 0x560794922090 libguestfs: unable to read qemu version from libvirt: internal error: Cannot find suitable emulator for x86_64 [code=1 int1=-1] libguestfs: get libvirt capabilities libguestfs: parsing capabilities XML libguestfs: build appliance libguestfs: begin building supermin appliance libguestfs: run supermin libguestfs: command: run: /usr/bin/supermin libguestfs: command: run: \ --build libguestfs: command: run: \ --verbose libguestfs: command: run: \ --if-newer libguestfs: command: run: \ --lock /var/tmp/.guestfs-1000/lock libguestfs: command: run: \ --copy-kernel libguestfs: command: run: \ -f ext2 libguestfs: command: run: \ --host-cpu x86_64 libguestfs: command: run: \ /usr/lib64/guestfs/supermin.d libguestfs: command: run: \ -o /var/tmp/.guestfs-1000/appliance.d supermin: version: 5.1.19 supermin: rpm: detected RPM version 4.14 supermin: package handler: fedora/rpm supermin: acquiring lock on /var/tmp/.guestfs-1000/lock supermin: if-newer: output does not need rebuilding libguestfs: finished building supermin appliance libguestfs: command: run: qemu-img libguestfs: command: run: \ create libguestfs: command: run: \ -f qcow2 libguestfs: command: run: \ -o backing_file=/var/tmp/.guestfs-1000/appliance.d/root,backing_fmt=raw libguestfs: command: run: \ /tmp/libguestfsambi2d/overlay2.qcow2 Formatting '/tmp/libguestfsambi2d/overlay2.qcow2', fmt=qcow2 size=4294967296 backing_file=/var/tmp/.guestfs-1000/appliance.d/root backing_fmt=raw cluster_size=65536 lazy_refcounts=off refcount_bits=16 libguestfs: create libvirt XML libguestfs: command: run: dmesg | grep -Eoh 'lpj=[[:digit:]]+' libguestfs: read_lpj_from_dmesg: external command exited with error status 1 libguestfs: read_lpj_from_files: no boot messages files are readable libguestfs: libvirt XML:\n<?xml version="1.0"?>\n<domain type="qemu" xmlns:qemu="http://libvirt.org/schemas/domain/qemu/1.0">\n <name>guestfs-1ty0tysxwm8mvdoq</name>\n <memory unit="MiB">500</memory>\n <currentMemory unit="MiB">500</currentMemory>\n <vcpu>1</vcpu>\n <clock offset="utc">\n <timer name="rtc" tickpolicy="catchup"/>\n <timer name="pit" tickpolicy="delay"/>\n <timer name="hpet" present="no"/>\n </clock>\n <os>\n <type>hvm</type>\n <kernel>/var/tmp/.guestfs-1000/appliance.d/kernel</kernel>\n <initrd>/var/tmp/.guestfs-1000/appliance.d/initrd</initrd>\n <cmdline>panic=1 console=ttyS0 edd=off udevtimeout=6000 udev.event-timeout=6000 no_timer_check printk.time=1 cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable 8250.nr_uarts=1 root=/dev/sdb selinux=0 guestfs_verbose=1 TERM=xterm-256color</cmdline>\n <bios useserial="yes"/>\n </os>\n <on_reboot>destroy</on_reboot>\n <devices>\n <rng model="virtio">\n <backend model="random">/dev/urandom</backend>\n </rng>\n <controller type="scsi" index="0" model="virtio-scsi"/>\n <disk device="disk" type="file">\n <source file="/tmp/libguestfsambi2d/scratch1.img"/>\n <target dev="sda" bus="scsi"/>\n <driver name="qemu" type="raw" cache="unsafe"/>\n <address type="drive" controller="0" bus="0" target="0" unit="0"/>\n </disk>\n <disk type="file" device="disk">\n <source file="/tmp/libguestfsambi2d/overlay2.qcow2"/>\n <target dev="sdb" bus="scsi"/>\n <driver name="qemu" type="qcow2" cache="unsafe"/>\n <address type="drive" controller="0" bus="0" target="1" unit="0"/>\n </disk>\n <serial type="unix">\n <source mode="connect" path="/run/user/1000/libguestfs4HoktP/console.sock"/>\n <target port="0"/>\n </serial>\n <channel type="unix">\n <source mode="connect" path="/run/user/1000/libguestfs4HoktP/guestfsd.sock"/>\n <target type="virtio" name="org.libguestfs.channel.0"/>\n </channel>\n <controller type="usb" model="none"/>\n <memballoon model="none"/>\n </devices>\n <qemu:commandline>\n <qemu:env name="TMPDIR" value="/var/tmp"/>\n </qemu:commandline>\n</domain>\n libguestfs: command: run: ls libguestfs: command: run: \ -a libguestfs: command: run: \ -l libguestfs: command: run: \ -R libguestfs: command: run: \ -Z /var/tmp/.guestfs-1000 libguestfs: /var/tmp/.guestfs-1000: libguestfs: total 180 libguestfs: drwxr-xr-x. 3 rjones rjones unconfined_u:object_r:user_tmp_t:s0 174 Sep 5 13:26 . libguestfs: drwxrwxrwt. 12 root root system_u:object_r:tmp_t:s0 16384 Sep 5 13:26 .. libguestfs: drwxr-xr-x. 2 rjones rjones unconfined_u:object_r:user_tmp_t:s0 46 Sep 5 13:23 appliance.d libguestfs: -rw-r--r--. 1 rjones rjones unconfined_u:object_r:user_tmp_t:s0 0 Aug 11 17:04 lock libguestfs: -rw-rw-r--. 1 rjones rjones unconfined_u:object_r:user_tmp_t:s0 10303 Jul 7 07:15 qemu-281-1528225229.devices libguestfs: -rw-rw-r--. 1 rjones rjones unconfined_u:object_r:user_tmp_t:s0 26160 Jul 7 07:15 qemu-281-1528225229.help libguestfs: -rw-rw-r--. 1 rjones rjones unconfined_u:object_r:user_tmp_t:s0 117701 Jul 7 07:15 qemu-281-1528225229.qmp-schema libguestfs: -rw-rw-r--. 1 rjones rjones unconfined_u:object_r:user_tmp_t:s0 35 Jul 7 07:15 qemu-281-1528225229.stat libguestfs: libguestfs: /var/tmp/.guestfs-1000/appliance.d: libguestfs: total 468140 libguestfs: drwxr-xr-x. 2 rjones rjones unconfined_u:object_r:user_tmp_t:s0 46 Sep 5 13:23 . libguestfs: drwxr-xr-x. 3 rjones rjones unconfined_u:object_r:user_tmp_t:s0 174 Sep 5 13:26 .. libguestfs: -rw-r--r--. 1 rjones rjones unconfined_u:object_r:user_tmp_t:s0 759296 Sep 5 13:26 initrd libguestfs: -rwxr-xr-x. 1 rjones rjones unconfined_u:object_r:user_tmp_t:s0 8655560 Sep 5 13:26 kernel libguestfs: -rw-r--r--. 1 rjones rjones unconfined_u:object_r:user_tmp_t:s0 4294967296 Sep 5 13:26 root libguestfs: command: run: ls libguestfs: command: run: \ -a libguestfs: command: run: \ -l libguestfs: command: run: \ -Z /run/user/1000/libguestfs4HoktP libguestfs: total 0 libguestfs: drwx------. 2 rjones rjones unconfined_u:object_r:user_tmp_t:s0 80 Sep 5 13:26 . libguestfs: drwx------. 15 rjones rjones system_u:object_r:tmpfs_t:s0 320 Sep 5 13:26 .. libguestfs: srwxrwxr-x. 1 rjones rjones unconfined_u:object_r:user_tmp_t:s0 0 Sep 5 13:26 console.sock libguestfs: srwxrwxr-x. 1 rjones rjones unconfined_u:object_r:user_tmp_t:s0 0 Sep 5 13:26 guestfsd.sock libguestfs: launch libvirt guest libguestfs: error: could not create appliance through libvirt. Try running qemu directly without libvirt using this environment variable: export LIBGUESTFS_BACKEND=direct Original error from libvirt: XML error: No PCI buses available [code=27 int1=-1] libguestfs: closing guestfs handle 0x5607949202e0 (state 0) libguestfs: command: run: rm libguestfs: command: run: \ -rf /tmp/libguestfsambi2d libguestfs: command: run: rm libguestfs: command: run: \ -rf /run/user/1000/libguestfs4HoktP
Similar bugs have been filed in the past, but only on MIPS (this bug affects x86_64): https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1561497 https://bugzilla.redhat.com/show_bug.cgi?id=1432101
Actually I just noticed that the real error happens a bit earlier: internal error: Cannot find suitable emulator for x86_64 [code=1 int1=-1] And this is caused by qemu: $ qemu-system-x86_64 --help qemu-system-x86_64: symbol lookup error: qemu-system-x86_64: undefined symbol: libusb_set_option
Solution was to update libusbx to 1.0.22-1.fc29 Symbol versions would help here, I think.
*** Bug 1635865 has been marked as a duplicate of this bug. ***
Shouldn't we file some BZ or reassign this to fix the dependencies? Eg updating @virtualization to latest on F28 Base cloud image breaks virtualization.
I'll add a version check to the next build
This is still an issue with Fedora 28 at the moment. We're running OpenStack Ansible against Fedora 28 in order to be able to be ready for CentOS 8 release and this is breaking us.
Fedora 28 is end of life, and the lowest version of libusbx in fedora 29 is 1.0.22, so this isn't a problem anymore for any stable Fedora version