All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lars Schneider <larsxschneider@gmail.com>
To: Ben Peart <peartben@gmail.com>
Cc: Git Mailing List <git@vger.kernel.org>,
	Junio C Hamano <gitster@pobox.com>
Subject: Re: RFC: Would a config fetch.retryCount make sense?
Date: Mon, 5 Jun 2017 14:04:55 +0200	[thread overview]
Message-ID: <9840A095-49EA-4B0C-B318-F86EEF9261B1@gmail.com> (raw)
In-Reply-To: <cf8ce12b-8d5a-ae03-efd8-0f82ea40fce7@gmail.com>


> On 01 Jun 2017, at 15:33, Ben Peart <peartben@gmail.com> wrote:
> 
> 
> 
> On 6/1/2017 8:48 AM, Lars Schneider wrote:
>> Hi,
>> we occasionally see "The remote end hung up unexpectedly" (pkt-line.c:265)
>> on our `git fetch` calls (most noticeably in our automations). I expect
>> random network glitches to be the cause.
>> In some places we added a basic retry mechanism and I was wondering
>> if this could be a useful feature for Git itself.
> 
> Having a configurable retry mechanism makes sense especially if it allows continuing an in-progress download rather than aborting and trying over.  I would make it off by default so that any existing higher level retry mechanism doesn't trigger a retry storm if the problem isn't a transient network glitch.

Agreed.


> Internally we use a tool (https://github.com/Microsoft/GVFS/tree/master/GVFS/FastFetch) to perform fetch for our build machines.  It has several advantages including retries when downloading pack files.

That's a "drop-in" replacement for "git fetch"?! I looked a bit through the 
"git fetch" code and retry (especially with continuing in-progress downloads) 
looks like a bigger change than I expected because of the current "die() 
in case of error" implementation.


> It's biggest advantage is that it uses multiple threads to parallelize the entire fetch and checkout operation from end to end (ie the download happens in parallel as well as checkout happening in parallel with the download) which makes it take a fraction of the overall time.

Interesting. Do you observe noticeable speed improvements with fetch delta updates,
too? This is usually fast enough for us.

The people I work with usually complain that the "clone operation" is slow. The
reason is that they clone over and over again to get a "clean checkout". I try 
to explain to them in that case that every machine should clone only once and 
that there are way more efficient ways to get a clean checkout.


> When time permits, I hope to bring some of these enhancements over into git itself.

That would be great!


- Lars

  reply	other threads:[~2017-06-05 12:05 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-01 12:48 RFC: Would a config fetch.retryCount make sense? Lars Schneider
2017-06-01 13:33 ` Ben Peart
2017-06-05 12:04   ` Lars Schneider [this message]
2017-06-05 14:08     ` Ben Peart
2017-06-01 17:59 ` Stefan Beller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9840A095-49EA-4B0C-B318-F86EEF9261B1@gmail.com \
    --to=larsxschneider@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peartben@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.