From: H. Peter Anvin Date: Tue, 12 Nov 2013 18:33:49 GMT Subject: Re: Request: timeout option for remote operations, esp. "git fetch" Message-ID: <5282748D.9000907@zytor.com> In-Reply-To: On 11/12/2013 09:45 AM, Junio C Hamano wrote: > "H. Peter Anvin" writes: > >> On 11/10/2013 12:17 PM, Eric Wong wrote: >>> "H. Peter Anvin" 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