[CentOS-virt] CentOS 7 Xen 4.12 libvirt/virt-manager wrong path for qemu-system-i386

Wed May 22 09:46:25 UTC 2019
Anthony PERARD <anthony.perard at citrix.com>

On Sun, May 05, 2019 at 02:23:22PM +0300, Pasi Kärkkäinen wrote:
> Hello,

Thanks for the bug report.

> While testing Virt-SIG Xen 4.12 rpms on CentOS7 I noticed the following problem with libvirt/virt-manager when manually installing a new HVM guest from virt-manager GUI.. basicly the VM installation won't start, because libvirt/virt-manager is not able to start the VM, due to "missing" qemu-system-i386 binary:
> Unable to complete install: 'unsupported configuration: emulator '/usr/lib/xen/bin/qemu-system-i386' not found'
> Traceback (most recent call last):
>   File "/usr/share/virt-manager/virtManager/asyncjob.py", line 89, in cb_wrapper
>     callback(asyncjob, *args, **kwargs)
>   File "/usr/share/virt-manager/virtManager/create.py", line 2553, in _do_async_install
>     guest.start_install(meter=meter)
>   File "/usr/share/virt-manager/virtinst/guest.py", line 498, in start_install
>     doboot, transient)
>   File "/usr/share/virt-manager/virtinst/guest.py", line 434, in _create_guest
>     domain = self.conn.createXML(install_xml or final_xml, 0)
>   File "/usr/lib64/python2.7/site-packages/libvirt.py", line 3725, in createXML
>     if ret is None:raise libvirtError('virDomainCreateXML() failed', conn=self)
> libvirtError: unsupported configuration: emulator '/usr/lib/xen/bin/qemu-system-i386' not found

Starting a guest with libvirt works fine, libvirt is able to find the
qemu binary. (Well, libxl can...)

Here is an osstest flight starting an HVM guest with libvirt:

Maybe the issue is that I need to rebuild `libvirt-python' and
`virt-manager' packages?

> Quick'n'dirty fix is to create a symlink:
> 	ln -s /usr/lib64/xen/bin/qemu-system-i386 /usr/lib/xen/bin/qemu-system-i386
> .. after creating that symlink the VM can be started just fine and works OK.
> We need to fix that default directory path for qemu-system-i386 to be correct out-of-the-box..

I can certainly move the binary from "/usr/lib64" to "/usr/lib", and
hope it doesn't break anything, with Xen 4.10 packages the qemu binary
is in /usr/lib64. But to be honest I don't know which is best for CentOS
between "lib64" and "lib".


Anthony PERARD