Bug 1088083 - virt-manager: changing Display SPICE settings causes VM to fail to start
Summary: virt-manager: changing Display SPICE settings causes VM to fail to start
Keywords:
Status: CLOSED DUPLICATE of bug 1083899
Alias: None
Product: Fedora
Classification: Fedora
Component: virt-manager
Version: 20
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Cole Robinson
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-04-16 03:13 UTC by Michael DePaulo
Modified: 2014-04-16 13:39 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2014-04-16 13:39:44 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
The .xml VM config file after the changes. (4.08 KB, text/xml)
2014-04-16 03:13 UTC, Michael DePaulo
no flags Details

Description Michael DePaulo 2014-04-16 03:13:52 UTC
Created attachment 886741 [details]
The .xml VM config file after the changes.

Description of problem:

Changing the following "Display Spice" settings in virt-manager seems to cause an XML parsing error for a VM's config file. This in turn causes the VM to fail to start or restart.:

Address: Localhost only -> All Interfaces:
Password: Enable and set a password

Also, after making these changes, there appears to be no graphical way to recover your VM's ability to boot. (You can however run "virsh edit" and fix it manually.)

Version-Release number of selected component (if applicable):
virt-manager:
Version     : 1.0.1
Release     : 1.fc20

libvirt:
Version     : 1.1.3.4
Release     : 3.fc20

qemu-kvm:
Version     : 1.6.2
Release     : 1.fc20

How reproducible:

Yes, I did it 2x in a row while the VM is running. And I did it another time while the VM was shutoff.

Steps to Reproduce:

1. Create a VM. Let it default to "Display Spice".

2. While the VM is shutoff, change the following "Display Spice" hardware properties:
Address: Localhost only -> All Interfaces:
Password: Enable and set a password (shown as "mikedep333password" below)

3. Attempt to start the VM.

4. Attempt to remove the hardware (Display Spice)

(You can also change the settings while the VM is running, and either reboot it yourself, or have the guest OS reboot the VM.)

Actual results:

The VM does not start and this error message pops up in a window (I changed my password value in the text below. My actual password is nothing but alphanumeric characters.)

Error continue install: (domain_definition):84: Unescaped '<' not allowed in attributes values
    <graphics type='spice' autoport='yes' listen='<gi.overrides.Gtk.TreeModelRow object at 0x7f91dc0fc0d0>' passwd='mikedep333password'>
--------------------------------------------------^

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/create.py", line 1843, in check_install_status
    vm.startup()
  File "/usr/share/virt-manager/virtManager/domain.py", line 1355, in startup
    self._backend.create()
  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 708, in create
    if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: (domain_definition):84: Unescaped '<' not allowed in attributes values
    <graphics type='spice' autoport='yes' listen='<gi.overrides.Gtk.TreeModelRow object at 0x7f91dc0fc0d0>' passwd='mikedep333password'>
--------------------------------------------------^

Also, if you change the Display Spice settings while the VM is running and reboot the VM, Virtual Machine Manager's main window shows the VM as "Running" (even though the window for the VM was obviously not running.)

When I attempt to remove the device (Display Spice), I get this error message window:

Error Removing Device: xmlParseDoc() failed

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/details.py", line 2273, in remove_device
    self.vm.remove_device(devobj)
  File "/usr/share/virt-manager/virtManager/domain.py", line 581, in remove_device
    ret = self._redefine(change)
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 241, in _redefine
    guest = self._get_xmlobj_to_define()
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 223, in _get_xmlobj_to_define
    self._xmlobj_to_define = self.get_xmlobj(inactive=True)
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 148, in get_xmlobj
    return self._build_xmlobj(xml)
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 219, in _build_xmlobj
    return self._parseclass(self.conn.get_backend(), parsexml=xml)
  File "/usr/share/virt-manager/virtinst/guest.py", line 102, in __init__
    XMLBuilder.__init__(self, *args, **kwargs)
  File "/usr/share/virt-manager/virtinst/xmlbuilder.py", line 777, in __init__
    parent_xpath, relative_object_xpath)
  File "/usr/share/virt-manager/virtinst/xmlbuilder.py", line 679, in __init__
    self._parse(parsexml, parsexmlnode)
  File "/usr/share/virt-manager/virtinst/xmlbuilder.py", line 692, in _parse
    doc = libxml2.parseDoc(xml)
  File "/usr/lib64/python2.7/site-packages/libxml2.py", line 1325, in parseDoc
    if ret is None:raise parserError('xmlParseDoc() failed')
parserError: xmlParseDoc() failed


Expected results:

The VM would successfully start/restart and the display settings would be changed.

And if I want to delete the "Display Spice" hardware, that would work too.

Additional info:
See attachment

Comment 1 Cole Robinson 2014-04-16 13:39:44 UTC

*** This bug has been marked as a duplicate of bug 1083899 ***


Note You need to log in before you can comment on or make changes to this bug.