Encryption secrets are considered a format dependency, even when being used by the storage node itself, as in the case of using encryption engine=librbd. Currently, the storage node is created (blockdev-add) before creating the format dependencies (including encryption secrets). As a result, when trying to perform a blockcopy when the target disk uses librbd encryption, an error of this form is returned: "error: internal error: unable to execute QEMU command 'blockdev-add': No secret with id 'libvirt-5-format-encryption-secret0'" To overcome this error, we change the order of commands so that format dependencies are created BEFORE creating the storage node. Signed-off-by: Or Ozeri <oro@xxxxxxxxxx> --- src/qemu/qemu_block.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index e865aa17f9..2aafb2fac7 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -1490,9 +1490,9 @@ qemuBlockStorageSourceAttachApply(qemuMonitor *mon, qemuBlockStorageSourceAttachData *data) { if (qemuBlockStorageSourceAttachApplyStorageDeps(mon, data) < 0 || + qemuBlockStorageSourceAttachApplyFormatDeps(mon, data) < 0 || qemuBlockStorageSourceAttachApplyStorage(mon, data) < 0 || qemuBlockStorageSourceAttachApplyStorageSlice(mon, data) < 0 || - qemuBlockStorageSourceAttachApplyFormatDeps(mon, data) < 0 || qemuBlockStorageSourceAttachApplyFormat(mon, data) < 0) return -1; -- 2.25.1