There are many reasons that threads can be blocked causing an application to hang. This is an example of one of those situations. I loaded a memory dump into WinDbg and loaded the PSSCOR2 extension. When I executed !syncblk, I received the following result shown in the following. 0:000> !syncblk Index SyncBlock MonitorHeld Recursion Owning […]
Read More →Tags: Debugging
Recreate Event Viewer logs
If you ever receive “the event log file is corrupted” on Windows 2008 R2, try the following list of actions to fix it. Following these steps result in the recreation of the event logs. Open a command as an Administrator and enter “NET STOP EVENTLOG” as shown in Figure 1. Figure 1, stopping event logging […]
Read More →How to capture a memory dump of a W3WP process that consumes too much CPU
If you want to find out why a W3WP worker process is consuming so much CPU, you can use ProcDump. You might also use LogParser to look at the time-taken field, but to get to the root cause you will need to get deep into the source. Before you can get a memory dump, you […]
Read More →Could not load type “Namespace.Class” from assembly “Namespace”
I have been working hard learning the new features of ASP.NET 4.5, specifically using the following methods: HttpResponse.BeginFlush HttpResponse.EndFlush Stream.ReadAsync HttpRequest.GetBufferedInputStream HttpRequest.GetBefferlessInputStream Stream.BeginRead Stream.EndRead All of which need to be implemented using either a handler or module, if you want to use them in IIS. Can’t say that I did this a lot in the […]
Read More →New ProcDump version 5.0 released, using the –f parameter
I really like to use ProcDump for troubleshooting crashes, memory/cpu utilization issues and hangs. I have written a number of other blogs that discuss how to use it here, here and here. The tool is small and unobtrusive, yet very powerful. The new version of the tool has recently been released and can be downloaded […]
Read More →Why does my !runaway command not work
Sometimes when I execute: !runaway in WinDbg I receive the following error: ERROR: !runaway: extension exception 0x80004002. “Unable to get thread times – dumps may not have time information” The error message says it all, but how do you fix it. In my case ProcDump was used to create the dump and it appears that […]
Read More →Using !DumpThreadConfig (!dtc) within WinDbg
I have written articles about how to capture a W3WP memory dump on Windows 2003 and Windows 2008. Once you have the memory dump, you need to analyze it to find out what is causing the problem. One command I use while analyzing a memory dump is !DumpThreadConfig or !dtc. Figure 1 shows the output […]
Read More →Recycling a worker process due to deadlock
There are many reasons why an IIS worker process can hang. For example, a long running SQL query, searching through a Dictionary object, a non-optimal Regex command, hitting the limits of the process model configuration, etc… can all cause performance to slow. Previously, I wrote a blog about using the !dtc command in WinDbg. This […]
Read More →IIS Service will not start (Event Id 4275)
When you are troubleshooting IIS issues there are tools like Failed Request Tracing, IIS logs, etc. which will let you see what is going on. But what do you do when IIS itself is not working? A common cause is that the applicationHost.config file is corrupted. Perhaps there was a manual modification made to it […]
Read More →Creating a W3WP Memory dump on Windows Server 2008 R2
On a web server with multiple application pools, there most likely will be multiple W3WP processes. Therefore, the first action to take when creating a memory dump of a W3WP worker process is to find which W3WP process you need to get the dump of. To do this, open IIS 7 and select the web […]
Read More →