[libvirt] Attempting to pivot disk with incomplete mirror results in hang

Eric Blake eblake at redhat.com
Wed Jan 14 04:48:23 UTC 2015

On 01/13/2015 12:43 PM, Scott Sullivan wrote:
> I have what appears to be a bug when pivoting a disk during a block copy that is not yet 100% finished, resulting in the pivot command hanging. I have verified this problem on libvirt 1.2.10.

I couldn't reproduce with the latest libvirt.  After more research, I
think the problem was fixed for 1.2.11 with this commit:

commit fe3691f66348d55e88c9811fd79ff9314e053977
Author: Erik Skultety <eskultet at redhat.com>
Date:   Wed Dec 3 13:56:47 2014 +0100

    qemu: Fix virsh freeze when blockcopy storage file is removed

    If someone removes blockcopy storage file when still in mirroring phase
    and then requesting blockjob abort using pivot, virsh cmd freezes. This
    is not an issue with older qemu versions which did not support
    asynchronous jobs (which we prefer by default).
    As we have reached the mirroring phase successfully, polling monitor for
    blockjob info always returns 1 and the loop never ends.
    This fix introduces a check for qemuDomainBlockPivot return code,
    skipping the asynchronous waiting completely, if an error occurred and
    asynchronous waiting was the preferred method.

    Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1139567

Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 604 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20150113/7cb40189/attachment-0001.sig>

More information about the libvir-list mailing list