Bug 985184

Summary: error shows when changing video from qxl to other models
Product: Red Hat Enterprise Linux 6 Reporter: Martin Kletzander <mkletzan>
Component: virt-managerAssignee: Martin Kletzander <mkletzan>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.5CC: acathrow, bili, codong, dallan, dyuan, hyao, lcui, mjenner, mkletzan, mzhan, tzheng, vbocek
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: virt-manager-0.9.0-19.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 980334 Environment:
Last Closed: 2013-11-21 20:39:00 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 920549, 980334    
Bug Blocks:    

Description Martin Kletzander 2013-07-17 04:17:32 UTC
+++ This bug was initially created as a clone of Bug #980334 +++

The bug can be reproduced on rhel6.
version:
virt-manager-0.9.0-18.el6.x86_64
libvirt-0.10.2-18.el6_4.9.x86_64


+++ This bug was initially created as a clone of Bug #920549 +++

Description of problem:
error shows when changing video from qxl to other models

Version-Release number of selected component (if applicable):
# rpm -qa libvirt qemu-kvm virt-manager kernel
kernel-3.7.0-0.36.el7.x86_64
virt-manager-0.9.4-4.el7.noarch
libvirt-1.0.3-1.el7.x86_64
qemu-kvm-1.4.0-1.el7.x86_64

Reproduce steps:
1. prepare a guest with a qxl video device, guest xml like:
    <video>
      <model type='qxl' ram='65536' vram='65536' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>

2. # virt-manager, select video device from the guest, and change model from qxl to others will get error:
Error changing VM configuration: XML error: ram attribute only supported for type of qxl

Actual results:
As steps.

Expected results:
Step 2 should work well and delete <ram> element automaticly when change models.

Additional info:
Debug info:
2013-03-12 18:18:24,788 (details:557): Showing VM details: <vmmDomain object at 0x33095f0 (virtManager+domain+vmmDomain at 0x3370ba0)>
2013-03-12 18:18:24,818 (engine:326): window counter incremented to 2
2013-03-12 18:18:33,442 (libvirtobject:135): Redefining 'kvm1' with XML diff:
--- Original XML
+++ New XML
@@ -57,8 +57,7 @@
       <address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x0"/>
     </sound>
     <video>
-      <model type="qxl" ram="65536" vram="65536" heads="1"/>
-      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0"/>
+      <model type="cirrus" ram="65536"/>
     </video>
     <memballoon model="virtio">
       <address type="pci" domain="0x0000" bus="0x00" slot="0x06" function="0x0"/>

2013-03-12 18:18:33,447 (error:80): dialog message: Error changing VM configuration: XML error: ram attribute only supported for type of qxl : Error changing VM configuration: XML error: ram attribute only supported for type of qxl

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/details.py", line 2463, in _change_config_helper
    self.vm.redefine_cached()
  File "/usr/share/virt-manager/virtManager/domain.py", line 335, in redefine_cached
    self._redefine_xml(xml)
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 147, in _redefine_xml
    return self._redefine_helper(origxml, newxml)
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 137, in _redefine_helper
    self._define(newxml)
  File "/usr/share/virt-manager/virtManager/domain.py", line 822, in _define
    self.conn.define_domain(newxml)
  File "/usr/share/virt-manager/virtManager/connection.py", line 814, in define_domain
    return self.vmm.defineXML(xml)
  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 2808, in defineXML
    if ret is None:raise libvirtError('virDomainDefineXML() failed', conn=self)
libvirtError: XML error: ram attribute only supported for type of qxl

--- Additional comment from Martin Kletzander on 2013-03-14 11:08:24 EDT ---

This is cause by the wrong use of 'ram' instead of 'vram' and recent change in libvirt, should be trivial to fix.

--- Additional comment from CongDong on 2013-04-07 01:38:12 EDT ---

I can reproduce this bug.

--- Additional comment from CongDong on 2013-04-07 02:48:14 EDT ---

# rpm -qa libvirt qemu-kvm virt-manager kernel
virt-manager-0.9.4-4.el7.noarch
libvirt-1.0.3-1.el7.x86_64
qemu-kvm-1.4.0-1.el7.x86_64

setps are same with description:

1. prepare a guest with a qxl video device, guest xml like:
    <video>
      <model type='qxl' ram='65536' vram='65536' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>

2. # virt-manager, select video device from the guest, and change model from qxl to others will get error:
Error changing VM configuration: XML error: ram attribute only supported for type of qxl

Results:
can't change mode to others, and error come out same as description.

--- Additional comment from Vojtěch Boček on 2013-05-20 05:09:10 EDT ---

This bug also appears in Fedora 19 with virt-manager-0.10.0-0.4.gitb68faac8.fc19.noarch

--- Additional comment from Martin Kletzander on 2013-06-03 08:29:49 EDT ---

Patch proposed upstream:

https://www.redhat.com/archives/virt-tools-list/2013-June/msg00000.html

--- Additional comment from Martin Kletzander on 2013-06-05 04:25:35 EDT ---

Moving to POST:

commit 14578fc2c30b4e694db66443e0dca22ba9727c84
Author: Cole Robinson <crobinso>
Date:   Mon May 27 18:50:25 2013 -0400

    details: Fix changing cirrus->QXL for active VM (bz 928882)

--- Additional comment from RHEL Product and Program Management on 2013-07-02 02:11:14 EDT ---

Since this bug report was entered in bugzilla, the release flag has been
set to ? to ensure that it is properly evaluated for this release.

--- Additional comment from Martin Kletzander on 2013-07-16 04:36:20 EDT ---

Fixed upstream with:

commit 14578fc2c30b4e694db66443e0dca22ba9727c84
Author: Cole Robinson <crobinso>
Date:   Mon May 27 18:50:25 2013 -0400

    details: Fix changing cirrus->QXL for active VM (bz 928882)

Comment 3 luxin 2013-08-05 03:44:43 UTC
I can reproduce this bug:

Version:
virt-manager-0.9.0-18.el6.x86_64
libvirt-0.10.2-18.el6_4.9.x86_64

Steps for Reproduce:
1. prepare a guest with a qxl video device, guest xml like:
    <video>
      <model type='qxl' ram='65536' vram='65536' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>

2. # virt-manager, select video device from the guest, and change model from qxl to others.

Result:
After step 2, get error:
Error changing VM configuration: XML error: ram attribute only supported for type of qxl

Verify:
libvirt-0.10.2-21.el6.x86_64
virt-manager-0.9.0-19.el6.x86_64

Steps for Verify:
1. prepare a guest with a qxl video device, guest xml like:
    <video>
      <model type='qxl' ram='65536' vram='65536' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>

2. # virt-manager, select video device from the guest, and change model from qxl to others.

Result:
After step 2, guest works well and delete <ram> element automaticly when change models.

Comment 4 errata-xmlrpc 2013-11-21 20:39:00 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2013-1646.html