On Mon, Apr 16, 2012 at 05:43:11PM +0200, Zbigniew Jędrzejewski-Szmek wrote: > % dash -x test2.sh | wc -l > + mkfifo fd > + pid=10738 > + read line > + yes > + echo y > + sleep 1 > + kill 10738 > test2.sh: 12: kill: No such process > > + wait 10738 > + rm -f fd > ^C > > It hangs at the end until killed with ^C. This seem to happen fairly reliably > (nineteen times out of twenty or so). This is with dash 0.5.7-3 and 0.5.5.1-7.4 > from debian. With bash test2.sh seems to always run successfully. Hmm. t5570 seems to pass reliably on dash for me with: diff --git a/t/lib-git-daemon.sh b/t/lib-git-daemon.sh index ef2d01f..9f52cb6 100644 --- a/t/lib-git-daemon.sh +++ b/t/lib-git-daemon.sh @@ -33,7 +33,7 @@ start_git_daemon() { { read line echo >&4 "$line" - cat >&4 & + cat >&4 <git_daemon_output & # Check expected output if test x"$(expr "$line" : "\[[0-9]*\] \(.*\)")" != x"Ready to rumble" But the test above does fail. Is it purely luck of the timing that git-daemon never gets SIGPIPE? I guess the problem is that the {}-section can finish before "cat <git_daemon_output" has actually opened the pipe? I'd just feel better about the solution if we were sure we understood the exact problem. -Peff -- 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