The error "... but the cause is unknown" appeared for XMLs similar to this: <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/dev/zero'/> <target dev='sr0'/> </disk> Notice unsupported disk type (for the driver), but also no address specified. The first part is not a problem and we should not abort immediately because of that, but the combination with the address unknown was causing an unspecified error. While fixing this, I added an error to one place where this return value was not managed properly. --- v2: - Error moved from virDiskNameToIndex@util/util.c to virDomainDiskDefAssignAddress@conf/domain_conf.c - One more error added into qemuParseCommandLine@qemu/qemu_command.c src/conf/domain_conf.c | 6 +++++- src/qemu/qemu_command.c | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index ed21f0f..3a1be02 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -3063,8 +3063,12 @@ int virDomainDiskDefAssignAddress(virCapsPtr caps, virDomainDiskDefPtr def) { int idx = virDiskNameToIndex(def->dst); - if (idx < 0) + if (idx < 0) { + virReportError(VIR_ERR_XML_ERROR, + _("Unknown disk name '%s' and no address specified"), + def->dst); return -1; + } switch (def->bus) { case VIR_DOMAIN_DISK_BUS_SCSI: diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 22bb209..097de9b 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -8342,8 +8342,12 @@ virDomainDefPtr qemuParseCommandLine(virCapsPtr caps, !disk->dst) goto no_memory; - if (virDomainDiskDefAssignAddress(caps, disk) < 0) + if (virDomainDiskDefAssignAddress(caps, disk) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("Cannot assign address for device name '%s'"), + disk->dst); goto error; + } if (VIR_REALLOC_N(def->disks, def->ndisks+1) < 0) goto no_memory; -- 1.8.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list