Nicolas Pitre <nico@xxxxxxxxxxx> 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. -- 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