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

Re: [PATCH] remote-curl: don't hang when a server dies before any output

From
Jeff King <peff@peff.net>
Date
Nov 18, 2016, 17:01 UTC
Message-ID
<20161118170147.g7nbkxpyihwkk6fw@sigill.intra.peff.net>
In-Reply-To
<xmqqzil0tza6.fsf@gitster.mtv.corp.google.com>
On Tue, Nov 15, 2016 at 09:42:57AM -0800, Junio C Hamano wrote:
Show 8 quoted lines
> >> Hmph.  I think I tried David's original under GIT_TEST_LONG and saw
> >> it got stuck; could be the same issue, I guess.
> >
> > It works OK here. I think it is just that the test is really slow (by
> > design).
> 
> Yeah, I think what I recalled was my old attempt to run the
> follow-up "any SHA-1" patch without this one.
Right, that makes sense.

So I don't feel like we have a good patch for the general case yet, and I'm probably not going to get around to implementing it anytime soon. So I'd suggest taking David's original patch (to punt when the response is empty) in the meantime.

It doesn't fix all cases, but if fixes _a_ case, and probably one of the most likely one in practice. I don't think it can cause any regressions. It's a "snooping" solution like mine, but it makes many fewer assumptions about the protocol. We know that an empty response cannot possibly advance fetch-pack further because we won't have sent it any bytes. :)

I do think the commit message could be improved based on the discussion here, though (at the very least to describe the nature of the deadlock, and that we are choosing only one of the possible solutions, and why).

-Peff
Previous: Junio C HamanoNext: David Turner
Message 13 of 18 in “remote-curl: don't hang when a server dies before any output”
  1. remote-curl: don't hang when a server dies before any outputDavid Turner, Nov 9, 2016
  2. Jeff KingNov 14, 2016
  3. Jeff KingNov 14, 2016
  4. Junio C HamanoNov 14, 2016
  5. Jeff KingNov 14, 2016
  6. David TurnerNov 14, 2016
  7. Jeff KingNov 14, 2016
  8. David TurnerNov 15, 2016
  9. Jeff KingNov 15, 2016
  10. Junio C HamanoNov 15, 2016
  11. Jeff KingNov 15, 2016
  12. Junio C HamanoNov 15, 2016
  13. Jeff KingNov 18, 2016
  14. David TurnerNov 18, 2016
  15. Jeff KingNov 18, 2016
  16. David TurnerNov 18, 2016
  17. Junio C HamanoNov 18, 2016
  18. Jeff KingNov 15, 2016

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.