mirror of
https://github.com/imjasonh/kontain.me
synced 2026-07-16 12:21:53 +00:00
fix upload-pack negotiation for stateless-RPC
Three related bugs in the git smart-HTTP upload-pack handler surfaced as 'bad band #78', 60s 504 hangs, and "expected ACK/NAK, got '?PACK'" when fetching after previous pulls. - Don't advertise no-done; we don't implement the ACK ready handshake. - With multi_ack_detailed, don't emit per-round NAKs — only the final one after 'done'. Per-round NAKs make the client treat the first as the transition to sideband pack data, then choke on the second. - Break out of the negotiation loop when a round reads no content (client closed without 'done') so we don't spin on EOF. - Only emit pack data when 'done' was actually received. Non-final rounds get just NAK so HTTP keep-alive doesn't desync the next round. Also trigger null_resource.test on the ko_build image digest so tests re-run on every deploy. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
ac854e7f67
commit
c90342181d
8 changed files with 271 additions and 33 deletions
|
|
@ -6,5 +6,5 @@ time crane validate --remote=git.kontain.me/github.com/imjasonh/kontain.me:main
|
|||
# Default tag resolves to the default branch (main): same commit, cache hit.
|
||||
time crane validate --remote=git.kontain.me/github.com/imjasonh/kontain.me
|
||||
|
||||
docker run --rm git.kontain.me/github.com/imjasonh/kontain.me -c "git log -1"
|
||||
docker run --rm git.kontain.me/github.com/google/go-containerregistry -c "git fetch --unshallow && git log"
|
||||
docker run --rm --pull=always git.kontain.me/github.com/imjasonh/kontain.me -c "git log -1"
|
||||
docker run --rm --pull=always git.kontain.me/github.com/google/go-containerregistry -c "git fetch --unshallow && git log"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue