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

Re: [PATCH 0/2] Optionally support push options on up-to-date branches

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Mar 15, 2024, 20:29 UTC
Message-ID
<ZfSvmOWrsT2dFnG5@tapette.crustytoothpaste.net>
In-Reply-To
<SA1PR14MB46911007FDFE3FFADB4FB3A68D282@SA1PR14MB4691.namprd14.prod.outlook.com>
On 2024-03-15 at 08:58:35, Christopher Lindee wrote:
> Is this a potential avenue for DoS?

No, it's not. In our implementation, there is a functional limit on ref updates and if you exceed it, the operation fails. We also have rate limiting that estimates future cost based on the cost of previous requests and delays or fails requests which are projected to exceed a reasonable threshold. (Thus, you can make many more cheap requests, or fewer expensive ones, your choice.) All of this is per-repository, so generally only you (and maybe your colleagues or collaborators) experience negative consequences if you attempt excessive use.

I can't speak to other implementations, but robust rate limits are typically common. I'm sure all major implementations open to the public have some sort of rate limiting because otherwise they'd be down a lot.

The difference is that failing operations and even well-explained, well-documented rate limits cause a poor user experience, user frustration, and user inquiries (e.g., support requests), as well as possibly noisy alerting and potentially pages for engineers. Anytime a user experiences rate limits, they have to make a change in their behaviour, and people don't like change.

I'd prefer we left the default to do the cheap no-op because, as I said, that scales much better, and thus we allow users to do the obvious thing for much longer and it just works for them. That, in turn, provides everyone a better experience.

Certainly, if people start using this option by default, then it will be a problem if they engage in excessive use and server implementations will probably scale worse, but usually users don't use non-default options unless they need them, so I don't think your new proposed option is a problem.

-- 
brian m. carlson (they/them or he/him)
Toronto, Ontario, CA
Previous: Christopher LindeeNext: Christopher Lindee
Message 11 of 13 in “Optionally support push options on up-to-date branches”
  1. 0/2 Optionally support push options on up-to-date branchesChristopher Lindee, Mar 12, 2024
  2. Junio C HamanoMar 13, 2024
  3. brian m. carlsonMar 14, 2024
  4. Junio C HamanoMar 14, 2024
  5. Chris TorekMar 15, 2024
  6. brian m. carlsonMar 15, 2024
  7. Christopher LindeeMar 15, 2024
  8. Junio C HamanoMar 15, 2024
  9. brian m. carlsonMar 15, 2024
  10. Christopher LindeeMar 15, 2024
  11. brian m. carlsonMar 15, 2024
  12. Christopher LindeeMar 15, 2024
  13. Christopher LindeeMar 14, 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.