Bug 920549

Summary: error shows when changing video from qxl to other models
Product: Red Hat Enterprise Linux 7 Reporter: EricLee <bili>
Component: virt-managerAssignee: virt-mgr-maint
Status: CLOSED CURRENTRELEASE QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0CC: codong, cwei, dallan, dyuan, jdenemar, lcui, mjenner, mkletzan, mzhan, tzheng, vbocek
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: virt-manager-0.10.0-1.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 980334 (view as bug list) Environment:
Last Closed: 2014-06-13 10:14:27 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:    
Bug Blocks: 980334, 985184    

Description EricLee 2013-03-12 10:50:36 UTC
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

Comment 2 Martin Kletzander 2013-03-14 15:08:24 UTC
This is cause by the wrong use of 'ram' instead of 'vram' and recent change in libvirt, should be trivial to fix.

Comment 3 CongDong 2013-04-07 05:38:12 UTC
I can reproduce this bug.

Comment 4 CongDong 2013-04-07 06:48:14 UTC
# 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.

Comment 5 Vojtěch Boček 2013-05-20 09:09:10 UTC
This bug also appears in Fedora 19 with virt-manager-0.10.0-0.4.gitb68faac8.fc19.noarch

Comment 6 Martin Kletzander 2013-06-03 12:29:49 UTC
Patch proposed upstream:

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

Comment 7 Martin Kletzander 2013-06-05 08:25:35 UTC
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)

Comment 8 Martin Kletzander 2013-07-16 08:36:10 UTC
Moving to ON_QA as this was fixed long ago, sorry for leaving it in POST.

Comment 9 CongDong 2013-07-17 07:54:38 UTC
I can reproduce this bug:
Version:
# rpm -qa libvirt kernel qemu-kvm virt-manager
qemu-kvm-1.5.0-2.el7.x86_64
libvirt-1.1.0-1.el7.x86_64
virt-manager-0.9.4-4.el7.noarch
kernel-3.7.0-0.36.el7.x86_64

Steps:
As steps in description.

Result:
Can't change qxl to other mode, get error message:
Error changing VM configuration: XML error: ram attribute only supported for type of qxl

Verify:
Version:
# rpm -qa qemu-kvm libvirt virt-manager
virt-manager-0.10.0-1.el7.noarch
qemu-kvm-1.5.1-2.el7.x86_64
libvirt-1.1.0-2.el7.x86_64
kernel-3.7.0-0.36.el7.x86_64

Steps:
As steps in description.

Result:
Can change qxl to other mode.

Debug info:
--- Original XML
+++ New XML
@@ -59,8 +59,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"/>
     </video>
     <memballoon model="virtio">
       <address type="pci" domain="0x0000" bus="0x00" slot="0x06" function="0x0"/>

2013-07-17 15:48:04,792 (details:589): Closing VM details: <vmmDomain object at 0x20370a0 (virtManager+domain+vmmDomain at 0x153cf00)>
2013-07-17 15:48:04,794 (engine:333): window counter decremented to 1
2013-07-17 15:48:05,960 (manager:213): Closing manager
2013-07-17 15:48:05,962 (engine:333): window counter decremented to 0
2013-07-17 15:48:05,979 (details:589): Closing VM details: <vmmDomain object at 0x20370a0 (virtManager+domain+vmmDomain at 0x153cf00)>
2013-07-17 15:48:06,037 (engine:413): Exiting app normally.

As the result, change to VERIFIED.

Comment 10 Ludek Smid 2014-06-13 10:14:27 UTC
This request was resolved in Red Hat Enterprise Linux 7.0.

Contact your manager or support representative in case you have further questions about the request.