Bug 771545

Summary: qemu should give friendly messages instead of quitting when Hot-plugging two devices with the same bootindex values
Product: Red Hat Enterprise Linux 7 Reporter: FuXiangChun <xfu>
Component: qemu-kvm-rhevAssignee: Marcel Apfelbaum <marcel>
Status: CLOSED DUPLICATE QA Contact: Virtualization Bugs <virt-bugs>
Severity: low Docs Contact:
Priority: low    
Version: 7.0CC: bcao, bsarathy, juzhang, knoel, michen, mkenneth, rbalakri, rhod, sluo, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-11-02 14:11:30 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 963588    

Description FuXiangChun 2012-01-04 02:53:10 UTC
Description of problem:
Currently,if using the same bootindex values to hot-plug two devices, qemu will quit immediately. 

Version-Release number of selected component (if applicable):
# rpm -qa|grep qemu
qemu-kvm-tools-0.12.1.2-2.212.el6.x86_64
# uname -r
2.6.32-220.el6.x86_64

How reproducible:
always

Steps to Reproduce:
1.# /usr/libexec/qemu-kvm -M rhel6.2.0 -m 4096 -smp
4,cores=2,threads=1,sockets=2 -cpu cpu64-rhel6,+sse2,+x2apic -name rhel6.2-64
-chardev socket,id=serial_id_20111215,path=/tmp/serial,server,nowait -device
isa-serial,chardev=serial_id_20111215 -drive
file=/home/win2008r2-sp1-3.qcow2,index=0,if=none,id=drive-virtio-disk1,media=disk,cache=none,format=qcow2,aio=native
-device
virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk1,id=virtio-disk1,bootindex=1
-device
virtio-net-pci,netdev=idbEmLYK,mac=9a:3c:3a:f0:b4:1a,id=ndev00idbEmLYK,bus=pci.0,addr=0x3
-netdev tap,id=idbEmLYK,vhost=on -rtc base=utc,clock=host,driftfix=slew -boot
order=cdn,once=d,menu=on -no-kvm-pit-reinjection -usb -device usb-tablet
-enable-kvm -chardev
socket,id=qmp_monitor_id_qmpmonitor1,path=/tmp/monitor-qmpmonitor1,server,nowait
-mon chardev=qmp_monitor_id_qmpmonitor1,mode=control -spice
port=5912,disable-ticketing -vga qxl -monitor stdio -drive
file=/home/second-disk-3.qcow2,index=1,if=none,id=drive-virtio-disk2,media=disk,cache=none,format=qcow2,aio=native
-device
virtio-blk-pci,bus=pci.0,addr=0x5,drive=drive-virtio-disk2,id=virtio-disk2,bootindex=2

2.(qemu)device_del virtio-disk2

3.(qemu) __com.redhat_drive_add
file=/home/second-disk-3.qcow2,id=drive-virtio-disk2,media=disk,cache=none,format=qcow2,aio=native
(qemu) device_add
virtio-blk-pci,bus=pci.0,addr=0x5,drive=drive-virtio-disk2,id=virtio-disk2,bootindex=2
  
Actual results:
qemu quit, and show below info
Two devices with same boot index 2

Expected results:
qemu work well(shouldn't quit) and reserve tips for correct information

Additional info:

Comment 1 juzhang 2012-01-04 03:08:15 UTC
> 2.(qemu)device_del virtio-disk2
> 
> 3.(qemu) __com.redhat_drive_add
> file=/home/second-disk-3.qcow2,id=drive-virtio-disk2,media=disk,cache=none,format=qcow2,aio=native
> (qemu) device_add
> virtio-blk-pci,bus=pci.0,addr=0x5,drive=drive-virtio-disk2,id=virtio-disk2,bootindex=2
> 
Maybe the key reason is step2 "device_del virtio-disk2" did not remove
bootindex flag:"bootindex=2". As usual,device_del should delete all
virtio-disk2 related flags and address. after device_del, all flags and address
can be re-use.

Comment 2 Ronen Hod 2012-01-05 16:39:23 UTC
Gleb,
Dev_ack+ for 6.4, to allow you a convenient moment to deal with this err-msg issue.
We'll move to 6.3 if you do it earlier.

Comment 3 Karen Noel 2012-05-30 12:05:52 UTC
Not worth fixing for RHEL 6.x because customers are unlikely to hit this problem. 

-> Move to 7.0.

Comment 5 Marcel Apfelbaum 2013-09-10 11:06:57 UTC
Removed RFE since is a plain bug.
Splitting into 2 bugs:
1. qemu should give a message and return error and not quit
2. del_device should remove the device from boot order list

I am going to work on it, so cond_nack upstream.

Comment 6 Marcel Apfelbaum 2013-09-16 10:22:31 UTC
The boot order is passed in fw cfg and updated only once at
"machine done". There is no update of this list after this point.
Modifying the boot order from monitor does not work at all.
 
 So in order to solve this issue we can:
 1. Don't allow use of bootindex at hot-plug
 2. Change the architecture so boot order changing during hot-plug will be possible

Currently discussed upstream

Comment 8 Ronen Hod 2013-11-03 12:57:20 UTC
*** Bug 969968 has been marked as a duplicate of this bug. ***

Comment 10 Marcel Apfelbaum 2014-11-02 13:59:14 UTC
Moved to qemu-kvm-rhev because:
1. It is not a regression
2. The upstream featyre has a 30 patches series that solves a much bigger issue: botindex change between VM reboots

Comment 11 Marcel Apfelbaum 2014-11-02 14:11:30 UTC
BZ 1086603 is much wider and the upstream series solves it.

*** This bug has been marked as a duplicate of bug 1086603 ***