Interrupted git-gate pushes can leave receive-pack sessions wedged #113
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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.
Bug: interrupted git-gate pushes can leave receive-pack sessions wedgedto Interrupted git-gate pushes can leave receive-pack sessions wedged