HgWeb.cgi Hanging During Push

Matt Mackall mpm at selenic.com
Fri Apr 27 20:22:36 UTC 2012


On Fri, 2012-04-27 at 16:04 -0400, Jensen, Aaron wrote:
> > 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.
> 
> Woops.  That's because I copy/pasted the wrong code.  The 100s were from the lock class, but I copied the wireproto class.
> 
> 
> > 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.
> 
> This problem started when we upgraded our server to 2.1.1 a couple months ago.  We also asked developers to upgrade, but I don't how many have.  We run as standard as we can, on both the server and the client.  What kind of setup issues would cause something like this?  I've got no local hooks running.
> 
> 
> > We'll probably have to go the Wireshark route (downloading now), unless there are instructrions for getting Mercurial running from source on 
> > Windows.

http://mercurial.selenic.com/wiki/HackableMercurial makes it easy.

> I've run a Wireshark capture.  I'll send it directly to you and not the mailing list.  Hopefully, you can make sense of it faster than me...
> 
> 
> > ..unless of course, you're using an in-process Python hook, in which case that's probably to blame.
> 
> We used to have an in-process hook, but it was moved to PowerShell right around the time this problem started happening.  But that hook isn't running as part of this.

Trick is to click on an HTTP packet and do "follow TCP stream". Which
shows the server sending back the following..
        
        Content-Type: application/mercurial-0.1
        Server: Microsoft-IIS/7.0
        9980: at step 1
        9980: at step 2
        9980: at step 4
        9980: at step 5
        9980: at step 6
        9980: at step 7
        9980: at step 101
        9980: at step 103
        9980: at step 104
        9980: at step 105
        9980: at step 106
        9980: at step 108
        9980: at step 109
        9980: at step 8
        9980: at step 9
        9980: at step 10
        9980: at step 11
        9980: at step 101
        9980: at step 109
        
Ok, that looks familiar.. and shouldn't be there.

        Date: Fri, 27 Apr 2012 19:57:41 GMT
        Connection: close
        Content-Length: 102
        
        1
        adding changesets
        adding manifests
        adding file changes
        added 1 changesets with 1 changes to 1 files

..and that seems to be shell output getting intermingled into the
protocol stream. I'm pretty sure that's not supposed to be there either.
Do you have ui.verbose enabled on the server?

-- 
Mathematics is the supreme nostalgia of our time.





More information about the Mercurial mailing list