Skip to content

[codex] Hold Git concurrency permits through streaming (BUZZ-SEC-018)#1916

Open
jmecom wants to merge 1 commit into
mainfrom
codex/fix-buzz-sec-018
Open

[codex] Hold Git concurrency permits through streaming (BUZZ-SEC-018)#1916
jmecom wants to merge 1 commit into
mainfrom
codex/fix-buzz-sec-018

Conversation

@jmecom

@jmecom jmecom commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

What changed

Git upload-pack responses now retain their global concurrency permit for the complete response-body stream. The permit is released when the stream reaches EOF or when a disconnected client causes Axum to drop the response body.

Why

The streaming path previously released its semaphore permit as soon as it constructed the HTTP response, even though the Git subprocess and hydrated repository remained active while bytes were sent. Slow or stalled clients could therefore create more simultaneous Git subprocesses than the configured limit.

Impact

The configured Git concurrency limit now reflects actual in-flight subprocesses. Slow clients occupy a slot for their full stream lifetime, which is the intended resource bound; disconnecting releases the slot automatically.

Testing

  • cargo test -p buzz-relay streaming_body_holds_git_permit_until_drop --lib

Addresses BUZZ-SEC-018.

@jmecom
jmecom marked this pull request as ready for review July 15, 2026 18:17
@jmecom
jmecom requested a review from a team as a code owner July 15, 2026 18:17
@jmecom
jmecom force-pushed the codex/fix-buzz-sec-018 branch 2 times, most recently from d9890dd to f8d7f15 Compare July 15, 2026 22:37
@jmecom
jmecom force-pushed the codex/fix-buzz-sec-018 branch from f8d7f15 to f1af590 Compare July 16, 2026 20:32
@jmecom
jmecom force-pushed the codex/fix-buzz-sec-018 branch from f1af590 to 20e96af Compare July 16, 2026 20:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants