Description of problem: I create a new VM in virt-manager Version-Release number of selected component (if applicable): Server: Centos 6.5 libvirt-0.10.2-29.el6_5.2.x86_64 Client: Fedora 20 virt-manager-0.10.0-5.git1ffcc0cc.fc20.noarch How reproducible: Everytime Steps to Reproduce: 1. Create VM with virt-manager 2. Customize install and choose virtio 3. Start install and libvirtd crashes Actual results: Unable to complete install: 'internal error Missing source path attribute for char device' Traceback (most recent call last): File "/usr/share/virt-manager/virtManager/asyncjob.py", line 91, in cb_wrapper callback(asyncjob, *args, **kwargs) File "/usr/share/virt-manager/virtManager/create.py", line 1959, in do_install guest.start_install(meter=meter) File "/usr/share/virt-manager/virtinst/guest.py", line 389, in start_install noboot) File "/usr/share/virt-manager/virtinst/guest.py", line 454, in _create_guest dom = self.conn.createLinux(start_xml or final_xml, 0) File "/usr/lib64/python2.7/site-packages/libvirt.py", line 2897, in createLinux if ret is None:raise libvirtError('virDomainCreateLinux() failed', conn=self) libvirtError: internal error Missing source path attribute for char device Expected results: Additional info:
After removing the device "Channel qemu-ga" I got the install working.
While new virt-manager takes advantage of libvirt not requiring source path attribute for char devices, libvirt in RHEL is older and still requires the source path to be used. It was made optional upstream by commit v1.0.5-3-g297c99a, that is, it is present since libvirt-1.0.6. As a workaround, create a VM without qemu-ga channel and add it manually including the source path using virsh edit.
That said, it's a client's fault to provide an XML configuration that is not supported by older libvirt. Unfortunately, this is not something that virt-manager can easily probe for. A possible solution for virt-manager is to always provide source path for qemu-ga channels even though newer libvirt does not need it or declare qemu-ga channel to be supported only with libvirt-1.0.6 and newer.
Fixed upstream by: commit e7ed161f5aff09f48c5d0bab14f6116a8174d231 Author: Cole Robinson <crobinso> Date: Tue Nov 19 17:00:39 2013 -0500 support: Use libvirt daemon version correctly It should be the reference version for all libvirt checks if it exists. Fixes AUTOSOCKET check for a remote RHEL6 hypervisor for example.
virt-manager-1.0.0-1.fc20 has been submitted as an update for Fedora 20. https://admin.fedoraproject.org/updates/virt-manager-1.0.0-1.fc20
virt-manager-1.0.0-2.fc20 has been submitted as an update for Fedora 20. https://admin.fedoraproject.org/updates/virt-manager-1.0.0-2.fc20
Package virt-manager-1.0.0-2.fc20: * should fix your issue, * was pushed to the Fedora 20 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing virt-manager-1.0.0-2.fc20' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2014-2789/virt-manager-1.0.0-2.fc20 then log in and leave karma (feedback).
Works like a charm, thanks!
virt-manager-1.0.0-3.fc20 has been submitted as an update for Fedora 20. https://admin.fedoraproject.org/updates/virt-manager-1.0.0-3.fc20
virt-manager-1.0.0-3.fc20 has been pushed to the Fedora 20 stable repository. If problems still persist, please make note of it in this bug report.