git-gate clone fails with empty reply on Apple-container backend (access-hook not executable) #404
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
Cloning/fetching from the per-agent git-gate on the Apple-container backend fails with
git clonereporting "empty reply from server" (curl exit 52). It presents as an auth/network failure but is neither — attribution and routing work; the gateway's git-http handler crashes on every upload-pack:Root cause
The access-hook is exec'd directly, so it needs the x bit.
git_gate.prepare()stages it0o700and trusts the gateway copy to carry that mode.docker cppreserves source mode; the Applecontainer cp(AppleGatewayTransport.cp_into) does not, landing the hook0o644→EACCES. The unhandled exception kills the handler thread, closing the socket with no HTTP response — the opaque "empty reply."Only fetch/clone breaks: the pre-receive (push) hook is run via
sh <script>, so it doesn't need the x bit.Impact
git-gate clone/fetch is fully broken on the Apple-container backend. A live agent bottle could not clone the repo.
Fix
provision_git_gateshouldchmod +xthe access-hook gateway-side after the copy (backend-neutral).Fixed in #403.