From: "Zbigniew Jędrzejewski-Szmek" <zbyszek@in.waw.pl>
To: git@vger.kernel.org, gitster@pobox.com,
Clemens Buchacher <drizzd@aon.at>
Cc: "Jeff King" <peff@peff.net>,
"Zbigniew Jędrzejewski-Szmek" <zbyszek@in.waw.pl>
Subject: [PATCH] t5570: forward git-daemon messages in a different way
Date: Sat, 14 Apr 2012 10:44:30 +0200 [thread overview]
Message-ID: <1334393070-7123-1-git-send-email-zbyszek@in.waw.pl> (raw)
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@in.waw.pl>
---
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
next reply other threads:[~2012-04-14 8:44 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-14 8:44 Zbigniew Jędrzejewski-Szmek [this message]
2012-04-14 12:13 ` [PATCH] t5570: forward git-daemon messages in a different way Clemens Buchacher
2012-04-14 12:21 ` Clemens Buchacher
2012-04-16 15:43 ` Zbigniew Jędrzejewski-Szmek
2012-04-16 17:09 ` Junio C Hamano
2012-04-16 21:22 ` Clemens Buchacher
2012-04-16 22:06 ` Zbigniew Jędrzejewski-Szmek
2012-04-17 15:43 ` Junio C Hamano
2012-04-16 17:42 ` Jeff King
2012-04-16 22:44 ` Clemens Buchacher
2012-04-19 6:03 ` Jeff King
2012-04-19 6:58 ` Johannes Sixt
2012-04-26 13:01 ` Jeff King
2012-04-26 18:16 ` Johannes Sixt
2012-04-26 19:55 ` Clemens Buchacher
2012-04-26 21:00 ` [PATCH] t5570: fix forwarding of git-daemon messages via cat Johannes Sixt
2012-04-26 21:10 ` Zbigniew Jędrzejewski-Szmek
2012-04-27 7:59 ` Jeff King
2012-04-27 15:02 ` Junio C Hamano
2012-04-27 7:55 ` [PATCH] t5570: forward git-daemon messages in a different way Jeff King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1334393070-7123-1-git-send-email-zbyszek@in.waw.pl \
--to=zbyszek@in.waw.pl \
--cc=drizzd@aon.at \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).