[Pkg-libvirt-maintainers] Bug#764880: virt-manager: gui breaks on different operations with VNC/SPICE servers

Christoph Anton Mitterer calestyo at scientia.net
Sat Oct 11 20:03:03 UTC 2014


Package: virt-manager
Version: 1:1.0.1-2.1
Severity: important



Hi.

Today I've stumbled over server issues when creatig
VNC/SPICE servers from within virt-manager.

1) It started with that I tried to change the type
of a Display Server hardware in a VM from VNC to
SPICE via the dropdown list.
Which makes a popup with the title:
Error changing VM configuration: unsupported configuration: unknown graphics device type '<gi.overrides.Gtk.TreeModelRow object at 0x7f16b0da6d50>'
And message:
Error changing VM configuration: unsupported configuration: unknown graphics device type '<gi.overrides.Gtk.TreeModelRow object at 0x7f16b0da6d50>'

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/details.py", line 2310, in _change_config_helper
    self.vm.redefine_cached()
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 213, in redefine_cached
    self._redefine_xml(xml)
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 238, in _redefine_xml
    return self._redefine_helper(origxml, newxml)
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 230, in _redefine_helper
    self._define(newxml)
  File "/usr/share/virt-manager/virtManager/domain.py", line 1012, in _define
    self.conn.define_domain(newxml)
  File "/usr/share/virt-manager/virtManager/connection.py", line 787, in define_domain
    return self._backend.defineXML(xml)
  File "/usr/lib/python2.7/dist-packages/libvirt.py", line 3442, in defineXML
    if ret is None:raise libvirtError('virDomainDefineXML() failed', conn=self)
libvirtError: unsupported configuration: unknown graphics device type '<gi.overrides.Gtk.TreeModelRow object at 0x7f16b0da6d50>'

Just deleting the "hardware" and readding it doesn't help either.


2) I assumed that maybe the format of the XMLs have changed
so I removed all VMs from /etc/libvirt/qemu and started from
scratch.

Now when I now create a VM, and select "configure before
installation".
And try to change (actually "set" it - since it's unset)
the Display Server type there, something even more creepy
happens, which you can see on the attached screenshot.

If I start completely over from scratch and do *not*
change the type of the Display Server during the "configure
before installation"... it actually creates the VM with a
SPICE server (the type is then set after installation o.O).


3) Now at that point when I try to configure the spice server
i.e. change Address from "Hypervisor default" to "Localhost
only" (which IMHO should be default for security reasons
aynway)
Something completely awkward happens:
The first time I try to set/apply it I get this error:
Error changing VM configuration: unsupported configuration: unknown graphics device type '<gi.overrides.Gtk.TreeModelRow object at 0x7f16b0d6ac10>'
Error changing VM configuration: unsupported configuration: unknown graphics device type '<gi.overrides.Gtk.TreeModelRow object at 0x7f16b0d6ac10>'

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/details.py", line 2310, in _change_config_helper
    self.vm.redefine_cached()
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 213, in redefine_cached
    self._redefine_xml(xml)
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 238, in _redefine_xml
    return self._redefine_helper(origxml, newxml)
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 230, in _redefine_helper
    self._define(newxml)
  File "/usr/share/virt-manager/virtManager/domain.py", line 1012, in _define
    self.conn.define_domain(newxml)
  File "/usr/share/virt-manager/virtManager/connection.py", line 787, in define_domain
    return self._backend.defineXML(xml)
  File "/usr/lib/python2.7/dist-packages/libvirt.py", line 3442, in defineXML
    if ret is None:raise libvirtError('virDomainDefineXML() failed', conn=self)
libvirtError: unsupported configuration: unknown graphics device type '<gi.overrides.Gtk.TreeModelRow object at 0x7f16b0d6ac10>'

When I then click to another part of the VM (other hardware)
and afterwards try it again, localhost+apply.
It gives no error, but the dropdown shows "Hypervisor default"
again.

When repeating that once more (i.e. going to some other hardware,
then back, then localhost+apply) it gets a popup:
Error changing VM configuration: xmlParseDoc() failed
Error changing VM configuration: xmlParseDoc() failed

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/details.py", line 2307, in _change_config_helper
    define_func(devobj, False, **define_args)
  File "/usr/share/virt-manager/virtManager/domain.py", line 811, in define_graphics
    return self._redefine_device(change, devobj, use_live_device)
  File "/usr/share/virt-manager/virtManager/domain.py", line 538, in _redefine_device
    dev = self._lookup_device_to_define(origdev)
  File "/usr/share/virt-manager/virtManager/domain.py", line 520, in _lookup_device_to_define
    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/lib/python2.7/dist-packages/libxml2.py", line 1325, in parseDoc
    if ret is None:raise parserError('xmlParseDoc() failed')
parserError: xmlParseDoc() failed

Apply doesn't work then, I can only click cancel.
When I then restart virt-manager.
The whole VM is no longer shown (even though the XML is still there,
though corrupted I guess).




All this seems to be 100% reproducible every time,
but if you still like me to do the debug logs
(--debug --no-fork), just tell me.


Thanks,
Chris.


-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.16-3-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_DE.utf8, LC_CTYPE=en_DE.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages virt-manager depends on:
ii  dconf-gsettings-backend [gsettings-backend]  0.22.0-1
ii  gconf2                                       3.2.6-3
ii  gir1.2-gtk-3.0                               3.14.1-1
ii  gir1.2-gtk-vnc-2.0                           0.5.3-1.2
ii  gir1.2-libvirt-glib-1.0                      0.1.7-2.1
ii  gir1.2-spice-client-gtk-3.0                  0.25-1
ii  gir1.2-vte-2.90                              1:0.36.3-1
ii  librsvg2-common                              2.40.4-1
ii  python-dbus                                  1.2.0-2+b3
ii  python-gi                                    3.14.0-1
ii  python-gi-cairo                              3.14.0-1
ii  python-ipaddr                                2.1.11-2
ii  python-libvirt                               1.2.8-1
ii  python-urlgrabber                            3.9.1-4
pn  python2.7:any                                <none>
pn  python:any                                   <none>
ii  virtinst                                     1:1.0.1-2.1

Versions of packages virt-manager recommends:
ii  gnome-icon-theme         3.12.0-1
ii  libvirt-daemon           1.2.9-2
ii  python-spice-client-gtk  0.25-1

Versions of packages virt-manager suggests:
ii  gnome-keyring        3.14.0-1
ii  python-gnomekeyring  2.32.0+dfsg-3
pn  python-guestfs       <none>
pn  ssh-askpass          <none>
pn  virt-viewer          <none>

-- no debconf information
-------------- next part --------------
A non-text attachment was scrubbed...
Name: screen.jpg
Type: image/jpeg
Size: 74781 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-libvirt-maintainers/attachments/20141011/136455b5/attachment-0001.jpg>


More information about the Pkg-libvirt-maintainers mailing list