Bug 984825 - [vioscsi]Segmentation fault when do s3 after block_resize a hotplug disk on win7 guest.
[vioscsi]Segmentation fault when do s3 after block_resize a hotplug disk on w...
Status: CLOSED CURRENTRELEASE
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: virtio-win (Show other bugs)
7.0
Unspecified Unspecified
medium Severity medium
: rc
: 7.0
Assigned To: Vadim Rozenfeld
Virtualization Bugs
:
Depends On:
Blocks: Virt-S3/S4-7.0
  Show dependency treegraph
 
Reported: 2013-07-16 02:51 EDT by Min Deng
Modified: 2014-06-18 04:56 EDT (History)
10 users (show)

See Also:
Fixed In Version: build74
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2014-06-13 07:39:43 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Min Deng 2013-07-16 02:51:13 EDT
Description of problem:
Sleep failed while block_resize a hotplug disk on win7 guest with vioscsi installed.

Version-Release number of selected component (if applicable):
qemu-kvm-1.5.1-2.el7.x86_64
build 65

How reproducible:
1 times

Steps to Reproduce:
1.boot up guest with the CLI
  /usr/libexec/qemu-kvm -m 6G -smp 4 -cpu Opteron_G3,family=0xf -usb -device usb-tablet -netdev tap,sndbuf=0,id=hostnet0,script=/etc/qemu-ifup,downscript=no -device e1000,netdev=hostnet0,mac=00:1c:3f:21:46:31 -uuid cccc6a20-2351-4762-a654-b7990c16d720 -vnc :1 -rtc base=localtime,clock=host,driftfix=slew -chardev socket,id=seabios_debug,path=/tmp/monitor-seabios,server,nowait -device isa-debugcon,iobase=0x402,chardev=seabios_debug -drive file=win7-32.qcow3,if=none,media=disk,format=raw,rerror=stop,werror=stop,cache=none,id=scsi-disk0,format=qcow2 -drive file=disk1.qcow3,if=none,media=disk,format=qcow2,rerror=stop,werror=stop,cache=none,aio=native,id=scsi-disk1 -drive file=disk2.qcow3,if=none,media=disk,format=qcow2,rerror=stop,werror=stop,cache=none,aio=native,id=scsi-disk2 -drive file=disk3.qcow3,if=none,media=disk,format=qcow2,rerror=stop,werror=stop,cache=none,aio=native,id=scsi-disk3 -drive file=disk4.qcow3,if=none,media=disk,format=qcow2,rerror=stop,werror=stop,cache=none,aio=native,id=scsi-disk4,readonly=on -device virtio-scsi-pci,id=bus1 -device scsi-hd,bus=bus1.0,drive=scsi-disk0,id=disk,serial=test,bootindex=1 -device scsi-hd,bus=bus1.0,drive=scsi-disk1,id=disk1,serial=test1 -device scsi-hd,bus=bus1.0,drive=scsi-disk2,id=disk2,serial=test2 -device scsi-hd,bus=bus1.0,drive=scsi-disk3,id=disk3,serial=test3 -device scsi-hd,bus=bus1.0,drive=scsi-disk4,id=disk4,serial=test4 -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -monitor stdio -qmp tcp:0:1111,server,nowait -device virtio-scsi-pci,id=bus2 -device scsi-hd,bus=bus2.0,drive=scsi-disk5,id=disk5,serial=test5 -drive file=disk5.qcow3,if=none,media=disk,format=qcow2,rerror=stop,werror=stop,cache=none,aio=native,id=scsi-disk5 -spice disable-ticketing,port=5931 -vga qxl
2.in monitor
  1.device_add virtio-scsi-pci,id=scsi-hotadddrive-data-disk1
  2.drive_add pci_addr=auto file=/mnt/test30.qcow2,if=none,id=drive-   data-disk1,format=qcow2,cache=none,aio=native,werror=stop,rerror=stop
  3.device_add scsi-hd,drive=drive-data-disk1,id=hotadd,bus=scsi-hotadd.0
3.Go to guest and rescan disks from device manager and then go back to monitor
 and 
  block_resize drive-data-disk1 50G 
4.Copy files to the disk after format it 
5.Do Sleep 

Actual results:
The sleep can finish

Expected results:
Sleep failed 

Additional info:
Comment 1 Min Deng 2013-07-16 02:51:33 EDT
Error info from gdb
--------------------------------------------------------------------
(qemu) block_resize drive-data-disk1 50G
(qemu) 
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffea207700 (LWP 31542)]
bdrv_getlength (bs=0x0) at block.c:2709
2709	    BlockDriver *drv = bs->drv;
(gdb) bt
#0  bdrv_getlength (bs=0x0) at block.c:2709
#1  0x00005555555d736d in bdrv_get_geometry (bs=<optimized out>, 
    nb_sectors_ptr=nb_sectors_ptr@entry=0x7fffea206990) at block.c:2725
