Bug 1169295

Summary: virt-manager should remove "vgamem" from guest automatically when change video from "qxl" to "vga"
Product: Red Hat Enterprise Linux 7 Reporter: zhoujunqin <juzhou>
Component: virt-managerAssignee: virt-mgr-maint
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.1CC: codong, dyuan, gscrivan, liye, tzheng
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: virt-manager-1.1.0-9.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-05 10:07:37 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:

Description zhoujunqin 2014-12-01 09:37:43 UTC
Description of problem:
virt-manager should remove "vgamem" from guest automatically when change video from "qxl" to "vga"

Version-Release number of selected component (if applicable):
libvirt-1.2.8-9.el7.x86_64
virt-manager-1.1.0-8.el7.noarch
qemu-kvm-rhev-2.1.2-13.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1. Install a guest via virt-manager with qxl video:
...
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='8192' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
...

2. Launch virt-manager, change guest video from qxl to vga: Double click guest name-->Show virtual hardware details-->change video from qxl to vga-->Apply

Actual results:
After click "Apply" button, get such error message:

Error changing VM configuration: XML error: vgamem attribute only supported for type of qxl

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/addhardware.py", line 1384, in change_config_helper
    vm.redefine_cached()
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 222, in redefine_cached
    self._redefine_xml(xml)
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 247, in _redefine_xml
    return self._redefine_helper(origxml, newxml)
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 239, in _redefine_helper
    self._define(newxml)
  File "/usr/share/virt-manager/virtManager/domain.py", line 1041, in _define
    self.conn.define_domain(newxml)
  File "/usr/share/virt-manager/virtManager/connection.py", line 694, in define_domain
    return self._backend.defineXML(xml)
  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 3442, in defineXML
    if ret is None:raise libvirtError('virDomainDefineXML() failed', conn=self)
libvirtError: XML error: vgamem attribute only supported for type of qxl

Expected results:
No such error showing and can change guest video successfully.

Additional info:
1. Can also reproduce this issue when change video from qxl to cirrus.

Comment 2 Giuseppe Scrivano 2014-12-01 15:43:53 UTC
fix proposed upstream:

https://www.redhat.com/archives/virt-tools-list/2014-December/msg00003.html

Comment 5 zhoujunqin 2014-12-03 03:16:51 UTC
Try to verify this bug with new build:
virt-manager-1.1.0-9.el7.noarch

Steps as Comment 0:

1. Install a guest via virt-manager with qxl video:
...
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='8192' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
...

2. Launch virt-manager, change guest video from qxl to vga: Double click guest name-->Show virtual hardware details-->change video from qxl to vga-->Apply

Result: video changed to VGA successfully with no error and guest can boot up.

     <video>
-      <model type="qxl" ram="65536" vram="65536" vgamem="8192" heads="1"/>
-      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0"/>
+      <model type="vga"/>
     </video>
     <redirdev bus="usb" type="spicevmc">
     </redirdev>

3. Rerun step2 and change video from qxl to cirrus.

     <video>
-      <model type="qxl" ram="65536" vram="65536" vgamem="8192" heads="1"/>
-      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0"/>
+      <model type="cirrus"/>
     </video>

Result: video changed to Cirrus successfully with no error and guest can boot up.

so move this bug from ON_QA to VERIFIED.

Comment 7 errata-xmlrpc 2015-03-05 10:07:37 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.

https://rhn.redhat.com/errata/RHBA-2015-0427.html