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

[PATCH 0/2] upload-pack keepalive

From
Jeff King <peff@peff.net>
Date
Sep 8, 2013, 08:59 UTC
Message-ID
<20130908085915.GA4097@sigill.intra.peff.net>

I've gotten complaints that cloning from github.com with "-q" will sometimes abort before sending any data. The problem is that during a quiet clone, upload-pack may be silent for a long time while preparing the pack (i.e., the "counting objects" and "compressing" phases).

We have load balancers and reverse proxies sitting in front of the git machines, and these machines may sometimes think the connection has hung and drop it, even though if they had waited a few more seconds, the pack would have started coming.

We mitigated it somewhat by bumping the timeouts on our side, but that's only one piece of the puzzle. Clients may be going through http proxies or stateful firewalls on their end, and neither we nor they have any control.

This series teaches upload-pack to periodically send an empty sideband data packet when pack-objects is being quiet. That keeps a small amount of data flowing, and should be backwards compatible. I hand-tested it against JGit, dulwich (via the mercurial git plugin), libgit2, and old versions of git, and all worked fine. It has also been running on github.com for about a week and a half, and nobody has reported any problems.

  [1/2]: upload-pack: send keepalive packets during pack computation
  [2/2]: upload-pack: bump keepalive default to 5 seconds
-Peff
Next: Jeff King
Message 1 of 4 in “upload-pack keepalive”
  1. 0/2 upload-pack keepaliveJeff King, Sep 8, 2013
  2. 1/2 upload-pack: send keepalive packets during pack computationJeff King, Sep 8, 2013
  3. Eric SunshineSep 9, 2013
  4. 2/2 upload-pack: bump keepalive default to 5 secondsJeff King, Sep 8, 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.