Why
The anonymous read path is bounded by the Git HTTP limits. The passkey
ceremonies are the only anonymous endpoints that make the server compute and
store state, held down by a 4096-entry ceremony map and three rate limits; and a
push or an artifact upload allocates against receive_max_bytes and the LFS
quota. Neither ceiling has been measured, and both are reachable by a client
that has not proven anything.
Scope
Using the harness from the sibling issue:
- Sign-in begin and finish, registration, and invite redemption, at and above
the per-address, per-account, and registration limits. Check the refusals:
429withRetry-After, and a ceremony map that stays within its cap. - Logout and session-protected page reads with many sessions held at once.
- LFS and artifact uploads from several concurrent pushers, and a push
refused by
repo_max_bytesor a ref quota, to see that the refusal moves no refs. - Record RSS, file descriptors, goroutines, and child processes for the server, and for a runner too if uploads go through one.
Acceptance
- Each path has a measured ceiling at the configured limit, recorded on the issue.
- A refused sign-in is refused at the limit, and a refused push leaves the repository unchanged.
- Memory and file descriptors return to their baseline after the run, with the measurement shown.
Part of #14. Depends on the load-test harness issue.