summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2007-03-27 23:45:06 (GMT)
committerJunio C Hamano <junkio@cox.net>2007-03-29 08:41:23 (GMT)
commit3ac53e0d13fa7483cce90eb6a1cfcdcbda5b8e35 (patch)
tree42854e6d306ac2ea13bcdcb1f258c77f080a1abf
parentc2c6d9302a98ae4c4c76822a1c83551c039271a0 (diff)
downloadgit-3ac53e0d13fa7483cce90eb6a1cfcdcbda5b8e35.zip
git-3ac53e0d13fa7483cce90eb6a1cfcdcbda5b8e35.tar.gz
git-3ac53e0d13fa7483cce90eb6a1cfcdcbda5b8e35.tar.bz2
git-upload-pack: make sure we close unused pipe ends
Right now, we don't close the read end of the pipe when git-upload-pack runs git-pack-object, so we hang forever (why don't we get SIGALRM?) instead of dying with SIGPIPE if the latter dies, which seems to be the norm if the client disconnects. Thanks to Johannes Schindelin <Johannes.Schindelin@gmx.de> for pointing out where this close() needed to go. This patch has been tested on kernel.org for several weeks and appear to resolve the problem of git-upload-pack processes hanging around forever. Signed-off-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Junio C Hamano <junkio@cox.net> (cherry picked from commit 465b3518a9ad5080a4b652ef35fb13c61a93e7a4)
-rw-r--r--upload-pack.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/upload-pack.c b/upload-pack.c
index 3648aae..044c33b 100644
--- a/upload-pack.c
+++ b/upload-pack.c
@@ -119,6 +119,7 @@ static void create_pack_file(void)
int i;
struct rev_info revs;
+ close(lp_pipe[0]);
pack_pipe = fdopen(lp_pipe[1], "w");
if (create_full_pack)