Bug 987221

Summary: [virtio-win][viostor]BSOD happened when rescan hard-disk with virtio-block driver installed
Product: Red Hat Enterprise Linux 6 Reporter: guo jiang <jguo>
Component: virtio-winAssignee: Vadim Rozenfeld <vrozenfe>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 6.5CC: acathrow, bcao, bsarathy, kzhang, michen, qzhang, xutian
Target Milestone: rcKeywords: TestBlocker
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
Whiteboard:
Fixed In Version: virtio-win-prewhql-0.1-68 Doc Type: Bug Fix
Doc Text:
Do not document. Technically this issue was a regression introduced during fixing system volume resize problem. Subscribed users outside of RH will never see this problem.
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-11-22 00:14:44 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description guo jiang 2013-07-23 02:32:58 UTC
Description of problem:
Boot system with virtio-block driver for system disk and data disk. In Device Manager operating "Scan for hardware changes" or in Disk Manager operating "Rescan Disks",BSOD F4 happened on rhel6 or rhel7 host.

Version-Release number of selected component (if applicable):
  Red Hat Enterprise Linux Server release 6.4 (Santiago) 
  kernel-2.6.32-369.el6.x86_64
  qemu-img-rhev-0.12.1.2-2.379.el6.x86_64
  virtio-win-prewhql-0.1.65
  spice-server-0.12.0-12.el6.x86_64   
  seabios-0.6.1.2-27.el6.x86_64
  vgabios-0.6b-3.7.el6.noarch

How reproducible:
100%

Steps to Reproduce:
1.Boot guest with CLI:
 /usr/libexec/qemu-kvm -M rhel6.4.0 -m 2G -smp 2,cores=2 -cpu cpu64-rhel6,+x2apic -usb -device usb-tablet -netdev tap,sndbuf=0,id=hostnet0,script=/etc/qemu-ifup,downscript=no -device e1000,netdev=hostnet0,mac=00:33:43:41:12:30 -uuid 6651a93e-9637-40cf-88fa-421aa6f5086c -chardev socket,id=aaaa,path=/tmp/monitor-win7-32-block,server,nowait -mon chardev=aaaa,mode=readline -bios /usr/share/seabios/bios.bin -name win7-32-block -spice port=5931,disable-ticketing -vga qxl -rtc base=localtime,clock=host,driftfix=slew -drive file=win7-32.qcow2,if=none,media=disk,format=qcow2,rerror=stop,werror=stop,cache=none,aio=native,id=block-disk0 -device virtio-blk-pci,drive=block-disk0,id=disk0,bootindex=1 -drive serial=blk1,file=disk1-blk.qcow2,format=qcow2,if=none,id=block-disk1,cache=none,werror=stop,rerror=stop -device virtio-blk-pci,drive=block-disk1,id=disk1 -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -global kvm-pit.lost_tick_policy=discard -monitor stdio

2. In Device Manager, right clicking any device and choosing "Scan for hardware changes" 

3. In Computer Management(right clicking "Computer" and choosing "Manage"), right clicking Disk Management and choosing "Rescan Disks"

Actual results:
BSOD happened

Expected results:
System running without any error

Additional info:
On rhel7 host, hit the same issue.
Package version
  Red Hat Enterprise Linux Server release 7.0 Beta(Maipo)
  kernel-tools-3.10.0-1.el7.x86_64  
  qemu-img-1.5.0-2.el7.x86_64
  virtio-win-prewhql-0.1-65
  spice-server-0.12.3-1.el7.x86_64
  seabios-1.7.2-2.el7.x86_64
  vgabios-0.6b-3.7.el6.noarch
CLI:/usr/libexec/qemu-kvm -M pc -m 2G -smp 2,cores=2 -cpu 'SandyBridge' -usb -device usb-tablet -netdev tap,sndbuf=0,id=hostnet0,script=/etc/qemu-ifup,downscript=no -device e1000,netdev=hostnet0,mac=00:33:43:41:12:30 -uuid 579f52df-1032-4be4-b2b4-7b8095ff3c5c -chardev socket,id=aaaa,path=/tmp/monitor-win7-32-block,server,nowait -mon chardev=aaaa,mode=readline -bios /usr/share/seabios/bios.bin -name win7-32-block -spice port=5931,disable-ticketing -vga qxl -rtc base=localtime,clock=host,driftfix=slew -drive file=win7-32.qcow2v3,if=none,media=disk,format=qcow2,rerror=stop,werror=stop,cache=none,aio=native,id=block-disk0 -device virtio-blk-pci,drive=block-disk0,id=disk0,bootindex=1 -drive serial=blk1,file=disk1-blk.qcow2v3,format=qcow2,if=none,id=block-disk1,cache=none,werror=stop,rerror=stop -device virtio-blk-pci,drive=block-disk1,id=disk1 -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -global kvm-pit.lost_tick_policy=discard -monitor stdio

