Service hang with Critical section lock

Hi All,

I am debugging a service hang issue where critical section is being used as synchronization object between threads. I have taken the service memory dump file after it hangs.
When I run the !locks command in the dump file, it lists one CS having Lock count 7 as shown below. When I want to see the stack of the thread that is holding the CS, I see only one function in the stack and that thread is also waiting for an object. How can get full call stack of this thread to check what it is waiting for?

95 Id: af8.3aa8 Suspend: -1 Teb: 000007ff`ffee8000 Unfrozen

Child-SP RetAddr : Args to Child : Call Site

00 0000000017caf958 0000000000000000 : 000000004ea4718c 0000000077591b06 0000000000000000 0000000000000000 : ntdll!ZwWaitForSingleObject+0xa

CritSec lib!g_critsec+0 at 000007fecda9bcb8
WaiterWoken No
LockCount 7
RecursionCount 1
OwningThread 3aa8
EntryCount 0
ContentionCount 31010
*** Locked


Did you verify thread(af8.3aa8) raw call stack? If not please try that. You can use dps command.

1 Like

Thanks Saikrishna. I was able to get the problem after dumping the raw call stack.

1 Like