Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We have a recent web application rollout on Windows Server 2003/IIS. Multiple times a day a thread spawns that will run at 20%-25% utilization. Using process explorer, I see the stack that is posted at the bottom of this message. I can kill these threads and it does not appear to impact anything. However, everyday I have to watch the web server and kill them as they arise or the app slows to a crawl.

I need a way to troubleshoot this and determine the source of the problem. Any ideas?

ntkrnlpa.exe+0x8db2e ntkrnlpa.exe+0x29a82 ntkrnlpa.exe+0x331a4 ntkrnlpa.exe+0x2e3c6 ntkrnlpa.exe+0xf6299 ntkrnlpa.exe+0xeede2 ntkrnlpa.exe+0x897cc ntdll.dll!KiFastSystemCallRet WS2_32.dll!recv+0x6f AppSvr.dll!DllUnregisterServer+0x652 OLEAUT32.dll!DispCallFunc+0xab OLEAUT32.dll!SafeArrayCopyData+0x397 AppSvr.dll!DllGetClassObject+0xab8 OLEAUT32.dll!DllRegisterServer+0x5bf RPCRT4.dll!NdrAsyncServerCall+0x1e7 RPCRT4.dll!CStdStubBuffer_Invoke+0x82 OLEAUT32.dll!DispGetParam+0x5b6 ole32.dll!StgGetIFillLockBytesOnFile+0x13d32 ole32.dll!StgGetIFillLockBytesOnFile+0x13cdf ole32.dll!DcomChannelSetHResult+0xaab ole32.dll!DcomChannelSetHResult+0x495 ole32.dll!StgGetIFillLockBytesOnFile+0x13fbe ole32.dll!StgGetIFillLockBytesOnFile+0x13a7d ole32.dll!StgGetIFillLockBytesOnFile+0x12f64 ole32.dll!CoFreeUnusedLibrariesEx+0x9f5 ole32.dll!CoFreeUnusedLibrariesEx+0x165 ole32.dll!CoRegisterChannelHook+0x538 kernel32.dll!GetModuleHandleA+0xdf

share|improve this question

This is the stack of your killed threads? What is odd about the stack are these 2 calls: AppSvr.dll!DllUnregisterServer+0x652 OLEAUT32.dll!DllRegisterServer+0x5bf

Why would your application be registering or unregistering COM objects at runtime?

if AppSrv.dll is your application code, I would check the DllUnregisterServer and DllRegisterServer functions to make sure they don't have too much going on (that could hang the process or have a long loop).

The other API to focus on is calls to WS2_32.dll!recv+0x6f ... those may be doing a lot of work or waiting on some network traffic.


share|improve this answer
None of it is our code. It appears to be the third party biometric scanner software. However, I believe the issue was caused by long running threads doing upload/download. I moved the code that did that to a separate application pool and it solved this issue. – user12308 Jul 14 '10 at 4:45

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.