Comment 1 guo jiang 2013-07-23 02:41:31 UTC
WinDbd info: (Device Manager-rhel6 host)
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

CRITICAL_OBJECT_TERMINATION (f4)
A process or thread crucial to system operation has unexpectedly exited or been
terminated.
Several processes and threads are necessary for the operation of the
system; when they are terminated (for any reason), the system can no
longer function.
Arguments:
Arg1: 00000003, Process
Arg2: 85d40578, Terminating object
Arg3: 85d406e4, Process image file name
Arg4: 8286ecf0, Explanatory message (ascii)

Debugging Details:
------------------

Page 26b57 not present in the dump file. Type ".hh dbgerr004" for details

PROCESS_OBJECT: 85d40578

IMAGE_NAME:  wininit.exe

DEBUG_FLR_IMAGE_TIMESTAMP:  0

MODULE_NAME: wininit

FAULTING_MODULE: 00000000 

PROCESS_NAME:  wininit.exe

EXCEPTION_RECORD:  8c243be0 -- (.exr 0xffffffff8c243be0)
ExceptionAddress: 777833a8
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 00000001
   Parameter[1]: 00ba0ff4
Attempt to write to address 00ba0ff4

EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s.

DEFAULT_BUCKET_ID:  WIN7_DRIVER_FAULT

CURRENT_IRQL:  0

ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s.

EXCEPTION_PARAMETER1:  00000001

EXCEPTION_PARAMETER2:  00ba0ff4

WRITE_ADDRESS:  00ba0ff4 

FOLLOWUP_IP: 
+0
777833a8 ??              ???

FAULTING_IP: 
+0
777833a8 ??              ???

FAILED_INSTRUCTION_ADDRESS: 
+0
777833a8 ??              ???

BUGCHECK_STR:  0xF4_c0000005

STACK_TEXT:  
8c243528 82934067 000000f4 00000003 85d40578 nt!KeBugCheckEx+0x1e
8c24354c 828b1c1e 8286ecf0 85d406e4 85d407e8 nt!PspCatchCriticalBreak+0x71
8c24357c 828b1b61 85d40578 85f9e5a8 c0000005 nt!PspTerminateAllThreads+0x2d
8c2435b0 826931ea ffffffff c0000005 8c243bc4 nt!NtTerminateProcess+0x1a2
8c2435b0 8269244d ffffffff c0000005 8c243bc4 nt!KiFastCallEntry+0x12a
8c243630 8270a379 ffffffff c0000005 0001007f nt!ZwTerminateProcess+0x11
8c243bc4 82693dd6 8c243be0 00000000 8c243c34 nt!KiDispatchException+0x497
8c243c2c 82693d8a 00ba1000 777833a8 badb0d00 nt!CommonDispatchException+0x4a
8c243c34 777833a8 badb0d00 777770b4 00000000 nt!KiExceptionExit+0x192
WARNING: Frame IP not in any known module. Following frames may be wrong.
8c243c38 badb0d00 777770b4 00000000 00000000 0x777833a8
8c243c3c 777770b4 00000000 00000000 00000000 0xbadb0d00
8c243c40 00000000 00000000 00000000 00000000 0x777770b4


STACK_COMMAND:  kb

FOLLOWUP_NAME:  MachineOwner

FAILURE_BUCKET_ID:  0xF4_c0000005_IMAGE_wininit.exe

BUCKET_ID:  0xF4_c0000005_IMAGE_wininit.exe

Followup: MachineOwner
---------

Comment 2 guo jiang 2013-07-23 02:42:30 UTC
WinDbd info: (Disk Manager-rhel6 host)
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

CRITICAL_OBJECT_TERMINATION (f4)
A process or thread crucial to system operation has unexpectedly exited or been
terminated.
Several processes and threads are necessary for the operation of the
system; when they are terminated (for any reason), the system can no
longer function.
Arguments:
Arg1: 00000003, Process
Arg2: 85bca370, Terminating object
Arg3: 85bca4dc, Process image file name
Arg4: 8282acf0, Explanatory message (ascii)

Debugging Details:
------------------

Page 24293 not present in the dump file. Type ".hh dbgerr004" for details

PROCESS_OBJECT: 85bca370

IMAGE_NAME:  hardware_disk

DEBUG_FLR_IMAGE_TIMESTAMP:  0

FAULTING_MODULE: 00000000 

