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

Re: [PATCH v3 0/4] Additional FAQ entries

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 6, 2024, 17:18 UTC
Message-ID
<xmqqjzhyqw17.fsf@gitster.g>
In-Reply-To
<20240706064758.GG700645@coredump.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 17 quoted lines
> On Thu, Jul 04, 2024 at 09:23:28PM +0000, brian m. carlson wrote:
>
>> > Buffering the entire thing will break because ...?  Deadlock?  Or is
>> > there anything more subtle going on?
>> 
>> When we use the smart HTTP protocol, the server sends keep-alive and
>> status messages as one of the data streams, which is important because
>> (a) the user is usually impatient and wants to know what's going on and
>> (b) it may take a long time to pack the data, especially for large
>> repositories, and sending no data may result in the connection being
>> dropped or the client being served a 500 by an intermediate layer.  We
>> know this does happen and I've seen reports of it.
>
> Additionally, I think for non-HTTP transports (think proxying ssh
> through socat or similar), buffering the v0 protocol is likely a total
> disaster. The fetch protocol assumes both sides spewing at each other in
> real time.

Yeah, beyond one "window" that a series of "have"s are allowed to be in flight, no further "have"s are sent before seeing an "ack/nack" response, so if you buffer too much, they can deadlock fairly easily.

> ... So I'm OK
> with just telling people "make sure your proxies aren't buffering" as a
> general rule, rather than trying to get into the nitty gritty of what is
> going to break and how.
Sounds fair.  Thanks.
Previous: Jeff KingNext: brian m. carlson
Message 17 of 22 in “Additional FAQ entries”
  1. 0/4 Additional FAQ entriesbrian m. carlson, Jul 4, 2024
  2. 2/4 gitfaq: give advice on using eol attribute in gitattributesbrian m. carlson, Jul 4, 2024
  3. Junio C HamanoJul 4, 2024
  4. brian m. carlsonJul 4, 2024
  5. 3/4 gitfaq: add entry about syncing working treesbrian m. carlson, Jul 4, 2024
  6. Junio C HamanoJul 4, 2024
  7. brian m. carlsonJul 4, 2024
  8. Junio C HamanoJul 6, 2024
  9. 1/4 gitfaq: add documentation on proxiesbrian m. carlson, Jul 4, 2024
  10. 4/4 doc: mention that proxies must be completely transparentbrian m. carlson, Jul 4, 2024
  11. Junio C HamanoJul 4, 2024
  12. Junio C HamanoJul 4, 2024
  13. brian m. carlsonJul 4, 2024
  14. Junio C HamanoJul 6, 2024
  15. brian m. carlsonJul 8, 2024
  16. Jeff KingJul 6, 2024
  17. Junio C HamanoJul 6, 2024
  18. 0/4 Additional FAQ entriesbrian m. carlson, Jul 9, 2024
  19. 1/4 gitfaq: add documentation on proxiesbrian m. carlson, Jul 9, 2024
  20. 3/4 gitfaq: add entry about syncing working treesbrian m. carlson, Jul 9, 2024
  21. 4/4 doc: mention that proxies must be completely transparentbrian m. carlson, Jul 9, 2024
  22. 2/4 gitfaq: give advice on using eol attribute in gitattributesbrian m. carlson, Jul 9, 2024

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.