Bug 1019538 - obscure error message when an if=virtio disk is used also with -device
Summary: obscure error message when an if=virtio disk is used also with -device
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: qemu-kvm
Version: 6.5
Hardware: Unspecified
OS: Unspecified
low
low
Target Milestone: rc
: ---
Assignee: Fam Zheng
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks: 1019539
TreeView+ depends on / blocked
 
Reported: 2013-10-16 02:42 UTC by Sibiao Luo
Modified: 2014-06-17 13:14 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 1019539 (view as bug list)
Environment:
Last Closed: 2014-06-17 13:14:54 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Sibiao Luo 2013-10-16 02:42:59 UTC
Description of problem:
boot up a guest attaching a data disk speicified if=virtio/ide in cli, the QEMU will quit with wrong warning message: 'virtio-blk-pci.drive' can't take value 'drive-data-disk', it's in use. It should prompt that unsupported bus type 'viritio'/'ide'/'floppy' if it was not supported.

Version-Release number of selected component (if applicable):
host info:
# uname -r && rpm -q qemu-kvm-rhev
2.6.32-422.el6.x86_64
qemu-kvm-rhev-0.12.1.2-2.412.el6.x86_64
guest info:
2.6.32-422.el6.x86_64

How reproducible:
100%

Steps to Reproduce:
1.boot up a guest attaching a data disk speicified if=virtio/ide/floppy in cli.
e.g.1:...-drive file=/mnt/my-data-disk.qcow2,if=virtio,id=drive-data-disk,format=qcow2,cache=none -device virtio-scsi-pci,bus=pci.0,addr=0x7,id=scsi0 -device scsi-hd,drive=drive-data-disk,id=data-disk,bus=scsi0.0
qemu-kvm: -drive file=/mnt/my-data-disk.qcow2,if=virtio,id=drive-data-disk,format=qcow2,cache=none: Property 'virtio-blk-pci.drive' can't take value 'drive-data-disk', it's in use
/etc/qemu-ifdown: could not launch network script

e.g.2:...-drive file=/mnt/my-data-disk.qcow2,if=ide,id=drive-data-disk,format=qcow2,cache=none -device virtio-scsi-pci,bus=pci.0,addr=0x7,id=scsi0 -device scsi-hd,drive=drive-data-disk,id=data-disk,bus=scsi0.0
qemu-kvm: -device scsi-hd,drive=drive-data-disk,id=data-disk,bus=scsi0.0: Property 'scsi-hd.drive' can't take value 'drive-data-disk', it's in use
/etc/qemu-ifdown: could not launch network script

e.g3:...-drive file=/mnt/my-data-disk.qcow2,if=floppy,id=drive-data-disk,format=qcow2,cache=none -device virtio-scsi-pci,bus=pci.0,addr=0x7,id=scsi0 -device scsi-hd,drive=drive-data-disk,id=data-disk,bus=scsi0.0
qemu-kvm: -device scsi-hd,drive=drive-data-disk,id=data-disk,bus=scsi0.0: Property 'scsi-hd.drive' can't take value 'drive-data-disk', it's in use
/etc/qemu-ifdown: could not launch network script

e.g.4:...-drive file=/mnt/my-data-disk.qcow2,if=cdrom,id=drive-data-disk,format=qcow2,cache=none -device virtio-scsi-pci,bus=pci.0,addr=0x7,id=scsi0 -device scsi-hd,drive=drive-data-disk,id=data-disk,bus=scsi0.0
qemu-kvm: -drive file=/mnt/my-data-disk.qcow2,if=cdrom,id=drive-data-disk,format=qcow2,cache=none: unsupported bus type 'cdrom'
/etc/qemu-ifdown: could not launch network script

2.
3.

Actual results:
There is wrong warning message prompt if specify if=virtio/ide/floppy.
But if specify if=cdrom, it will quit with message: unsupported bus type 'cdrom'.

