Red Hat Bugzilla – Bug 1376542
RHSA-2016-1756 breaks migration of instances
Last modified: 2017-03-15 17:22:06 EDT
Please verify as follows: Create a 4 MB (!) LVM volume on the host. I have called it /dev/testvg/testlv. Now create qcow2 metadata on the LVM volume: $ sudo qemu-img create -f qcow2 /dev/testvg/testlv 10G (The reason for using an LVM volume instead of a regular file is that its size is fixed. Since the LVM volume cannot grow automatically we can cause ENOSPC to happen when the guest writes to it.) shell1$ sudo qemu-system-x86_64 -enable-kvm -m 1024 -cpu host -drive if=virtio,cache=none,format=raw,file=rhel72.img -drive if=virtio,cache=none,format=qcow2,file=/dev/testvg/testlv,werror=stop guest# dd if=/dev/zero of=/dev/vdb oflag=direct bs=4k The guest should be paused almost immediately because /dev/testvg/testlv runs out of space and returns an ENOSPC write error. Now launch the destination QEMU for live migration (on the same host): shell2$ sudo qemu-system-x86_64 -enable-kvm -m 1024 -cpu host -drive if=virtio,cache=none,format=raw,file=rhel72.img -drive if=virtio,cache=none,format=qcow2,file=/dev/testvg/testlv,werror=stop -incoming tcp::1234 (qemu1) migrate tcp:127.0.0.1:1234 After migration has completed the guest is still paused. Let's grow the LVM volume so the failed write request can be retried: $ sudo lvresize -L +4M /dev/testvg/testlv (qemu2) c Expected behavior: Guest resumes successfully when the 'c' monitor command is issued on destination QEMU. Note that it will probably pause again very soon because the LVM volume runs out of space again. Actual behavior: "Virtqueue size exceeded" error from destination QEMU and guest is terminated after the 'c' monitor command is issued.
Fix included in qemu-kvm-1.5.3-126.el7
Reproduce this bug using the following version: kernel-3.10.0-509.el7.x86_64 qemu-kvm-1.5.3-125.el7.x86_64 Do the test as comment #2, the detailed steps as bz1372763 comment #11. After migration and type "c" in destination qemu-kvm, guest cannot resume and destination qemu-kvm quits with error "Virtqueue size exceeded". Verify this bug using the following version: kernel-3.10.0-509.el7.x86_64 qemu-kvm-1.5.3-126.el7.x86_64 Do the test as comment #2, the detailed steps as bz1372763 comment #11. After migration and type "c" in destination qemu-kvm, guest can resume normally and guest is paused with io-error.
Based on comment 6, set this bug to be 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://rhn.redhat.com/errata/RHSA-2016-2585.html