From: "Shawn O. Pearce" <spearce@spearce.org>
To: Nicolas Pitre <nico@fluxnic.net>
Cc: Junio C Hamano <gitster@pobox.com>,
Larry D'Anna <larry@elder-gods.org>, Jeff King <peff@peff.net>,
git@vger.kernel.org
Subject: Re: t5401-update-hooks test failure
Date: Tue, 9 Feb 2010 11:26:28 -0800 [thread overview]
Message-ID: <20100209192628.GC28936@spearce.org> (raw)
In-Reply-To: <alpine.LFD.2.00.1002091337421.1681@xanadu.home>
Nicolas Pitre <nico@fluxnic.net> wrote:
> On Tue, 9 Feb 2010, Shawn O. Pearce wrote:
> >
> > builtin-send-pack.c clearly isn't stopping early while processing
> > the stream, since we see later messages from the post-receive and
> > post-update hooks just fine.
> >
> > So I think the only code that is in question is the case 2 arm of
> > recv_sideband(). But to be honest, I can't find any fault with it.
>
> Note that strict order of messages passed through the sideband can't be
> relied upon. Often you have sideband 1 connected to stdin and sideband
> 2 connected to stderr,
Oh. Sure. But that isn't really the case here.
The messages are all coming down side band #2, before we write
anything down side band #1. The missing message in question
should have appeared somewhere in the middle of that side band
#2 stream that we are seeing in the test output. Given that its
all serialized down into a single stream by the parent process
receive-pack, we really shouldn't see the messages out of order.
> and they are linked with pipes, and various
> factors such as stdio buffering or even printf implementation in the C
> lib
The only way I can see this missing message happening is if the C
library isn't flushing the stdio buffer before the hook process
exits. Given that the hook process is a /bin/sh shell script,
and its using echo to print its messages... I'm at a loss for how
to fix that in Git.
Unless its the recv_sideband() somehow skipping a line. But I
can't see it doing that.
--
Shawn.
next prev parent reply other threads:[~2010-02-09 19:26 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-05 0:41 [PATCH] fix an error message in git-push so it goes to stderr Larry D'Anna
2010-02-05 15:06 ` Jeff King
2010-02-05 19:34 ` [PATCH 1/3] " Larry D'Anna
2010-02-05 19:34 ` [PATCH 2/3] silence human readable info messages going to stderr from git push --porcelain Larry D'Anna
2010-02-05 20:20 ` Junio C Hamano
2010-02-05 20:30 ` Larry D'Anna
2010-02-05 20:49 ` [PATCH v2 0/3] Larry D'Anna
2010-02-05 20:49 ` [PATCH v2 1/3] fix an error message in git-push so it goes to stderr Larry D'Anna
2010-02-05 20:49 ` [PATCH v2 2/3] clean up some of the output from git push --porcelain Larry D'Anna
2010-02-05 21:07 ` Junio C Hamano
2010-02-05 20:49 ` [PATCH v2 3/3] make git push --dry-run --porcelain exit with status 0 even if updates will be rejected Larry D'Anna
2010-02-05 23:50 ` Tay Ray Chuan
2010-02-08 20:19 ` Larry D'Anna
2010-02-08 20:31 ` [PATCH v3 1/3] git-push: fix an error message so it goes to stderr Larry D'Anna
2010-02-08 20:45 ` Junio C Hamano
2010-02-08 20:31 ` [PATCH v3 2/3] git-push: clean up some of the output from git push --porcelain Larry D'Anna
2010-02-08 20:51 ` Junio C Hamano
2010-02-08 21:13 ` Junio C Hamano
2010-02-08 21:32 ` Jeff King
2010-02-08 22:15 ` Larry D'Anna
2010-02-08 22:21 ` Junio C Hamano
2010-02-08 22:31 ` Larry D'Anna
2010-02-08 22:33 ` [PATCH] git-push: clean up some of the output from git push Larry D'Anna
2010-02-08 22:48 ` [PATCH v3 2/3] git-push: clean up some of the output from git push --porcelain Junio C Hamano
2010-02-08 23:10 ` Larry D'Anna
2010-02-08 23:11 ` Junio C Hamano
2010-02-08 23:44 ` [PATCH] git-push: fix the documentation to explain all the status flags Larry D'Anna
2010-02-09 0:23 ` Junio C Hamano
2010-02-09 0:30 ` Junio C Hamano
2010-02-09 0:45 ` Junio C Hamano
2010-02-09 0:56 ` Larry D'Anna
2010-02-09 1:00 ` Junio C Hamano
2010-02-09 0:54 ` Larry D'Anna
2010-02-09 4:54 ` [PATCH v3 2/3] git-push: clean up some of the output from git push --porcelain Larry D'Anna
2010-02-09 7:31 ` Junio C Hamano
2010-02-09 16:21 ` Larry D'Anna
2010-02-09 17:51 ` t5401-update-hooks test failure Shawn O. Pearce
2010-02-09 19:20 ` Nicolas Pitre
2010-02-09 19:26 ` Shawn O. Pearce [this message]
2010-02-09 22:44 ` Junio C Hamano
2010-02-09 23:16 ` Junio C Hamano
2010-02-10 1:29 ` Shawn O. Pearce
2010-02-09 5:48 ` [PATCH v3 2/3] git-push: clean up some of the output from git push --porcelain Larry D'Anna
2010-02-09 5:53 ` [PATCH 1/4] git-push: fix an error message so it goes to stderr Larry D'Anna
2010-02-09 5:54 ` [PATCH 2/4] git-push: squelch advice message if in --porcelain mode Larry D'Anna
2010-02-09 5:54 ` [PATCH 3/4] git-push: send "To <remoteurl>" messages to the standard output " Larry D'Anna
2010-02-11 22:54 ` Tay Ray Chuan
2010-02-11 23:19 ` Junio C Hamano
2010-02-09 5:54 ` [PATCH 4/4] git-push: make git push --dry-run --porcelain exit with status 0 even if updates will be rejected Larry D'Anna
2010-02-10 5:39 ` [PATCH v3 2/3] git-push: clean up some of the output from git push --porcelain Jeff King
2010-02-10 5:55 ` Larry D'Anna
2010-02-10 10:43 ` Tay Ray Chuan
2010-02-08 22:59 ` Junio C Hamano
2010-02-10 5:49 ` Jeff King
2010-02-11 23:23 ` Junio C Hamano
2010-02-12 0:03 ` Jeff King
2010-02-08 20:31 ` [PATCH v3 3/3] git-push: make git push --dry-run --porcelain exit with status 0 even if updates will be rejected Larry D'Anna
2010-02-08 20:59 ` Junio C Hamano
2010-02-08 21:49 ` Larry D'Anna
2010-02-09 22:25 ` Junio C Hamano
2010-02-10 4:13 ` Larry D'Anna
2010-02-10 4:51 ` [PATCH 4/4] " Larry D'Anna
2010-02-15 17:40 ` [PATCH v3 3/3] " Larry D'Anna
2010-02-15 20:42 ` Junio C Hamano
2010-02-05 19:34 ` [PATCH 3/3] " Larry D'Anna
2010-02-05 19:56 ` Jeff King
2010-02-05 20:05 ` Larry D'Anna
2010-02-05 20:13 ` Jeff King
2010-02-05 19:39 ` [PATCH] fix an error message in git-push so it goes to stderr Larry D'Anna
2010-02-05 19:48 ` Jeff King
2010-02-05 19:50 ` Larry D'Anna
2010-02-05 19:50 ` 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=20100209192628.GC28936@spearce.org \
--to=spearce@spearce.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=larry@elder-gods.org \
--cc=nico@fluxnic.net \
--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).