Bug 672744 - Got segmentation fault when hot unplug a virtio block device in some case
Summary: Got segmentation fault when hot unplug a virtio block device in some case
Keywords:
Status: CLOSED DUPLICATE of bug 654682
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: qemu-kvm
Version: 6.1
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Kevin Wolf
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-01-26 07:34 UTC by Qunfang Zhang
Modified: 2011-02-10 09:28 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-02-10 09:28:31 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Qunfang Zhang 2011-01-26 07:34:05 UTC
Description of problem:


Version-Release number of selected component (if applicable):
kernel-2.6.32-94.el6
qemu-kvm-0.12.1.2-2.129.el6

How reproducible:
Always

Steps to Reproduce:
1. Boot a guest with virtio block
(gdb) r -m 2G -smp 2 -cpu cpu64-rhel6,+x2apic,family=0xf -usbdevice tablet -drive file=win2k8-r2-virtio-qcow2,if=none,id=drive-virtio0,boot=on,cache=none,werror=stop,rerror=stop -device virtio-blk-pci,drive=drive-virtio0,id=virtio-blk-pci0 -netdev tap,id=hostnet0,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,mac=00:10:40:1a:30:66,bus=pci.0,addr=0x4 -boot c -uuid ab00b585-9605-4c2d-bd25-4d57245cb043 -rtc-td-hack -no-kvm-pit-reinjection -monitor stdio -name win2k8-r2 -vnc :10

2.After guest boot up, hot plug another disk.
(qemu) __com.redhat_drive_add file=storage.qcow2,format=qcow2,id=drive-virtio1
(qemu) device_add driver=virtio-blk-pci,drive=drive-virtio1,id=virtio-blk-pci1

3.Reboot guest.

4.(qemu)device_add driver=virtio-blk-pci,drive=drive-virtio1,id=virtio-blk-pci2

5.(qemu)device_del virtio-blk-pci2

5.Check the block device in "My computer" or "device manger"-> "disk management"
  
Actual results:
(qemu) 
Program received signal SIGSEGV, Segmentation fault.

Expected results:
Should not allow user to add the "virtio-blk-pci2" because there's "virtio-blk-pci1" already. 

Additional info:

qemu) 
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f37352d9710 (LWP 10932)]
bdrv_is_inserted (bs=<value optimized out>) at block.c:2422
2422	    if (!drv->bdrv_is_inserted)
Missing separate debuginfos, use: debuginfo-install cyrus-sasl-gssapi-2.1.23-8.el6.x86_64 cyrus-sasl-md5-2.1.23-8.el6.x86_64 cyrus-sasl-plain-2.1.23-8.el6.x86_64 db4-4.7.25-16.el6.x86_64
(gdb) bt
#0  bdrv_is_inserted (bs=<value optimized out>) at block.c:2422
#1  0x000000000047c531 in bdrv_check_byte_request (bs=0x190d010, sector_num=<value optimized out>, 
    nb_sectors=<value optimized out>) at block.c:815
#2  bdrv_check_request (bs=0x190d010, sector_num=<value optimized out>, nb_sectors=<value optimized out>)
    at block.c:835
#3  0x000000000047c6f8 in bdrv_aio_readv (bs=0x190d010, sector_num=0, qiov=0x7f373003e040, nb_sectors=1, 
    cb=<value optimized out>, opaque=<value optimized out>) at block.c:1890
#4  0x000000000041e0c3 in virtio_blk_handle_read (req=0x7f3730032010, mrb=<value optimized out>)
    at /usr/src/debug/qemu-kvm-0.12.1.2/hw/virtio-blk.c:302
#5  virtio_blk_handle_request (req=0x7f3730032010, mrb=<value optimized out>)
    at /usr/src/debug/qemu-kvm-0.12.1.2/hw/virtio-blk.c:345
#6  0x000000000041e3eb in virtio_blk_handle_output (vdev=0x12aa7d0, vq=<value optimized out>)
    at /usr/src/debug/qemu-kvm-0.12.1.2/hw/virtio-blk.c:359
#7  0x000000000042af59 in kvm_handle_io (env=0x103f680) at /usr/src/debug/qemu-kvm-0.12.1.2/kvm-all.c:538
#8  kvm_run (env=0x103f680) at /usr/src/debug/qemu-kvm-0.12.1.2/qemu-kvm.c:975
#9  0x000000000042aff9 in kvm_cpu_exec (env=<value optimized out>)
    at /usr/src/debug/qemu-kvm-0.12.1.2/qemu-kvm.c:1664
#10 0x000000000042bd2f in kvm_main_loop_cpu (_env=0x103f680) at /usr/src/debug/qemu-kvm-0.12.1.2/qemu-kvm.c:1932
#11 ap_main_loop (_env=0x103f680) at /usr/src/debug/qemu-kvm-0.12.1.2/qemu-kvm.c:1982
#12 0x0000003a4b4077e1 in start_thread () from /lib64/libpthread.so.0
#13 0x0000003a4ace153d in clone () from /lib64/libc.so.6

Comment 1 Qunfang Zhang 2011-01-26 07:46:08 UTC
Test with RHEL6-64 virtio guest with the same steps. Got a lot of error in qemu monitor.

block I/O error in device 'drive-virtio1': Input/output error (5)
block I/O error in device 'drive-virtio1': Input/output error (5)
block I/O error in device 'drive-virtio1': Input/output error (5)
block I/O error in device 'drive-virtio1': Input/output error (5)
block I/O error in device 'drive-virtio1': Input/output error (5)
block I/O error in device 'drive-virtio1': Input/output error (5)
block I/O error in device 'drive-virtio1': Input/output error (5)

Comment 3 Kevin Wolf 2011-02-10 09:28:31 UTC
Should be fixed in qemu-kvm-0.12.1.2-2.142.el6.

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


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