All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.