]> git.ipfire.org Git - thirdparty/git.git/commit
connected: close err_fd in promisor fast-path
authorEthan Dickson <ethanndickson@gmail.com>
Fri, 15 May 2026 06:39:54 +0000 (06:39 +0000)
committerJunio C Hamano <gitster@pobox.com>
Sat, 16 May 2026 13:16:43 +0000 (22:16 +0900)
commitd9982e829069afeae191254c5ad63d465ec7dade
tree96b7030dc26380475d2c9f80a9298f01fe43ab3f
parent67ad42147a7acc2af6074753ebd03d904476118f
connected: close err_fd in promisor fast-path

connected.h documents that err_fd is closed before check_connected()
returns. It is, on three of four exit paths. The promisor-pack fast
path added in 50033772d (connected: verify promisor-ness of partial
clone, 2020-01-30) returns 0 without closing it.

receive-pack uses err_fd as the write end of an async sideband
muxer's pipe, and the muxer thread waits for EOF. The same omission
has caused deadlocks there twice before: 49ecfa13f (receive-pack:
close sideband fd on early pack errors, 2013-04-19) and 6cdad1f13
(receive-pack: fix deadlock when we cannot create tmpdir,
2017-03-07).

Signed-off-by: Ethan Dickson <ethanndickson@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
connected.c