It seems that the following commit for libvirt fixed the problem. https://github.com/libvirt/libvirt/blob/960326237764f8970250a3608e7b2b880e030715/src/qemu/qemu_migration.c
-- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1712818 Title: live migration with storage encounter assert(!(bs->open_flags & BDRV_O_INACTIVE)) crashes Status in QEMU: New Bug description: The vm guest runs a iotest program, and i migrate it with virsh --copy-storage-all,then the qemu process on the source host happens to crash with the following message: kvm: block/io.c:1543: bdrv_co_pwritev: Assertion `!(bs->open_flags & 0x0800)' failed. 2017-08-24 11:43:45.919+0000: shutting down, reason=crashed here is the release: qemu 2.7 & 2.10.rc3 were tested. libvirt 3.0.0 & 3.2.0 were tested. command line: src_host:virsh migrate --verbose --live --persistent --copy-storage-all vm-core qemu+ssh://dst_host/system Possible Reason: After bdrv_inactivate_all() was called, mirror_run coroutine still writes the left dirty disk data to remote nbd server, which triggers the assertion. But I don't known how to avoid the problem, help is needed! Thanks. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1712818/+subscriptions