qemu returns error but only in the event after the block job actually starts. Reject it upfront for a better error message. Instead of: $ virsh blockcopy vm hdc /tmp/raw.img --granularity 4096 --verbose --wait error: Block Copy unexpectedly failed You will now get: $ virsh blockcopy vm hdc /tmp/raw.img --granularity 4096 --verbose --wait error: unsupported configuration: granularity can't be used with target volume format Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1233115 --- src/qemu/qemu_driver.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index c1373de..f570879 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -16671,6 +16671,16 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm, goto endjob; } + /* blacklist granularity with some known-bad formats */ + if (granularity && + (mirror->format == VIR_STORAGE_FILE_RAW || + (mirror->format <= VIR_STORAGE_FILE_NONE && + disk->src->format == VIR_STORAGE_FILE_RAW))) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("granularity can't be used with target volume format")); + goto endjob; + } + /* Prepare the destination file. */ /* XXX Allow non-file mirror destinations */ if (!virStorageSourceIsLocalStorage(mirror)) { -- 2.4.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list