Hide Forgot
Created attachment 1199461 [details] libvirtd.log.xz Description of problem: When `virsh migrate' is called with --postcopy, `virsh save' doesn't work after the migration. Version-Release number of selected component (if applicable): libvirt-2.0.0-8.el7.x86_64 qemu-kvm-rhev-2.6.0-23.el7.x86_64 How reproducible: 100% Steps to Reproduce: Create and migrate a VM and the source host using virsh: # cat /var/tmp/dummy.xml <domain type='kvm'> <name>dummy</name> <uuid>4f836db9-e87f-425b-9278-5693be04a978</uuid> <memory unit='KiB'>1048576</memory> <os> <type arch="x86_64" machine="pc-i440fx-rhel7.2.0">hvm</type> </os> </domain> # virsh create /var/tmp/dummy.xml Domain dummy created from /var/tmp/dummy.xml # virsh migrate dummy qemu+tcp://root@DESTINATION-HOST/system --verbose --live --postcopy Migration: [100 %] Then try to save the VM on the destination host: # virsh list Id Name State ---------------------------------------------------- 1 dummy running # virsh save dummy /tmp/xxx error: Failed to save domain dummy to /tmp/xxx error: operation failed: domain save job: unexpectedly failed Actual results: `virsh save' command fails. Expected results: `virsh save' command succeeds, e.g.: # virsh save dummy /tmp/xxx Domain dummy saved to /tmp/xxx Additional info: libvirtd.log from the destination host is attached. Saving the VM works when it is migrated without --postcopy switch.
Could you please attach /var/log/libvirt/qemu/dummy.log from the destination host?
Created attachment 1199464 [details] dummy.log Adding /var/log/libvirt/qemu/dummy.log from the destination host, where `virsh save' fails.
libvirt qe can reproduce this issue. build : libvirt-2.0.0-9.el7.x86_64 qemu-kvm-rhev-2.6.0-26.el7.x86_64
Fixed upstream by commit fe1dd39087ae9a49888bc72dee38ff0e6f639693 Refs: v2.4.0-4-gfe1dd39 Author: Jiri Denemark <jdenemar> AuthorDate: Wed Nov 2 14:20:42 2016 +0100 Commit: Jiri Denemark <jdenemar> CommitDate: Wed Nov 2 15:50:44 2016 +0100 qemu: Reset post-copy capability after migration Unlike other migration capabilities, post-copy is also set on the destination host which means it doesn't disappear once domain is migrated. As a result of that other functionality which internally uses migration to a file (virDomainManagedSave, virDomainSave, virDomainCoreDump) may fail after migration because the post-copy capability is still set. https://bugzilla.redhat.com/show_bug.cgi?id=1374718 Signed-off-by: Jiri Denemark <jdenemar>
Verify with build: libvirt-3.0.0-2.el7.x86_64 qemu-kvm-rhev-2.8.0-5.el7.x86_64 step: scenario A: 1 start a guest on source 2 on source host do # virsh migrate rhel7 qemu+ssh://$target/system --postcopy --live --verbose Migration: [100 %] 3 on target host # virsh save rhel7 /tmp/rhel7 Domain rhel7 saved to /tmp/rhel7 scenario B: 1.on source host do #virsh migrate rhel7 qemu+ssh://$target/system --postcopy --postcopy-after-precopy --live --verbose Migration: [100 %] 2 on target host # virsh save rhel7 /tmp/rhel7 Domain rhel7 saved to /tmp/rhel7 # virsh restore /tmp/rhel7 Domain restored from /tmp/rhel7 # virsh list --all Id Name State ---------------------------------------------------- 5 rhel7 running scenario C: 1. on source host do # virsh migrate rhel7 qemu+ssh://$target/system --postcopy --live --verbose open another console, run # virsh migrate-postcopy rhel7 2. on target host # virsh save rhel7 /tmp/rhel7 Domain rhel7 saved to /tmp/rhel7 move to 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