Red Hat Bugzilla – Bug 852675
[Graphical framebuffer] update device with connected parameter "fail", guest's xml changed
Last modified: 2013-02-21 02:22:33 EST
Description of problem: After updated device with connected parameter "fail", guest's xml changed Version-Release number of selected component (if applicable): libvirt-0.10.0-0rc1.el6.x86_64 How reproducible: 100% Steps to Reproduce: 1.Edit graphics element of guest's xml like this: #virsh dumpxml test --security-info <graphics type='spice' autoport='yes' listen='0.0.0.0' passwd= 'aaabbb' connected= 'disconnect'> <listen type='address' address='0.0.0.0'/> </graphics> 2.Start the guest #virsh start test 3.Prepare a xml file to update device like this: #cat spice-new.xml <graphics type='spice' port='5900' tlsPort='5901' autoport='yes' listen='0.0.0.0' passwd= 'cccddd' connected= 'fail'/> 4.Open a virt-viewer window and enter the password #virt-viewer test password "aaabbb" works. 5.Update device with the xml file and there will be errors #virsh update-device test spice-new.xml error: Failed to update device from spice-new.xml error: internal error unable to execute QEMU command '__com.redhat_set_password': Could not set password 6.Check the guest's xml #virsh dumpxml test --security-info <graphics type='spice' port='5900' autoport='yes' listen='0.0.0.0' passwd= 'cccddd' connected= 'fail'> <listen type='address' address='0.0.0.0'/> </graphics> 7.Close the virt-viewer window and reopen it #virt-viewer test password "aaabbb" still works not "cccddd". Actual results: At step 6, the guest's xml changed. Expected results: At step 6, the guest's xml shouldn't change. Additional info:
Also reproduced with libvirt-0.10.0-1.el6.x86_64
Fixed upstream: commit 00b81636c557c01e808b5abf2f1ae26295804c60 Author: Peter Krempa <pkrempa@redhat.com> Date: Mon Sep 3 16:52:27 2012 +0200 qemu: Don't update graphic definitions on password change failure When the password change failed we updated the graphic definition anyways, which is not desired.
Reproduce with libvirt-0.10.0-1.el6.x86_64. Verified with the package: libvirt-0.10.2-0rc1.el6.x86_64 Test steps: 1.Edit graphics element of guest's xml like this: #virsh dumpxml test --security-info <graphics type='spice' autoport='yes' listen='0.0.0.0' passwd= 'aaabbb' connected= 'disconnect'> <listen type='address' address='0.0.0.0'/> </graphics> 2.Start the guest #virsh start test 3.Prepare a xml file to update device like this: #cat spice-new.xml <graphics type='spice' port='5900' tlsPort='5901' autoport='yes' listen='0.0.0.0' passwd= 'cccddd' connected= 'fail'/> 4.Open a virt-viewer window and enter the password #virt-viewer test password "aaabbb" works. 5.Update device with the xml file and there will be errors #virsh update-device test spice-new.xml error: Failed to update device from spice-new.xml error: internal error unable to execute QEMU command '__com.redhat_set_password': Could not set password 6.Check the guest's xml #virsh dumpxml test --security-info <graphics type='spice' autoport='yes' listen='0.0.0.0' passwd= 'aaabbb' connected= 'disconnect'> <listen type='address' address='0.0.0.0'/> </graphics> 7.Close the virt-viewer window and reopen it #virt-viewer test password "aaabbb" works not "cccddd". Test results: Guest 's xml didn't change. Current command works well.
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/RHSA-2013-0276.html