PROCESS_NAME:  wininit.exe

EXCEPTION_RECORD:  8a6bfbe0 -- (.exr 0xffffffff8a6bfbe0)
ExceptionAddress: 76cd97e2
   ExceptionCode: c0000006 (In-page I/O error)
  ExceptionFlags: 00000000
NumberParameters: 3
   Parameter[0]: 00000008
   Parameter[1]: 76cd97e2
   Parameter[2]: c000000e
Inpage operation failed at 76cd97e2, due to I/O error c000000e

EXCEPTION_CODE: (NTSTATUS) 0xc0000006 - The instruction at 0x%p referenced memory at 0x%p. The required data was not placed into memory because of an I/O error status of 0x%x.

DEFAULT_BUCKET_ID:  WIN7_DRIVER_FAULT

CURRENT_IRQL:  0

ERROR_CODE: (NTSTATUS) 0xc0000006 - The instruction at 0x%p referenced memory at 0x%p. The required data was not placed into memory because of an I/O error status of 0x%x.

EXCEPTION_PARAMETER1:  00000008

EXCEPTION_PARAMETER2:  76cd97e2

EXCEPTION_PARAMETER3:  c000000e

IO_ERROR: (NTSTATUS) 0xc000000e - A device which does not exist was specified.

FAULTING_IP: 
+0
76cd97e2 ??              ???

BUGCHECK_STR:  0xF4_IOERR_c000000e

STACK_TEXT:  
8a6bf528 828f0067 000000f4 00000003 85bca370 nt!KeBugCheckEx+0x1e
8a6bf54c 8286dc1e 8282acf0 85bca4dc 85bca5e0 nt!PspCatchCriticalBreak+0x71
8a6bf57c 8286db61 85bca370 860f7d48 c0000006 nt!PspTerminateAllThreads+0x2d
8a6bf5b0 8264f1ea ffffffff c0000006 8a6bfbc4 nt!NtTerminateProcess+0x1a2
8a6bf5b0 8264e44d ffffffff c0000006 8a6bfbc4 nt!KiFastCallEntry+0x12a
8a6bf630 826c6379 ffffffff c0000006 0001007f nt!ZwTerminateProcess+0x11
8a6bfbc4 8264fdd6 8a6bfbe0 00000000 8a6bfc34 nt!KiDispatchException+0x497
8a6bfc2c 8265251b 016e1274 76cd97e2 badb0d00 nt!CommonDispatchException+0x4a
8a6bfc2c 76cd97e2 016e1274 76cd97e2 badb0d00 nt!KiTrap0E+0x21f
WARNING: Frame IP not in any known module. Following frames may be wrong.
016e1274 00000000 00000000 00000000 00000000 0x76cd97e2


STACK_COMMAND:  kb

FOLLOWUP_IP: 
+0
76cd97e2 ??              ???

SYMBOL_STACK_INDEX:  9

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: hardware_disk

FAILURE_BUCKET_ID:  0xF4_IOERR_c000000e_IMAGE_hardware_disk

BUCKET_ID:  0xF4_IOERR_c000000e_IMAGE_hardware_disk

Followup: MachineOwner
---------

Comment 7 Mike Cao 2013-08-21 04:58:38 UTC
*** Bug 996983 has been marked as a duplicate of this bug. ***

Comment 8 Mike Cao 2013-08-21 04:58:48 UTC
*** Bug 998405 has been marked as a duplicate of this bug. ***

Comment 10 Mike Cao 2013-08-28 02:33:28 UTC
jguo ,pls verify it

Comment 11 guo jiang 2013-08-28 05:07:35 UTC
Reproduced this issue on virtio-win-prewhql-67
Verified this issue on virtio-win-prewhql-68

Package version:
  kernel-2.6.32-414.el6.x86_64
  qemu-kvm-rhev-0.12.1.2-2.398.el6.x86_64
  virtio-win-prewhql-0.1.67
  spice-server-0.12.4-2.el6.x86_64  
  seabios-0.6.1.2-28.el6.x86_64
  vgabios-0.6b-3.7.el6.noarc

Steps as comment #0

Actual result:
build 67: BSOD happened during "Rescan Disks" or "Scan for hardware changes".
build 68: "Rescan Disks" and "Scan for hardware changes" successfully without any error.

Based on the above, this issue has been fixed,thanks.

Comment 12 Mike Cao 2013-08-28 06:46:24 UTC
Move status to VERIFIED according to comment #11

Comment 15 errata-xmlrpc 2013-11-22 00:14:44 UTC
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.

http://rhn.redhat.com/errata/RHBA-2013-1729.html