• J
    qemu: Fix domain resume after failed migration · 4370ac84
    Jiri Denemark 提交于
    Libvirt relies on being able to kill the destination domain and resume
    the source one during migration until we called "cont" on the
    destination. Unfortunately, QEMU automatically activates block devices
    at the end of migration even when it's called with -S. This wasn't a big
    issue in the past since the guest is not running and thus no data are
    written to the block devices. However, when QEMU introduced its internal
    block device locks, we can no longer resume the source domain once the
    destination domain already activated the block devices (and thus
    acquired all locks) unless the destination domain is killed first.
    
    Since it's impossible to synchronize the destination and the source
    libvirt daemons after a failed migration, QEMU introduced a new
    migration capability called "late-block-activate" which ensures QEMU
    won't activate block devices until it gets "cont". The only thing we
    need to do is to enable this capability whenever QEMU supports it.
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1568407
    
    QEMU commit implementing the capability: v2.12.0-952-g0f073f44df
    Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
    Reviewed-by: NJán Tomko <jtomko@redhat.com>
    4370ac84
qemu_migration_params.h 4.7 KB