Bug 1393041

Summary: system_reset should clear pending request for error (virtio-blk)
Product: Red Hat Enterprise Linux 7 Reporter: Marcel Kolaja <mkolaja>
Component: qemu-kvm-rhevAssignee: Fam Zheng <famz>
Status: CLOSED CURRENTRELEASE QA Contact: aihua liang <aliang>
Severity: unspecified Docs Contact:
Priority: high    
Version: 7.3CC: aliang, chayang, coli, famz, huding, juzhang, knoel, meyang, michen, mrezanin, ngu, pingl, virt-maint, xuwei
Target Milestone: rcKeywords: ZStream
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-rhev-2.6.0-28.el7_3.2 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1361487 Environment:
Last Closed: 2017-02-09 10:59:55 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: 1361487    
Bug Blocks:    

Description Marcel Kolaja 2016-11-08 17:47:15 UTC
This bug has been copied from bug #1361487 and has been proposed
to be backported to 7.3 z-stream (EUS).

Comment 3 Miroslav Rezanina 2016-12-09 10:30:05 UTC
Fix included in qemu-kvm-rhev-2.6.0-28.el7_3.2

Comment 5 aihua liang 2016-12-27 10:43:08 UTC
Has verified it, it still has some problem, bellow is the detail:

Version-Release number:
  kernel version:3.10.0-514.6.1.el7.x86_64
  qemu-kvm-rhev version:qemu-kvm-rhev-2.6.0-28.el7_3.2.x86_64


Test Step:
 1.Create a 25G qcow2 image and install windows2012r2 on it.

 2.Full write the guest image disk until no space left on device.

 3.Start guest by qemu cmd:
/usr/libexec/qemu-kvm \
-name 'avocado-vt-vm1'  \
-sandbox off  \
-machine pc  \
-nodefaults  \
-vga std  \
-chardev socket,id=qmp_id_qmpmonitor1,path=/var/tmp/monitor-qmpmonitor1-20161219-042734-6fVMWCMz,server,nowait \
-mon chardev=qmp_id_qmpmonitor1,mode=control  \
-chardev socket,id=qmp_id_catch_monitor,path=/var/tmp/monitor-catch_monitor-20161219-042734-6fVMWCMz,server,nowait \
-mon chardev=qmp_id_catch_monitor,mode=control \
-drive id=drive_image1,if=none,snapshot=off,aio=native,cache=none,format=qcow2,file=/usr/share/avocado/data/avocado-vt/images/win2012.qcow2 \
-device virtio-blk-pci,id=image1,drive=drive_image1,bootindex=0,bus=pci.0,addr=03 \
-device virtio-net-pci,mac=9a:f2:f3:f4:f5:f6,id=id30uvBS,vectors=4,netdev=idADyVP5,bus=pci.0,addr=04  \
-netdev tap,id=idADyVP5,vhost=on \
-m 2048  \
-smp 16,maxcpus=16,cores=8,threads=1,sockets=2  \
-cpu 'Opteron_G3',+kvm_pv_unhalt,hv_spinlocks=0x1fff,hv_vapic,hv_time \
-vnc :0  \
-rtc base=localtime,clock=host,driftfix=slew  \
-boot order=cdn,once=d,menu=off,strict=off \
-enable-kvm \
-spice port=3000,ipv4,disable-ticketing \
-monitor stdio \

 4.Start some applications on guest utils it hangs.

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

 6.Reset vm
   (qemu)system_reset    ------->VM doesn't reboot immediately.
 
 7.Check vm status
   (qemu)info status    -------->VM status:paused(prelaunch)

 8.Cont vm
   (qemu)cont           -------->VM restart but hang when loading os

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

Actual Result:
  When we do "system_reset", guest starts fail as it can't recovery from io-error.

Expect Result:
  VM can recovery from "io-error" after system_reset and start successfully.
 

Note:
  My CPU is "Opteron_G3" and no segment fault displayed in qemu during the test.

Comment 8 Fam Zheng 2017-01-09 16:00:50 UTC
If bios can run between step 8 and 9, the bug is fixed, and the last state is just a new error state.

Aihua, can you confirm that?

Comment 9 aihua liang 2017-01-11 11:55:17 UTC
Retest as bellow, vm can start successfully.

 Test Steps:
   1.Create a 25G qcow2 image and install windows2012r2 on it.

   2.Full write the guest image disk until no space left on device.

   3.Start guest by qemu cmd:(same as comment 5)

   4.Start some applications on guest utils it hangs.

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

   6.Reset vm
     (qemu)system_reset    ------->VM doesn't reboot immediately.
 
   7.Check vm status
     (qemu)info status    -------->VM status:paused(prelaunch)

   8.Cont vm
     (qemu)cont           -------->VM restart but hang when loading os

   9.Check vm status
     (qemu)info status    -------->VM status:paused(io-error)
 
   10.Release some disk space, then repeat step6~9.

 Test Result:
  After step10, vm can boot up and work normally with status "running".

After release disk space + vm reset, the io-error can be ended and vm can work normally, so change the bug status to "Verified".