Expected results:
It should quit with prompt that unsupported bus type 'viritio'/'ide'/'floppy' if it was not supported.

Additional info:

Comment 1 Sibiao Luo 2013-10-16 02:51:53 UTC
The driver-data-disk is was not used in other options, I have no any clue here, maybe it's a commandline parser bug or pci issue.

Example of my qemu-kvm command line:
# /usr/libexec/qemu-kvm -M pc -S -cpu host -enable-kvm -m 2048 -smp 2,sockets=2,cores=1,threads=1 -no-kvm-pit-reinjection -usb -device usb-tablet,id=input0 -name sluo -uuid 990ea161-6b67-47b2-b803-19fb01d30d30 -rtc base=localtime,clock=host,driftfix=slew -device virtio-serial-pci,id=virtio-serial0,max_ports=16,vectors=0,bus=pci.0,addr=0x3 -chardev socket,id=channel1,path=/tmp/helloworld1,server,nowait -device virtserialport,chardev=channel1,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0,id=port1 -chardev socket,id=channel2,path=/tmp/helloworld2,server,nowait -device virtserialport,chardev=channel2,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0,id=port2 -drive file=/mnt/RHEL-Server-6.4-64.qcow2,if=none,id=drive-virtio-disk,format=qcow2,cache=none,aio=native,werror=stop,rerror=stop -device virtio-blk-pci,vectors=0,bus=pci.0,addr=0x4,scsi=off,drive=drive-virtio-disk,id=virtio-disk,bootindex=1 -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=virtio-net-pci0,mac=2C:41:38:B6:40:21,bus=pci.0,addr=0x5 -device virtio-balloon-pci,id=ballooning,bus=pci.0,addr=0x6 -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -k en-us -boot menu=on -spice disable-ticketing,port=5931 -monitor stdio -drive file=/mnt/my-data-disk.qcow2,if=floppy,id=drive-data-disk,format=qcow2,cache=none -device virtio-scsi-pci,bus=pci.0,addr=0x7,id=scsi0 -device scsi-hd,drive=drive-data-disk,id=data-disk,bus=scsi0.0

Comment 2 Sibiao Luo 2013-10-16 02:52:43 UTC
# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                16
On-line CPU(s) list:   0-15
Thread(s) per core:    1
Core(s) per socket:    8
Socket(s):             2
NUMA node(s):          4
Vendor ID:             AuthenticAMD
CPU family:            16
Model:                 9
Stepping:              1
CPU MHz:               1999.907
BogoMIPS:              4000.08
Virtualization:        AMD-V
L1d cache:             64K
L1i cache:             64K
L2 cache:              512K
L3 cache:              5118K
NUMA node0 CPU(s):     0,2,4,6
NUMA node1 CPU(s):     8,10,12,14
NUMA node2 CPU(s):     9,11,13,15
NUMA node3 CPU(s):     1,3,5,7

Comment 3 Paolo Bonzini 2013-10-17 10:10:20 UTC
You have:

-drive file=/mnt/my-data-disk.qcow2,if=floppy,id=drive-data-disk,format=qcow2,cache=none -device virtio-scsi-pci,bus=pci.0,addr=0x7,id=scsi0 -device scsi-hd,drive=drive-data-disk,id=data-disk,bus=scsi0.0

So drive-data-disk is in use by both virtio-scsi and floppy.  So your second and third example have a perfectly fine error.

In the first example, the error ("Property 'virtio-blk-pci.drive' can't take value 'drive-data-disk', it's in use") refers to the virtio-blk-pci device that "if=virtio" creates implicitly.  It does not refer to the scsi-hd device.

-drive file=/mnt/my-data-disk.qcow2,if=virtio,id=drive-data-disk,format=qcow2,cache=none
-device scsi-hd,drive=drive-data-disk,id=data-disk,bus=scsi0.0

But the error is only obscure, not wrong.


Note You need to log in before you can comment on or make changes to this bug.