Bug 1446205
Summary: | libvirtd crashes when migrate a transient domain created by 'virsh create' with --persistent option | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Yanqiu Zhang <yanqzhan> | ||||||
Component: | libvirt | Assignee: | Jiri Denemark <jdenemar> | ||||||
Status: | CLOSED ERRATA | QA Contact: | Yanqiu Zhang <yanqzhan> | ||||||
Severity: | high | Docs Contact: | |||||||
Priority: | high | ||||||||
Version: | 7.4 | CC: | dyuan, fjin, lcheng, lizhu, mzhan, rbalakri, xuzhang, yafu, yanqzhan, zpeng | ||||||
Target Milestone: | rc | Keywords: | Regression | ||||||
Target Release: | --- | ||||||||
Hardware: | x86_64 | ||||||||
OS: | Linux | ||||||||
Whiteboard: | |||||||||
Fixed In Version: | libvirt-3.2.0-4.el7 | Doc Type: | If docs needed, set a value | ||||||
Doc Text: | Story Points: | --- | |||||||
Clone Of: | Environment: | ||||||||
Last Closed: | 2017-08-02 00:08:25 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: | |||||||||
Attachments: |
|
Created attachment 1274627 [details]
gdb.txt
Strange that the crash points to libvirt-daemon-3.2.0-3.virtcov.el7 package. Can you please double check which packages were installed? I guess libvirt debug logs would help too. Anyway worth investigating... Patch sent upstream for review: https://www.redhat.com/archives/libvir-list/2017-May/msg00040.html This is now fixed upstream by commit 59307fade86fb74db1f8f572433962233f7ac123 Refs: v3.3.0-rc1-4-g59307fade Author: Jiri Denemark <jdenemar> AuthorDate: Tue May 2 18:01:04 2017 +0200 Commit: Jiri Denemark <jdenemar> CommitDate: Tue May 2 18:53:19 2017 +0200 qemu: Fix persistent migration of transient domains While fixing a bug with incorrectly freed memory in commit v3.1.0-399-g5498aa29a, I accidentally broke persistent migration of transient domains. Before adding qemuDomainDefCopy in the path, the code just took NULL from vm->newDef and used it as the persistent def, which resulted in no persistent XML being sent in the migration cookie. This scenario is perfectly valid and the destination correctly handles it by using the incoming live definition and storing it as the persistent one. After the mentioned commit libvirtd would just segfault in the described scenario. https://bugzilla.redhat.com/show_bug.cgi?id=1446205 Signed-off-by: Jiri Denemark <jdenemar> Verified with libvirt-3.2.0-4.el7.x86_64 Steps: 1.# virsh create V.xml Domain V created from V.xml 2.# virsh migrate V --live qemu+ssh://{target_ip}/system --persistent --verbose Migration: [100 %] And no libvirtd crash. 3.On target: # virsh list --all --persistent Id Name State ---------------------------------------------------- 12 V running And target xml is almost same with step 1. Since the result is as expected, mark this bug as verified. 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://access.redhat.com/errata/RHEA-2017:1846 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://access.redhat.com/errata/RHEA-2017:1846 |
Created attachment 1274626 [details] bt.txt Description of problem: libvirtd crashes when migrate a transient domain created by 'virsh create' with --persistent option. can't reproduce when define->start-> undefine a domain Version-Release number of selected component (if applicable): libvirt-3.2.0-3.el7.x86_64 qemu-kvm-rhev-2.9.0-1.el7.x86_64 How reproducible: 100% Steps to Reproduce: 1.create a transient domain by 'virsh create' # virsh create V.xml Domain V created from V.xml 2. try to migrate the transient domain with --persistent option # virsh migrate V --live qemu+ssh://{target_ip}/system --persistent error: Disconnected from qemu:///system due to I/O error error: End of file while reading data: Input/output error 3.check abrt # abrt-cli list|head id b455e7a03f1332f1bf4bcf4827d0ef5bbfff1b32 reason: libvirtd killed by SIGSEGV time: Thu 27 Apr 2017 07:48:55 PM CST cmdline: /usr/sbin/libvirtd package: libvirt-daemon-3.2.0-3.virtcov.el7 uid: 0 (root) Directory: /var/spool/abrt/ccpp-2017-04-27-19:48:55-15299 Run 'abrt-cli report /var/spool/abrt/ccpp-2017-04-27-19:48:55-15299' for creating a case in Red Hat Customer Portal Actual results: libvirtd crashes when migrate a transient domain created by 'virsh create' with --persistent option. Expected results: libvirtd should not crash, and migration should succeed. Additional info: 1.Not reproduces on rhel7.3 with: libvirt-2.0.0-10.virtcov.el7_3.7.x86_64 qemu-kvm-rhev-2.6.0-28.el7_3.9.x86_64 2.For backtrace info, pls refer to attachment 'bt.txt'.