Description of problem:
I create a new VM in virt-manager
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Create VM with virt-manager
2. Customize install and choose virtio
3. Start install and libvirtd crashes
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
File "/usr/share/virt-manager/virtinst/guest.py", line 389, in start_install
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
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:
Author: Cole Robinson <email@example.com>
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.
virt-manager-1.0.0-2.fc20 has been submitted as an update for Fedora 20.
* 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:
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.
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.