0

I'm seeing a very annoying pause when I run certain applications on my machine. Basically the machine pauses for about 60 seconds with no excessive processor, disk, or network usage during this time (just regular amounts of usage). I have no idea what the process is waiting for. Are there any tools to help me diagnose a system/network/domain error?

I think it might be a domain issue because I am building a web application (Asp.Net MVC in IIS 7.5) and I get this 60 second pause whenever it throws an exception on my machine but it works as expected on the test server (the error renders in under a second). The test server is not on the domain.

Again, this pause (about 60 seconds with no excessive CPU, network, or disk usage) happens in multiple applications, but the most annoying one is when an error occurs in my web app (it's very difficult to debug when it takes so long to fail). As a note, if I start my debugger (I typically don't) the error is caught right away, but once I run the code it pauses. Moral of the story, the pause is after the error is thrown - it is not in my code (happens in other apps anyway).

2
  • Is this for any old error or a specific error? Also what version of Visual Studio? Does this happen when running in the debugger?
    – Kev
    Jun 8, 2011 at 22:36
  • I rewrote the question. It seems that people were focusing on the wrong thing. Hopefully the rewrite will clear up the confusion.
    – Brian
    Jun 8, 2011 at 22:54

3 Answers 3

0

The 60 seconds may be IIS' timeout setting for ASP scripts. Is it possible there is an application error? What is recorded in the IIS log about the offending call? (I always like to suspect my stuff first before I go looking elsewhere)

6
  • The pause is when there is an error (if there isn't an error it works just fine). It shouldn't take 60+ seconds to render an error. It certainly has never taken that long on any other development machine I've used including my personal machine which has a very similar configuration other than it isn't connected to my works domain.
    – Brian
    Jun 8, 2011 at 19:02
  • So what is in the IIS log when there is an error?
    – uSlackr
    Jun 8, 2011 at 19:36
  • My IIS logs don't show any errors, they just show the GETs and POSTs. The event viewer just shows the error that was thrown (the only thing the code does is throws an exception). I'm sure it's not the app since this same app doesn't have any problems showing errors when run in the test environment (not on the domain). Also I see the same problem in other apps that I didn't write. Really what I'm looking for is some kind of tool to help me diagnose a domain or network issue.
    – Brian
    Jun 8, 2011 at 22:29
  • @Brian: What about the error log files? Typically they can be found in c:\windows\system32\logfiles\httperr\.
    – Cypher
    Jun 8, 2011 at 23:03
  • Nothing but Timer_ConnectionIdle for today. My understanding is that this is normal.
    – Brian
    Jun 8, 2011 at 23:25
0

The pause in the initial connection could be related to DNS and MAC address resolution.

Regarding the the web page, is the web site on another host or is it on your development machine? If it's on your development machine then you can probably rule the network out as a possible cause of the delay.

4
  • It's on my local machine using my machine name to connect to it. Using localhost and 127.0.0.1 did not do anything to help. I agree that it doesn't seem like a network issue other than the length of time for the pause is similar to a network connection failing. I don't know of any other reason why something would pause like it does. Personally I think it's a problem on our domain, I've heard of other people complaining about performance issues, but I need to figure out what is causing it (it's a small office without a full time sys admin).
    – Brian
    Jun 8, 2011 at 19:11
  • OK, don't relate anyone else's problem to yours. That's asking to go on a wild goose chase. If you have the same problem connecting to the web page via localhost then it's clearly not a physical network problem as traffic to localhost is never put on the wire.
    – joeqwerty
    Jun 8, 2011 at 19:28
  • I've seen some wacky things when an app moves from dev to the network. As @Joeqwerty says focus on your app and your experience with it, not others apps. If they are related, it will come out in the end.
    – uSlackr
    Jun 8, 2011 at 19:38
  • I'm really just looking for a way to diagnose a domain or network error (there's got to be something that shows system errors). The application works just fine when there isn't an error, I've already disabled Elmah which was the only thing in my code that handled errors, and this problem does not show up in our test environment (same exact code). The test environment is not on the domain. This same pause happens in other applications that I didn't write. This is a distinct pause of a specific duration. There does not seem to be any excessive processor, disk, or network activity.
    – Brian
    Jun 8, 2011 at 22:14
0

Either attach a debugger (WinDBG or Visual Studio, or (whatever)) or take a memory dump of the process while it's in its wait state. If you take a memory dump (task manager, r-click the process and choose Create Dump File), you won't change the delay timing, but it sounds like the code fails slowly otherwise.

Evaluate the thread stacks, look for what's being waited on by what else.

You can use DebugDiag for a quick best-guess analysis, or use WinDBG+psscor2, sos, or other tools to analyse the dump.

Also, compilation debug=false is mandatory when troubleshooting any performance issue, ever.

1
  • Sorry, reread the question - if it happens in lots of applications, try XPerf, but a user-mode dump might help identify what the apps think they're waiting on.
    – TristanK
    Jun 9, 2011 at 12:08

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .