How do you track that?
I have an interesting problem with SvnBridge.
After around 5000 full revision request (a set of requests that can occur), the application get hung making a web service call to TFS. This comes after making quite a few calls to TFS, and is generally fairly easily reproducible. The actual call being made is not an expensive one (nor is it the same call). TFS is responsive during that time, so it is not its fault.
It looks very much like I am hitting the 2 concurrent HTTP requests, except that all requests are serialized, and there is no multi threaded work involved.
I have been unable to reproduce this under a profiler or debugger...
Thoughts?
Comments
Prior to this state, do any TCP connections fail and then succeed when retried? If so, maybe you're hitting the half-open limit (assuming a client OS). Event logs with 4226?
In my experience helping people diagnose problems through internet message (mostly in C++), when a problem is reproducible outside of a debugger, but not within the debugger, in 100% of the cases, the problem was caused by overrunning a local array.
Denis,
I am testing that on Server 2008, so I don't think so.
James,
Yes, I remember that.
No C++ anywhere...
Try take a dump when the process is stuck, maybe it would shed some light on what is going on then..
Are you using TFS OM? If yes, take a look at the connection pools on the proxies. It might have to do something with it.
@Yossi
"Try take a dump when the process is stuck..."
That's gross, man
@Yossi: Always say "Capture a dump". Never "take a dump" :)
Capturing a hang dump with ADPlus when you are experiencing your issue will allow you to determine exactly whats going on in terms of executing threads, objects on the heap, etc. You would analyze the dump using WinDbg (I'm making the assumption that you're not familiar with these tools.)
Dan,
I can actually repro this and break into the debugger.
Comment preview