Bugzilla will be upgraded to version 5.0. The upgrade date is tentatively scheduled for 2 December 2018, pending final testing and feedback.
Bug 1361490 - system_reset should clear pending request for error (virtio-blk)
system_reset should clear pending request for error (virtio-blk)
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: qemu-kvm (Show other bugs)
6.9
Unspecified Unspecified
unspecified Severity unspecified
: rc
: ---
Assigned To: Fam Zheng
aihua liang
:
Depends On: 1361487
Blocks: 1361488
  Show dependency treegraph
 
Reported: 2016-07-29 03:30 EDT by Fam Zheng
Modified: 2017-03-21 05:40 EDT (History)
18 users (show)

See Also:
Fixed In Version: qemu-kvm-0.12.1.2-2.496.el6
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1361487
Environment:
Last Closed: 2017-03-21 05:40:15 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)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2017:0621 normal SHIPPED_LIVE Moderate: qemu-kvm security and bug fix update 2017-03-21 08:28:31 EDT

  None (edit)
Description Fam Zheng 2016-07-29 03:30:04 EDT
+++ This bug was initially created as a clone of Bug #1361487 +++

Description of problem:

The issue was reported on virtio-blk by Laszlo Ersek after him analyzing similar bugs on IDE:

qemu-kvm-rhel6 BZ 1281713
qemu-kvm-rhel7 BZ 1299875
qemu-kvm-rhev7 BZ 1299876

The reproducer, as contributed by Laszlo, is:

$ qemu-img create -f qcow2 test.qcow2 8G
$ ulimit -f 256
$ qemu-system-x86_64 -enable-kvm -m 2048 -smp 2 \
    \
    -drive file=test.qcow2,werror=stop,rerror=stop,cache=writeback,id=hd0,if=none \
    -device virtio-blk-pci,drive=hd0 \
    \
    -drive id=cd0,readonly,media=cdrom,cache=writeback,if=none,file=/mnt/data/isos/iso-fedora/Fedora-Workstation-Live-x86_64-24-1.2.iso \
    -device ide-cd,drive=cd0 \
    -monitor stdio

- click Begin Installation in anaconda
- when the guest is stopped, enter "system_reset", then "cont" at the monitor prompt

Expected results:

after system_reset, cont should reboot the guest. The pending I/O req should be dropped.
Comment 3 Ademar Reis 2016-09-27 21:49:17 EDT
For reference, this is the cluster of BZ related to this issue: bug 1281713, bug 1299876, bug 1299875, bug 1361487, bug 1361490, bug 1361488, bug 1375520
Comment 6 Yash Mankad 2016-11-04 12:14:14 EDT
Fix included in qemu-kvm-0.12.1.2-2.496.el6
Comment 8 aihua liang 2016-12-28 00:11:56 EST
Have verified, the problem still exist.
Test Version:
 kernel version: 2.6.32-680.el6.x86_64
 qemu-kvm-rhev version: qemu-kvm-rhev-0.12.1.2-2.499.el6.x86_64

Test Step:
1.Create 25G qcow2 image, install win2012r2 on it.

2.Full fill disk by copying the image, until prompt "No space left on device" appear.

