git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Request: timeout option for remote operations, esp. "git fetch"

From
HAH. Peter Anvin <hpa@zytor.com>
Date
Nov 12, 2013, 18:33 UTC
Message-ID
<5282748D.9000907@zytor.com>
In-Reply-To
<xmqq1u2likea.fsf@gitster.dls.corp.google.com>
On 11/12/2013 09:45 AM, Junio C Hamano wrote:
Show 24 quoted lines
> "H. Peter Anvin" <hpa@zytor.com> writes:
> 
>> On 11/10/2013 12:17 PM, Eric Wong wrote:
>>> "H. Peter Anvin" <hpa@zytor.com> wrote:
>>>> When a remote server is unavailable or very slow, some git commands can
>>>> stall out indefinitely.  It would be a very good thing if remote
>>>> commands -- but especially git fetch -- could be given a timeout.
>>>
>>> We've had SO_KEEPALIVE on git and ssh transports since e47a8583 (2011-12-06)
>>> SO_KEEPALIVE for http was added recently (a15d069a) and will be in git 1.8.5
>>>
>>> Do you want a shorter timeout for slow (but still alive) servers?
>>>
>>
>> Yes; note that SO_KEEPALIVE only guarantees that the server is alive at
>> the TCP socket level.  If the server is overloaded but technically alive
>> it may still make no meaningful forward progress.
> 
> Which means that your original wish may not be granted with
> SO_KEEPALIVE at all, no?  I was wondering if you wanted a forced
> timeout based on alarm(2), something similar to what you added to
> git-daemon in 960deccb (git-daemon: timeout, eliminate double DWIM,
> 2005-10-19).
> 

Yes, something more like that on the client end. SO_KEEPALIVE is better than nothing, but not really good enough.

	-hpa
Previous: Junio C HamanoNext: Jeff King
Message 5 of 6 in “Request: timeout option for remote operations, esp. "git fetch"”
  1. H. Peter AnvinNov 7, 2013
  2. Eric WongNov 10, 2013
  3. H. Peter AnvinNov 12, 2013
  4. Junio C HamanoNov 12, 2013
  5. H. Peter AnvinNov 12, 2013
  6. Jeff KingNov 14, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.