locked
Git push hangs for a large repository RRS feed

  • Question

  • I'm trying to resolve this for the last couple of days.

    First of all I'm working behind a proxy, I've setup a connection using Cntlm and I've tried creating a small repository on my VSO account and everything works as expected, I'm able to clone and push.

    I've created another repository, this time bigger (the whole repo is about 800MB) and when I tried to push it takes me through the authentication cycle and then it just hangs (I've left it hanging for 24 hours and nothing happens). I've increased git's postBuffer to 524288000 as suggested elsewhere, but that didn't help.

    Further more I've set

    GIT_CURL_VERBOSE=1

    Then when I run:

    git push origin master -v

    This is where it gets stuck:

    > POST /DefaultCollection/_git/AFU/git-receive-pack HTTP/1.1
    Authorization: Basic ZGRpbWl0cm92OkQxbxxxxxx               
    User-Agent: git/1.9.2.msysgit.0                             
    Host: [user].visualstudio.com                         
    Accept-Encoding: gzip                                       
    Content-Type: application/x-git-receive-pack-request        
    Accept: application/x-git-receive-pack-result               
    Content-Length: 37423253                                    
                                                                
    * Connection #1 to host localhost left intact               

    I see that the content length is significantly larger than with the small repo. I should also not that there are about 500+ commit log.

    Now I thought it might be a proxy issue, so I tried it without a proxy on a different network and I got the same results.

    I'd appreciate some help with this.


    Monday, June 2, 2014 5:20 AM

Answers

  • Hi Charles,

    It turns out it was a network issue. I tried it on 3 different networks then it worked from the 4th ... I'm not 100% what it is exactly (the speed is the same as a previously tested network), but I'm confident the issue is on my end. Sorry about that.

    Wednesday, June 4, 2014 8:54 AM

All replies

  • Hi Dimitar,

    VSO has a 1 hour timeout for all HTTP calls.  This means that if you try to push a large repo (>300MB or so) to VSO, depending on available bandwidth, you may encounter a variety of errors.  Most of these involve the remote end hanging up after 1 hour with nothing having made it to the server.  The mitigation for this scenario, along with any other scenario that needs to push/fetch/clone/pull that might take > 1 hour is to push chunks of history at a time.  Please check the answer reply of this thread for more information.

    Best regards,


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    Tuesday, June 3, 2014 8:31 AM
    Moderator
  • Hi Charles,

    Well I tried pushing chinks of history one at a time, but then I reach a commit that has a larger file (larger than 10MB) and then it just hangs. It seems that you have a HTTP POST size limit on your end that I can't get past. Seriously, I've been battling this for DAYS. VSO seems awesome, but it will be quite useless if I can't use it for a serious-non-mickey-mouse projects.

    I don't think the issue is timeouts, it's request size (from what I'm observing). It will be awesome if you fix it :) I'll send you beer if you do so :)

    Tuesday, June 3, 2014 12:47 PM
  • Hi Charles,

    It turns out it was a network issue. I tried it on 3 different networks then it worked from the 4th ... I'm not 100% what it is exactly (the speed is the same as a previously tested network), but I'm confident the issue is on my end. Sorry about that.

    Wednesday, June 4, 2014 8:54 AM