Default Timeout for Push Operation

Matt Hawley Matt.Hawley at microsoft.com
Wed Feb 24 13:14:09 CST 2010


Hi Benoit / Patrick,

I just tried the latest nightly and things are working on Windows pushing across SSL.

I'm fine with that resolution, as we don't need an immediate fix as it's something our testers have come across not our users.

Thanks for all of your help!
Matt

-----Original Message-----
From: Benoit Boissinot [mailto:benoit.boissinot at ens-lyon.org] 
Sent: Wednesday, February 24, 2010 10:52 AM
To: Matt Hawley
Cc: Patrick Downey; mercurial at selenic.com
Subject: Re: Default Timeout for Push Operation

On Wed, Feb 24, 2010 at 05:58:18PM +0000, Matt Hawley wrote:
> Hi Benoit,
> 
> I was able to successfully push changes under Linux, so it does look 
> to be an Mercurial client + OS problem. When I was pushing under 
> Windows, I was watching the network traffic, and it stopped uploading 
> about 1/3 of the 150MB changes prior to prompting for authentication.
> Please let me know what else you would like to track this bug down. 

Ok so it's probably not an IIS issue.

Next we should find out if it comes from whatever customization hg does to the python http library.

Let's try the following:
- on the client create the same data as hg would send through http:
  hg bundle -t gzip foo.hg

  this will create our bundle file in a similar format as what is sent
  to the server

- on the server, find out the hex hashes for the heads (we need to send
  them in the client query):
  hg heads --templates='{node}\n'

  this will give one hash per line, we'll use it in the url below

- then using python, on the client, do the following:

import urllib2, urllib
# read the bundle
data = open('foo.hg').read()
# replace <hex hash 1> by the hex you've found but running hg heads on # the server, etc.
args = {'cmd': 'unbundle', 'heads': '<hex hash1> <hex hash2>'} url = 'https://server/path/to/repo?' + urllib.urlencode(args) # send the request url = urllib2.urlopen(url, data, headers={'Content-Type': 'application/mercurial-0.1'})

If this works, then the problem is in our https handling, otherwise this is likely an OS or python library issue.

regards,

Benoit
--
:wq



More information about the Mercurial mailing list