git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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.

  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).