Saturday, 1 February 2020

drivers - Frequent BSOD "THREAD_STUCK_IN_DEVICE_DRIVER"


Before anything else, I'd like to inform everyone that this is a redo of an original post I made which was closed due to incomplete details. Now I have included what others have asked me to do in the original. (Original: https://superuser.com/questions/990227/sudden-bsod-at-random-times?)


So I was browsing the internet using Google Chrome and came to a school's website. All of a sudden, a BSOD appeared with the message:



THREAD_STUCK_IN_DEVICE_DRIVER



I ran a full malware scan using Malwarebytes Anti-Malware and it had found 2 Potentially Unwanted Programs (PUPs): Image of Malware Scan Results


I downloaded BlueScreenView and went to the latest Blue Screen of Death's dump and this is what I found:
Image of Oct. 30 BSOD Properties
It says that it was caused by driver vdrvroot.sys.


If anyone needs my PC's information, I gathered them using Piriform Speccy:



  • Operating System: Windows 10 Home Single Language 64-bit

  • CPU: Intel Core i3 3217U @ 1.80GHz
    Ivy Bridge 22nm Technology

  • RAM: 4.00GB Single-Channel DDR3 @ 798MHz (11-11-11-28)

  • Motherboard: ASUSTeK COMPUTER INC. X450CP (SOCKET 0)

  • Graphics: Generic PnP Monitor (1366x768@60Hz)
    Intel HD Graphics 4000 (ASUStek Computer Inc)
    1024MB ATI AMD Radeon R5 M240 (ASUStek Computer Inc)

  • Storage: 465GB Hitachi HGST HTS545050A7E680 (SATA)

  • Optical Drives: TSSTcorp CDDVDW SU-228FB

  • Audio: Realtek High Definition Audio


This isn't the only time the BSOD with the same message happened. It often happens when my PC is out of my sight, when I connect to the internet, while browsing the internet, and using some programs.


I've updated to Windows 10 from Windows 8.1 last August. Could this be a problem caused by Windows 10's automatic updates?


If anyone knows a solution to this, I'd highly appreciate it. If you guys need more details, please tell me what's missing and I'll add it.


Update: Here's a link of the dmps from the minidump folder: https://www.dropbox.com/s/8y3g2lpeq57bp0n/Minidump%20copy.zip?dl=0



Answer



BlueScreenView shows, as always, a wrong cause. When analyzing the dmp in Windbg by running !analyze -v it shows that the crash is caused by the AMD GPU driver atikmdag.sys:


*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

THREAD_STUCK_IN_DEVICE_DRIVER_M (100000ea)
The device driver is spinning in an infinite loop, most likely waiting for
hardware to become idle. This usually indicates problem with the hardware
itself or with the device driver programming the hardware incorrectly.
If the kernel debugger is connected and running when watchdog detects a
timeout condition then DbgBreakPoint() will be called instead of KeBugCheckEx()
and detailed message including bugcheck arguments will be printed to the
debugger. This way we can identify an offending thread, set breakpoints in it,
and hit go to return to the spinning code to debug it further. Because
KeBugCheckEx() is not called the .bugcheck directive will not return bugcheck
information in this case. The arguments are already printed out to the kernel
debugger. You can also retrieve them from a global variable via
"dd watchdog!g_WdBugCheckData l5" (use dq on NT64).
On MP machines it is possible to hit a timeout when the spinning thread is
interrupted by hardware interrupt and ISR or DPC routine is running at the time
of the bugcheck (this is because the timeout's work item can be delivered and
handled on the second CPU and the same time). If this is the case you will have
to look deeper at the offending thread's stack (e.g. using dds) to determine
spinning code which caused the timeout to occur.
Arguments:
Arg1: ffffe0015134d800, Pointer to a stuck thread object. Do .thread then kb on it to find
the hung location.

# Child-SP RetAddr Call Site
00 ffffd001`67194078 fffff801`d7e2e18c nt!KeBugCheckEx
01 ffffd001`67194080 fffff801`d7e2e24e dxgkrnl!TdrTimedOperationBugcheckOnTimeout+0x24
02 ffffd001`671940f0 fffff801`da002463 dxgkrnl!TdrTimedOperationDelay+0xbe
03 ffffd001`67194130 ffffe001`553cf000 atikmdag+0x42463
04 ffffd001`67194138 00000000`00000000 0xffffe001`553cf000

Image path: \SystemRoot\system32\DRIVERS\atikmdag.sys
Image name: atikmdag.sys
Timestamp: Sat Aug 22 04:10:03 2015

Install the latest AMD Beta driver and look if this fixes it.


No comments:

Post a Comment

How can I VLOOKUP in multiple Excel documents?

I am trying to VLOOKUP reference data with around 400 seperate Excel files. Is it possible to do this in a quick way rather than doing it m...