Bug 1278068
Summary: | cannot start virtual machine after renaming it | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Jeff Bastian <jbastian> |
Component: | libvirt | Assignee: | Martin Kletzander <mkletzan> |
Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
Severity: | medium | Docs Contact: | |
Priority: | low | ||
Version: | 7.2 | CC: | amureini, dyuan, fjin, mcepl, mike, mkletzan, mzhan, rbalakri, tpelka, tzheng, xiaodwan |
Target Milestone: | rc | Keywords: | Upstream |
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | libvirt-1.3.1-1.el7 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2016-11-03 18:29:42 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: | 1295396 |
Description
Jeff Bastian
2015-11-04 16:11:16 UTC
We need not to keep the libvirt-generated socket paths in the inactive XML. I'll post a patch for that later on. Patch proposed upstream: https://www.redhat.com/archives/libvir-list/2016-January/msg00103.html Fixed upstream with v1.3.0-175-g714080791778: commit 714080791778e3dfbd484ccb3953bffd820b8ba9 Author: Martin Kletzander <mkletzan> Date: Wed Jan 6 17:35:04 2016 +0100 qemu: Don't bother user with libvirt-internal paths Also need v1.3.0-224-g93103da84bf9 and v1.3.0-225-g8223bd22ed90: commit 93103da84bf938f419b400a5c40898bd1b816331 Author: Martin Kletzander <mkletzan> Date: Fri Jan 8 14:00:56 2016 +0100 Provide parse flags to PostParse functions commit 8223bd22ed90680544ce153da0001376b58a7cf8 Author: Martin Kletzander <mkletzan> Date: Fri Jan 8 13:59:20 2016 +0100 Don't clear libvirt-internal paths when parsing status XML *** Bug 1308903 has been marked as a duplicate of this bug. *** Could reproduce this bug with libvirt-1.2.17-13.el7_2.2.x86_64 1.Prepare a guest with guest agent configured #virsh dumxpml virt-tests-vm1 -- <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-virt-tests-vm1/org.qemu.guest_agent.0'/> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> 2.Change the guest name with virsh edit , additional guest will be added #virsh edit virt-tests-vm1 <name>virt-tests-vm2</name> -- wq: # virsh list --all Id Name State ---------------------------------------------------- - virt-tests-vm1 shut off - virt-tests-vm2 shut off 3.Start the guest virt-tests-vm2, guest will fail to start # virsh start virt-tests-vm2 error: Failed to start domain virt-tests-vm2 error: internal error: process exited while connecting to monitor: 2016-03-25T07:48:34.546196Z qemu-kvm: -chardev socket,id=charchannel0,path=/var/lib/libvirt/qemu/channel/target/domain-virt-tests-vm1/org.qemu.guest_agent.0,server,nowait: Failed to bind socket to /var/lib/libvirt/qemu/channel/target/domain-virt-tests-vm1/org.qemu.guest_agent.0: No such file or directory Verify this bug with libvirt-1.3.2-1.el7.x86_64 1.Update the libvirt to the libvirt-1.3.2-1.el7.x86_64, then check the guest's xml, found the inactive guest won't generate the agent socket #virsh dumpxml virt-tests-vm2 -- <channel type='unix'> <source mode='bind'/> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> 2.Start guest, the guest could start successfully, also guest agent work expectly # virsh start virt-tests-vm2 Domain virt-tests-vm2 started #virsh dumpxml virt-tests-vm2 <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-virt-tests-vm2/org.qemu.guest_agent.0'/> <target type='virtio' name='org.qemu.guest_agent.0' state='connected'/> <alias name='channel0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> # virsh domtime virt-tests-vm2 --pretty Time: 2016-03-25 08:13:30 3.Destroy the guest, then, recheck the guest's xml #virsh dumpxml virt-tests-vm2 -- <channel type='unix'> <source mode='bind'/> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> 4.Rename the virt-tests-vm2 to virt-tests-vm3 # virsh domrename virt-tests-vm2 virt-tests-vm3 Domain successfully renamed 5.Start the guest, guest could be started successfully, also guest agent works expectly # virsh start virt-tests-vm3 Domain virt-tests-vm3 started # virsh domtime virt-tests-vm3 --pretty Time: 2016-03-25 08:20:50 6.Restart the libvirtd service, still work expectly # service libvirtd restart Redirecting to /bin/systemctl restart libvirtd.service # virsh domtime virt-tests-vm3 --pretty Time: 2016-03-25 08:21:12 Hi Martin Just try to hotplug the guest agent with the latest libvirt packet, found it fail to hotplug. BTW, it works well in rhel7.2.z. so please help check whether we need file seperate bug to track it or just fix it in this bug? thanks 1.Prepare a running guest without guest agent configured # virsh list --all Id Name State ---------------------------------------------------- - virt-tests-vm3 shut of 2.Prepare a guest agent xml # cat agent.xml <channel type='unix'> <source mode='bind'/> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> 3.Hotplug the guest agent, will report the following error # virsh attach-device virt-tests-vm3 agent.xml error: Failed to attach device from agent.xml error: internal error: unable to execute QEMU command 'chardev-add': Invalid parameter type for 'path', expected: string 4.Check the loginfo, found following messages #cat /var/log/libvirt/libvirtd.log -- 2016-03-25 09:02:22.847+0000: 10269: debug : qemuMonitorJSONCheckError:374 : unable to execute QEMU command {"execute":"chardev-add","arguments":{"id":"charchannel0","backend":{"type":"socket","data":{"addr":{"type":"unix","data":{"path":null}},"wait":false,"server":true}}},"id":"libvirt-12"}: {"id":"libvirt-12","error":{"class":"GenericError","desc":"Invalid parameter type for 'path', expected: string"}} Good catch, but please create new bug for that, thanks. Thanks Martin's response, have filed new bug 1322210 for the guest agent hotplug issue and mark this bug verified according to the upper comments 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/RHSA-2016-2577.html |