git-daemon is not launched properly in t5570: $ GIT_TEST_GIT_DAEMON=t ./t5570-git-daemon.sh ok 1 - setup repository ok 2 - create git-accessible bare repository not ok - 3 clone git repository not ok - 4 fetch changes via git protocol ... Current setup code to spawn git daemon (start_git_daemon() in lib-git-daemon.sh) redirects daemon output to a pipe, and then redirects input from this pipe to a different fd, which is in turn connected to a terminal: mkfifo git_daemon_output git daemon ... >&3 2>git_daemon_output { ... cat >&4 } <git_daemon_output Unfortunately, it seems that the shell (at least bash 4.1-3 from debian) closes the pipe and cat doesn't really copy any messages. This causes git-daemon to die. Running 'strace -o log cat' instead of just 'cat' shows that no input is read: execve("/bin/cat", ...) = 0 ... read(0, "", 8192) = 0 close(0) = 0 close(1) = 0 close(2) = 0 exit_group(0) = ? I guess that the shell closes the redirection when exiting the {}-delimited part. It seems easiest to move the cat invocation outside of the {}-delimited part and provide a separate redirection which will not be closed. While at it, print the address on which git-daemon is started, to make debugging easier. Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@xxxxxxxxx> --- t/lib-git-daemon.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/t/lib-git-daemon.sh b/t/lib-git-daemon.sh index ef2d01f..8f9c1b6 100644 --- a/t/lib-git-daemon.sh +++ b/t/lib-git-daemon.sh @@ -22,7 +22,7 @@ start_git_daemon() { trap 'code=$?; stop_git_daemon; (exit $code); die' EXIT - say >&3 "Starting git daemon ..." + say >&3 "Starting git daemon on $GIT_DAEMON_URL ..." mkfifo git_daemon_output git daemon --listen=127.0.0.1 --port="$LIB_GIT_DAEMON_PORT" \ --reuseaddr --verbose \ @@ -33,7 +33,6 @@ start_git_daemon() { { read line echo >&4 "$line" - cat >&4 & # Check expected output if test x"$(expr "$line" : "\[[0-9]*\] \(.*\)")" != x"Ready to rumble" @@ -44,6 +43,8 @@ start_git_daemon() { error "git daemon failed to start" fi } <git_daemon_output + + cat <git_daemon_output >&4 & } stop_git_daemon() { -- 1.7.10.226.gfe575 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html