W3wp hanging – possible blocked threads? Trying to debug with WinDbg

hangingiis-7.5windbg

I have been having trouble for the past week where one of my web apps running on IIS is hanging at random times at least once a day, I have to recycle the app pool to kick it back into life. CPU and memory seems normal.

When I look at the active threads in the worker processes section in IIS manager i can see threads building up as if they are stuck, when it hangs there is around 25+ threads there, when running ok there is 3-6 at any one point.

I'm guessing this could be down to a code change on my C# web app, but I can't work out where / what it is, there has only been a few minor changes made from what I can remember.

The last week I have really tried hard to diagnose with several tools such as WinDbg & dotTrace to see if I can track down anything obvious, but i'm a little over my head at this point.

I can see there are lots of threads with Timeout errors connecting to my NoSql database (RavenDb), however I think this is a red herring and is down to the threads being blocked in IIS as I can connect to the same database from another IIS app just fine, as well as use the database management tools to manage/query the database.

I have mini dumps and dotTrace snapshots to play with.

Here is the results from "~*e !clrstack" on WinDbg:
https://gist.github.com/phinett/7901d82fa526696d3c92

Any help / ideas on what I should be looking out for to track down the culprit? I am happy to provide access to minidumps if need be.

Thank You!

Best Answer

Probably a lot simpler and quicker to start with DebugDiag v2 update 1 and force a process dump then run the hang analysis.