Message ID | 4D5B36B0.80804@cn.fujitsu.com |
---|---|
State | New |
Headers | show |
Wen Congyang <wency@cn.fujitsu.com> writes: > steps to reproduce this bug: > 1. virsh attach-disk domain --source imagefile --target sdb --sourcetype file --driver qemu --subdriver qcow2 > error: Failed to attach disk > error: operation failed: adding scsi-disk,bus=scsi0.0,scsi-id=1,drive=drive-scsi0-0-1,id=scsi0-0-1 device failed: Property 'scsi-disk.drive' can't find value 'drive-scsi0-0-1' > > 2. virsh attach-disk domain --source imagefile --target sdb --sourcetype file --driver qemu --subdriver raw > error: Failed to attach disk > error: operation failed: adding scsi-disk,bus=scsi0.0,scsi-id=1,drive=drive-scsi0-0-1,id=scsi0-0-1 device failed: Property 'scsi-disk.drive' can't find value 'drive-scsi0-0-1' > > The format of disk image file is raw. > If we run comand 2 only, we will attach the disk successfully. > > The reason of this bug is that: we do not remove dinfo from drives and dinfo->bdrv from bdrv_states > if we open the disk image file failed. > > Signed-off-by: Wen Congyang <wency@cn.fujitsu.com> Already fixed in Kevin's block tree and 0.14-rc2 (commit 08931947), although not yet in stable. Thanks anyway!
At 02/16/2011 05:45 PM, Markus Armbruster Write: > Wen Congyang <wency@cn.fujitsu.com> writes: > >> steps to reproduce this bug: >> 1. virsh attach-disk domain --source imagefile --target sdb --sourcetype file --driver qemu --subdriver qcow2 >> error: Failed to attach disk >> error: operation failed: adding scsi-disk,bus=scsi0.0,scsi-id=1,drive=drive-scsi0-0-1,id=scsi0-0-1 device failed: Property 'scsi-disk.drive' can't find value 'drive-scsi0-0-1' >> >> 2. virsh attach-disk domain --source imagefile --target sdb --sourcetype file --driver qemu --subdriver raw >> error: Failed to attach disk >> error: operation failed: adding scsi-disk,bus=scsi0.0,scsi-id=1,drive=drive-scsi0-0-1,id=scsi0-0-1 device failed: Property 'scsi-disk.drive' can't find value 'drive-scsi0-0-1' >> >> The format of disk image file is raw. >> If we run comand 2 only, we will attach the disk successfully. >> >> The reason of this bug is that: we do not remove dinfo from drives and dinfo->bdrv from bdrv_states >> if we open the disk image file failed. >> >> Signed-off-by: Wen Congyang <wency@cn.fujitsu.com> > > Already fixed in Kevin's block tree and 0.14-rc2 (commit 08931947), > although not yet in stable. I only use master tree and do not notice that this bug has been fixed. Thank you for pointing it out. > > Thanks anyway! >
diff --git a/blockdev.c b/blockdev.c index 1333a4e..03cc000 100644 --- a/blockdev.c +++ b/blockdev.c @@ -527,7 +527,7 @@ DriveInfo *drive_init(QemuOpts *opts, int default_to_scsi) } else if (ro == 1) { if (type != IF_SCSI && type != IF_VIRTIO && type != IF_FLOPPY && type != IF_NONE) { error_report("readonly not supported by this bus type"); - return NULL; + goto cleanup; } } @@ -537,12 +537,19 @@ DriveInfo *drive_init(QemuOpts *opts, int default_to_scsi) if (ret < 0) { error_report("could not open disk image %s: %s", file, strerror(-ret)); - return NULL; + goto cleanup; } if (bdrv_key_required(dinfo->bdrv)) autostart = 0; return dinfo; + +cleanup: + bdrv_delete(dinfo->bdrv); + QTAILQ_REMOVE(&drives, dinfo, next); + qemu_free(dinfo->id); + qemu_free(dinfo); + return NULL; } void do_commit(Monitor *mon, const QDict *qdict)
steps to reproduce this bug: 1. virsh attach-disk domain --source imagefile --target sdb --sourcetype file --driver qemu --subdriver qcow2 error: Failed to attach disk error: operation failed: adding scsi-disk,bus=scsi0.0,scsi-id=1,drive=drive-scsi0-0-1,id=scsi0-0-1 device failed: Property 'scsi-disk.drive' can't find value 'drive-scsi0-0-1' 2. virsh attach-disk domain --source imagefile --target sdb --sourcetype file --driver qemu --subdriver raw error: Failed to attach disk error: operation failed: adding scsi-disk,bus=scsi0.0,scsi-id=1,drive=drive-scsi0-0-1,id=scsi0-0-1 device failed: Property 'scsi-disk.drive' can't find value 'drive-scsi0-0-1' The format of disk image file is raw. If we run comand 2 only, we will attach the disk successfully. The reason of this bug is that: we do not remove dinfo from drives and dinfo->bdrv from bdrv_states if we open the disk image file failed. Signed-off-by: Wen Congyang <wency@cn.fujitsu.com> --- blockdev.c | 11 +++++++++-- 1 files changed, 9 insertions(+), 2 deletions(-)