Windows 7 Operating System Crashes Intermittently while running multiple instances of VS 2010
We noticed from multiple customers’ environment that Windows 7 operating system intermittently crashes, while they working with Visual Studio 2010 [VS 2010]. Since this was happening with multiple customers’ environment, I just thought of publish the details and fix for this issue in this blog.
Issue Details :
Windows 7 operating system crashes, while opening the multiple instances of Silverlight project through Visual Studio 2010 SP1 IDE. Troubleshoot this issue further; we have collected below data from the machine, which was crashed:
- Windows Event Log [System Event Log]
- Kernel Memory dump located under ‘%SystemRoot%\MEMORY.DMP’
Windows Event Log [System Event Log]
Log Name: System
Source: Microsoft-Windows-WER-SystemErrorReporting
Date: XXXXXXXXXXXXXXXX
Event ID: 1001
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: XXXXXXXXXXXXXX
Description:
The computer has rebooted from a bugcheck. The bugcheck was: 0x00000116 (0x8894a008, 0x990499b0, 0x00000000, 0x00000002). A dump was saved in: C:\Windows\MEMORY.DMP. Report Id: XXXXXXX
Log Name: System
Source: EventLog
Date: XXXXXXXXXXXXXXXXX
Event ID: 6008
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: XXXXXXXXXXXXXXXXXX
Description:
The previous system shutdown at XXXX on XXXXXXXX was unexpected.
The above event logs indicate that, Operating System is crashed due to Bug Check 0x116. To get the more detail about this, I have reviewed the Kernel dump
Kernel Memory dump
VIDEO_TDR_FAILURE (116) => This indicate that an attempt to reset the display driver and recovered from a timeout failed (Ref Bug Check 0x116).
Attempt to reset the display driver and recover from timeout failed.
Arguments:
Arg1: 8894a008, Optional pointer to internal TDR recovery context (TDR_RECOVERY_CONTEXT).
Arg2: 990499b0, The pointer into responsible device driver module (e.g. owner tag).
Arg3: 00000000, Optional error code (NTSTATUS) of the last failed operation.
Arg4: 00000002, Optional internal context dependent data.
DEFAULT_BUCKET_ID: GRAPHICS_DRIVER_TDR_FAULT
VIDEO_TDR_CONTEXT: dt dxgkrnl!_TDR_RECOVERY_CONTEXT ffffffff85701510
+0x000 Signature : 0x52445476
+0x004 pState : 0x870ab638 0 ( TdrStateIdle )
+0x008 TimeoutReason : 2 ( TdrReasonPreemptTimeout )
+0x010 Tick : _ULARGE_INTEGER 0xc0
+0x018 pAdapter : 0x84f88000 DXGADAPTER
+0x01c pVidSchContext : 0x8708a4d8 _VIDSCH_CONTEXT
+0x020 GPUTimeoutData : _TDR_RECOVERY_GPU_DATA
+0x038 CrtcTimeoutData : _TDR_RECOVERY_CONTEXT::<unnamed-type-CrtcTimeoutData>
+0x040 DbgOwnerTag : 0x9a8439b0
+0x048 PrivateDbgInfo : _TDR_DEBUG_REPORT_PRIVATE_INFO
+0xad0 pDbgReport : 0xc9348008 _WD_DEBUG_REPORT
+0xad4 pDbgBuffer : 0xcd000000 Void
+0xad8 DbgBufferSize : 0x40c5b
+0xadc pDumpBufferHelper : 0xcc9b8070 CTDR_DUMP_BUFFER
+0xae0 pDbgInfoExtension : 0xcc124e08 _DXGKARG_COLLECTDBGINFO_EXT
+0xae4 pDbgBufferUpdatePrivateInfo : 0xcd000108 Void
+0xae8 ReferenceCount : 0n1
The Crash occurred due to an issue with the windows display driver model (wddm), and please finds the detail about the crashing thread as below
0: kd> !thread
THREAD 86f66550 Cid 0004.01c4 Teb: 00000000 Win32Thread: 00000000 RUNNING on processor 0
Not impersonating
DeviceMap 8bc084b0
Owning Process 84f09bb0 Image: System
Attached Process N/A Image: N/A
Wait Start TickCount 20602 Ticks: 0
Context Switch Count 6865 IdealProcessor: 0
UserTime 00:00:00.000
KernelTime 00:00:01.232
Win32 Start Address dxgmms1!VidSchiWorkerThread (0x996444f4)
Stack Init 807adfd0 Current bd47b350 Base 807ae000 Limit 807ab000 Call 0
Priority 15 BasePriority 15 UnusualBoost 0 ForegroundBoost 0 IoPriority 2 PagePriority 5
ChildEBP RetAddr Args to Child
807adb74 995c1adb 00000116 8894a008 990499b0 nt!KeBugCheckEx+0x1e (CONV: stdcall)
807adb98 995c28fa 990499b0 00000000 00000002 dxgkrnl!TdrBugcheckOnTimeout+0x8d (FPO: [Non-Fpo]) (CONV: stdcall)
807adbbc 9961892c 00000000 00000102 86f01788 dxgkrnl!TdrIsRecoveryRequired+0xb8 (FPO: [Non-Fpo]) (CONV: stdcall)
807adc34 99642a32 fffffcfb 00004fa5 00000000 dxgmms1!VidSchiReportHwHang+0x3c0 (FPO: [Non-Fpo]) (CONV: stdcall)
807adc5c 99643153 00000000 00000000 00000000 dxgmms1!VidSchiCheckHwProgress+0x68 (FPO: [Non-Fpo]) (CONV: stdcall)
807adc98 9961f8f0 807adc90 88808120 88a76008 dxgmms1!VidSchiWaitForSchedulerEvents+0x1b1 (FPO: [Non-Fpo]) (CONV: stdcall)
807add28 996444b7 86f01788 82a863e1 86f01788 dxgmms1!VidSchiScheduleCommandToRun+0xaa (FPO: [Non-Fpo]) (CONV: stdcall)
807add3c 99644573 86f01788 00000000 86f66550 dxgmms1!VidSchiRun_PriorityTable+0xf (FPO: [Non-Fpo]) (CONV: stdcall)
807add50 82c589df 86f01788 ac78a1f2 00000000 dxgmms1!VidSchiWorkerThread+0x7f (FPO: [Non-Fpo]) (CONV: stdcall)
807add90 82b0a1d9 996444f4 86f01788 00000000 nt!PspSystemThreadStartup+0x9e (CONV: stdcall)
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x19
0: kd> .bugcheck
Bugcheck code 00000116
Arguments 8894a008 990499b0 00000000 00000002
The 2nd parameter to bug check is 928149b0. This is the pointer into the responsible device driver module.
0: kd> u 990499b0
igdkmd32!DxgkDdiCollectDbgInfo:
990499b0 55 push ebp
990499b1 8bec mov ebp,esp
990499b3 83ec20 sub esp,20h
990499b6 8b4508 mov eax,dword ptr [ebp+8]
990499b9 8945f4 mov dword ptr [ebp-0Ch],eax
990499bc 8b4d0c mov ecx,dword ptr [ebp+0Ch]
990499bf 8b510c mov edx,dword ptr [ecx+0Ch]
990499c2 8955e4 mov dword ptr [ebp-1Ch],edx
0: kd> lmvm igdkmd32
start end module name
9a832000 9ad2f000 igdkmd32 (pdb symbols) Loaded symbol image file: igdkmd32.sys
Mapped memory image file: xxxxxx\igdkmd32.sys
Image path: \SystemRoot\system32\DRIVERS\igdkmd32.sys
Image name: igdkmd32.sys
Timestamp: Wed May 06 23:43:40 2009 (4A01D354)
CheckSum: 0048DF97
ImageSize: 004FD000
File version: 8.15.10.1749
Product version: 8.15.10.1749
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 3.4 Driver
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: Intel Corporation
ProductName: Intel Graphics Accelerator Drivers for Windows Vista(R)
InternalName: igdkmd32.sys
OriginalFilename: igdkmd32.sys
ProductVersion: 8.15.10.1749
FileVersion: 8.15.10.1749
FileDescription: Intel Graphics Kernel Mode Driver
LegalCopyright: Copyright (c) 1998-2006 Intel Corporation
RESOLUTION
Based on the above details, we able to fix this issue by updating the ‘igdkmd32.sys’ file from https://www.intel.com/p/en_US/support/detect
References:
How to generate a kernel or a complete memory dump file in Windows Server 2008
https://support.microsoft.com/kb/969028TimeoutDetection and Recovery of GPUs through WDDM
https://msdn.microsoft.com/en-us/windows/hardware/gg487368.aspx
Comments
- Anonymous
December 16, 2012
Excellent Article!!