Interrupted git-gate pushes can leave receive-pack sessions wedged #113

Closed
opened 2026-05-29 21:56:06 -04:00 by didericis-codex · 0 comments
Collaborator

Summary

Interrupted agent push attempts can leave git client processes in the bottle VM and matching git-gate receive-pack children waiting indefinitely. Later pushes can appear hung even though the upstream SSH path is healthy.

Observed

In the claude-implementer-xe6ez bottle, an interrupted push left stale git push / pack-objects processes in the VM and matching git-daemon --serve / git receive-pack children in the sidecar. The pushed test commit never reached the git-gate bare repo. Cleaning those processes restored a responsive dry-run push.

Expected

Git-gate should eventually reap half-open client sessions after an interrupted tool run so the sidecar does not need manual cleanup or restart.

Notes

Direct HTTPS Git traffic through Gitea was separately blocked by pipelock response scanning. The SSH upstream path from git-gate to Gitea was verified with a no-op push and is healthy.

Proposed fix

Start git daemon with bounded idle/init timeouts, e.g. --timeout=60 and --init-timeout=60, so abandoned receive-pack sessions are cleaned up automatically.

## Summary Interrupted agent push attempts can leave git client processes in the bottle VM and matching git-gate receive-pack children waiting indefinitely. Later pushes can appear hung even though the upstream SSH path is healthy. ## Observed In the claude-implementer-xe6ez bottle, an interrupted push left stale git push / pack-objects processes in the VM and matching git-daemon --serve / git receive-pack children in the sidecar. The pushed test commit never reached the git-gate bare repo. Cleaning those processes restored a responsive dry-run push. ## Expected Git-gate should eventually reap half-open client sessions after an interrupted tool run so the sidecar does not need manual cleanup or restart. ## Notes Direct HTTPS Git traffic through Gitea was separately blocked by pipelock response scanning. The SSH upstream path from git-gate to Gitea was verified with a no-op push and is healthy. ## Proposed fix Start git daemon with bounded idle/init timeouts, e.g. --timeout=60 and --init-timeout=60, so abandoned receive-pack sessions are cleaned up automatically.
didericis added the Kind/Bug label 2026-05-29 21:56:23 -04:00
didericis changed title from Bug: interrupted git-gate pushes can leave receive-pack sessions wedged to Interrupted git-gate pushes can leave receive-pack sessions wedged 2026-05-29 21:56:29 -04:00
didericis-codex was assigned by didericis 2026-05-29 21:57:04 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: didericis/bot-bottle#113