3.Start guest by qemu cmd:
MALLOC_PERTURB_=1  /usr/libexec/qemu-kvm \
-name 'avocado-vt-vm1' \
-machine rhel6.6.0  \
-nodefaults  \
-vga std \
-chardev socket,id=qmp_id_qmpmonitor1,path=/var/tmp/monitor-qmpmonitor1-20161227-002429-zWDOQysC,server,nowait \
-mon chardev=qmp_id_qmpmonitor1,mode=control  \
-chardev socket,id=qmp_id_catch_monitor,path=/var/tmp/monitor-catch_monitor-20161227-002429-zWDOQysC,server,nowait \
-mon chardev=qmp_id_catch_monitor,mode=control \
-device pvpanic,ioport=0x505,id=idBpoMGZ  \
-chardev socket,id=serial_id_serial0,path=/var/tmp/serial-serial0-20161227-002429-zWDOQysC,server,nowait \
-device isa-serial,chardev=serial_id_serial0  \
-chardev socket,id=seabioslog_id_20161227-002429-zWDOQysC,path=/var/tmp/seabios-20161227-002429-zWDOQysC,server,nowait \
-device isa-debugcon,chardev=seabioslog_id_20161227-002429-zWDOQysC,iobase=0x402 \
-device ich9-usb-ehci1,id=usb1,addr=1d.7,multifunction=on,bus=pci.0 \
-device ich9-usb-uhci1,id=usb1.0,multifunction=on,masterbus=usb1.0,addr=1d.0,firstport=0,bus=pci.0 \
-device ich9-usb-uhci2,id=usb1.1,multifunction=on,masterbus=usb1.0,addr=1d.2,firstport=2,bus=pci.0 \
-device ich9-usb-uhci3,id=usb1.2,multifunction=on,masterbus=usb1.0,addr=1d.4,firstport=4,bus=pci.0 \
-drive id=drive_image1,if=none,snapshot=off,aio=native,cache=none,format=qcow2,file=/usr/share/avocado/data/avocado-vt/images/win2012-64r2-virtio.qcow2 \
-device virtio-blk-pci,id=image1,drive=drive_image1,bootindex=0,bus=pci.0 \
-device virtio-net-pci,mac=9a:b1:b2:b3:b4:b5,id=idFb0lIj,vectors=4,netdev=idNlTvHu,bus=pci.0,addr=04  \
-netdev tap,id=idNlTvHu,vhost=on \
-m 4096  \
-smp 2,maxcpus=2,cores=1,threads=1,sockets=2  \
-cpu 'SandyBridge' \
-drive id=drive_cd1,if=none,snapshot=off,aio=native,cache=none,media=cdrom,file=/usr/share/avocado/data/avocado-vt/isos/ISO/Win2012R2/en_windows_server_2012_r2_with_update_x64_dvd_6052708.iso \
-device ide-drive,id=cd1,drive=drive_cd1,bus=ide.0,unit=1 \
-device virtio-scsi-pci,id=virtio_scsi_pci0,bus=pci.0,addr=05 \
-drive id=drive_winutils,if=none,snapshot=off,aio=native,cache=none,media=cdrom,file=/usr/share/avocado/data/avocado-vt/isos/windows/winutils.iso \
-device scsi-cd,id=winutils,drive=drive_winutils \
-vnc :0  \
-rtc base=localtime,clock=host,driftfix=slew  \
-boot order=cdn,menu=off,strict=off \
-enable-kvm \
-monitor stdio \

4.Wait until error info "block I/O error in device 'drive_image1': No space left on device(28)"appear in hmp monitor, check vm status:
  (qemu)info status                   -----> VM status:paused(io-error)

5.Reset vm
  (qemu)system_reset                  -----> VM no response

6.Check vm status
  (qemu)info status                   -----> VM status:paused(io-error)


From step4,5,6, we can see that the problem hasn't been resolved, so change the bug status to Assigned.
Comment 10 Fam Zheng 2017-01-09 10:57:42 EST
Aihua, you need to "cont" after "system_reset".
Comment 11 aihua liang 2017-01-10 03:19:17 EST
Retest it according to fam's suggestion, details as bellow:

Test Version:
 kernel version: 2.6.32-681.el6.x86_64
 qemu-kvm-rhev version: qemu-kvm-rhev-0.12.1.2-2.499.el6.x86_64

Test Step:
1.Create 25G qcow2 image, install win2012r2 on it.

2.Full fill disk by copying the image, until prompt "No space left on device" appear.

3.Start guest by qemu cmd:
MALLOC_PERTURB_=1  /usr/libexec/qemu-kvm \
-name 'avocado-vt-vm1' \
-machine rhel6.6.0  \
-nodefaults  \
-vga std \
-chardev socket,id=qmp_id_qmpmonitor1,path=/var/tmp/monitor-qmpmonitor1-20161227-002429-zWDOQysC,server,nowait \
-mon chardev=qmp_id_qmpmonitor1,mode=control  \
-chardev socket,id=qmp_id_catch_monitor,path=/var/tmp/monitor-catch_monitor-20161227-002429-zWDOQysC,server,nowait \
-mon chardev=qmp_id_catch_monitor,mode=control \
-device pvpanic,ioport=0x505,id=idBpoMGZ  \
-chardev socket,id=serial_id_serial0,path=/var/tmp/serial-serial0-20161227-002429-zWDOQysC,server,nowait \
-device isa-serial,chardev=serial_id_serial0  \
-chardev socket,id=seabioslog_id_20161227-002429-zWDOQysC,path=/var/tmp/seabios-20161227-002429-zWDOQysC,server,nowait \
-device isa-debugcon,chardev=seabioslog_id_20161227-002429-zWDOQysC,iobase=0x402 \
-device ich9-usb-ehci1,id=usb1,addr=1d.7,multifunction=on,bus=pci.0 \
-device ich9-usb-uhci1,id=usb1.0,multifunction=on,masterbus=usb1.0,addr=1d.0,firstport=0,bus=pci.0 \
-device ich9-usb-uhci2,id=usb1.1,multifunction=on,masterbus=usb1.0,addr=1d.2,firstport=2,bus=pci.0 \
-device ich9-usb-uhci3,id=usb1.2,multifunction=on,masterbus=usb1.0,addr=1d.4,firstport=4,bus=pci.0 \
-drive id=drive_image1,if=none,snapshot=off,aio=native,cache=none,format=qcow2,file=/usr/share/avocado/data/avocado-vt/images/win2012-64r2-virtio.qcow2 \
-device virtio-blk-pci,id=image1,drive=drive_image1,bootindex=0,bus=pci.0 \
-device virtio-net-pci,mac=9a:b1:b2:b3:b4:b5,id=idFb0lIj,vectors=4,netdev=idNlTvHu,bus=pci.0,addr=04  \
-netdev tap,id=idNlTvHu,vhost=on \
-m 4096  \
-smp 2,maxcpus=2,cores=1,threads=1,sockets=2  \
-cpu 'SandyBridge' \
-drive id=drive_cd1,if=none,snapshot=off,aio=native,cache=none,media=cdrom,file=/usr/share/avocado/data/avocado-vt/isos/ISO/Win2012R2/en_windows_server_2012_r2_with_update_x64_dvd_6052708.iso \
-device ide-drive,id=cd1,drive=drive_cd1,bus=ide.0,unit=1 \
-device virtio-scsi-pci,id=virtio_scsi_pci0,bus=pci.0,addr=05 \
-drive id=drive_winutils,if=none,snapshot=off,aio=native,cache=none,media=cdrom,file=/usr/share/avocado/data/avocado-vt/isos/windows/winutils.iso \
-device scsi-cd,id=winutils,drive=drive_winutils \
-vnc :0  \
-rtc base=localtime,clock=host,driftfix=slew  \
-boot order=cdn,menu=off,strict=off \
-enable-kvm \
-monitor stdio \

4.Wait until error info "block I/O error in device 'drive_image1': No space left on device(28)"appears in hmp monitor, check vm status:
  (qemu)info status                   -----> VM status:paused(io-error)

5.Reset vm
  (qemu)system_reset                  -----> VM seems no response

6.Cont vm
  (qemu)cont                          -----> VM restart and load win2012r2 then appear error msg "block I/O error in device 'drive_image1': No space left on device (28)"

7.Check vm status
  (qemu)info status                   -----> VM status:paused(io-error)


8.Release some disk space, repeat step5~6.

Test Result:
After step8, vm in "running" status.


So, the problem has been resolved, change its status to "Verified".
Comment 13 errata-xmlrpc 2017-03-21 05:40:15 EDT
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2017-0621.html

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