HgWeb.cgi Hanging During Push

Matt Mackall mpm at selenic.com
Fri Apr 27 19:31:32 UTC 2012


On Fri, 2012-04-27 at 15:01 -0400, Jensen, Aaron wrote:
> > Ok, how about you instrument lock.release() and see where it's blocking.
> 
> See below for my instrumentation changes [1] and the sequence of calls by push #1 (which succeeds) and push #2 (which hangs) [2].
> 
> It looks like unbundle is *not* hanging.  I didn’t notice before, but unbundle is returning with an unsynced changes error.  I think the hang is happening somewhere else in the code.  
> 
> It looks like after unbundle, lock.release() gets called one more time.  Where in the code should I go next?
> 

Hmm, the numbers in your code and in your trace don't agree (there are
no '1xx' steps). But it seems that everything is working on the server
side with the possible exception of connection teardown.

It's probably time to instrument the client (around wireproto.py:292)
and/or try to attack it with Wireshark.

FYI, I've got about 90% confidence that it's something peculiar to your
setup aside from your hook, as we've got lots of IIS users with hooks
out there and enough devs to run into this problem if it were generic.

..unless of course, you're using an in-process Python hook, in which
case that's probably to blame.

-- 
Mathematics is the supreme nostalgia of our time.





More information about the Mercurial mailing list