#2  0x00005555556880b6 in scsi_disk_reset (dev=0x555556e0e710) at hw/scsi/scsi-disk.c:1982
#3  0x00005555556395f9 in qdev_reset_one (dev=dev@entry=0x555556e0e710, opaque=opaque@entry=0x0)
    at hw/core/qdev.c:227
#4  0x0000555555638cf0 in qdev_walk_children (dev=0x555556e0e710, 
    devfn=devfn@entry=0x5555556395e0 <qdev_reset_one>, 
    busfn=busfn@entry=0x5555556375e0 <qbus_reset_one>, opaque=opaque@entry=0x0)
    at hw/core/qdev.c:376
#5  0x0000555555638dfa in qbus_walk_children (bus=bus@entry=0x5555570a6910, 
    devfn=devfn@entry=0x5555556395e0 <qdev_reset_one>, 
    busfn=busfn@entry=0x5555556375e0 <qbus_reset_one>, opaque=opaque@entry=0x0)
    at hw/core/qdev.c:360
#6  0x0000555555638e6d in qbus_reset_all (bus=bus@entry=0x5555570a6910) at hw/core/qdev.c:248
#7  0x0000555555777a53 in virtio_scsi_reset (vdev=<optimized out>)
    at /usr/src/debug/qemu-1.5.1/hw/scsi/virtio-scsi.c:451
#8  0x000055555577f62e in virtio_reset (opaque=0x5555570a67f8)
    at /usr/src/debug/qemu-1.5.1/hw/virtio/virtio.c:543
#9  0x00005555556b7a80 in virtio_ioport_write (val=0, addr=<optimized out>, opaque=0x5555570a6000)
    at hw/virtio/virtio-pci.c:307
#10 virtio_pci_config_write (opaque=0x5555570a6000, addr=<optimized out>, val=0, 
    size=<optimized out>) at hw/virtio/virtio-pci.c:422
#11 0x0000555555785c62 in access_with_adjusted_size (addr=addr@entry=18, 
    value=value@entry=0x7fffea206b58, size=1, access_size_min=<optimized out>, 
    access_size_max=<optimized out>, 
    access=access@entry=0x555555786220 <memory_region_write_accessor>, 
    opaque=opaque@entry=0x5555570a66b0) at /usr/src/debug/qemu-1.5.1/memory.c:364
#12 0x0000555555787137 in memory_region_iorange_write (iorange=<optimized out>, offset=18, 
    width=1, data=0) at /usr/src/debug/qemu-1.5.1/memory.c:439
#13 0x00005555557847d2 in kvm_handle_io (count=1, size=1, direction=1, data=<optimized out>, 
---Type <return> to continue, or q <return> to quit---
    port=65490) at /usr/src/debug/qemu-1.5.1/kvm-all.c:1482
#14 kvm_cpu_exec (env=env@entry=0x555556d8ec80) at /usr/src/debug/qemu-1.5.1/kvm-all.c:1634
#15 0x000055555572fdd5 in qemu_kvm_cpu_thread_fn (arg=0x555556d8ec80)
    at /usr/src/debug/qemu-1.5.1/cpus.c:759
#16 0x00007ffff6263c53 in start_thread () from /lib64/libpthread.so.0
#17 0x00007ffff39f00dd in clone () from /lib64/libc.so.6
Comment 4 Ronen Hod 2014-01-02 05:12:56 EST
QE,
Please rescan the disk in step 3 also after the resize. It will help us understand the problem.
Thanks.
Comment 5 juzhang 2014-01-02 05:14:44 EST
Hi Min,

Could you have a try and update the result in the bz?

Best Regards,
Junyi
Comment 6 Min Deng 2014-01-06 02:36:22 EST
(In reply to juzhang from comment #5)
> Hi Min,
> 
> Could you have a try and update the result in the bz?
> 
> Best Regards,
> Junyi

Re-test the bug with build
qemu-kvm-1.5.3-30.el7.x86_64
build74
After step3,rescan the disk,it changed to new size accordingly.
Beside,after step5,I could not reproduce the issue any more via above build.
Comment 7 Mike Cao 2014-02-24 01:30:42 EST
Move to verified based on comment #6
Comment 8 Ludek Smid 2014-06-13 07:39:43 EDT
This request was resolved in Red Hat Enterprise Linux 7.0.

Contact your manager or support representative in case you have further questions about the request.

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