git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff King <peff@peff.net>
To: Brian Gernhardt <brian@gernhardtsoftware.com>
Cc: "git@vger.kernel.org List" <git@vger.kernel.org>
Subject: Re: t0008 hang on streaming test (OS X)
Date: Thu, 11 Jul 2013 09:34:14 -0400	[thread overview]
Message-ID: <20130711133414.GF6015@sigill.intra.peff.net> (raw)
In-Reply-To: <6050FACA-CAD4-4E41-B7DC-D7A2036AA233@gernhardtsoftware.com>

On Wed, Jul 10, 2013 at 12:36:40PM -0400, Brian Gernhardt wrote:

> The newest test in t0008 "streaming support for --stdin", seems to
> hang sporadically on my MacBook Pro (running 10.8.4).  The hang seems
> to be related to running it in parallel with other tests, as I can
> only reliably cause it by running with prove  and -j 3.  However, once
> that has hung I am able to semi-reliably have it occur by running the
> test separately (with the test hung in the background, using separate
> trash directories via the --root option).

I can't replicate the hang here (on Linux) doing:

  for i in `seq 1 30`; do
      ./t0008-ignores.sh --root=/tmp/foo/$i &
  done

Do you know which test it is hanging on? You mentioned that you can
replicate it outside of "prove"; what does running with "-v" say?

The last test in t0008, with the fifos, would make me the most
suspicious. The way we do it _should_ be fine, but I'm wondering if the
shell is blocking in exec here:

  mkfifo in out &&
  (git check-ignore -n -v --stdin <in >out &) &&
  exec 9>in &&

That is, if the fifo is not opened for some reason by the backgrounded
process (there's a race, of course, but the outer shell should just
block until the sub-shell actually opens it). I wonder if the
descriptor-opening behavior of:

  cmd <in >out &

is different between shells (that is, if it backgrounds the opening of
in and out on some shells, but not on others). But then I would expect
it to fail consistently.

Just for fun, does switching the middle line there to:

  (sh -c "git check-ignore -n -v --stdin <in >out" &) &&

have any effect?

-Peff

  parent reply	other threads:[~2013-07-11 13:34 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-10 16:36 t0008 hang on streaming test (OS X) Brian Gernhardt
2013-07-10 20:35 ` Antoine Pelisse
2013-07-11 16:14   ` Brian Gernhardt
2013-07-11 13:34 ` Jeff King [this message]
2013-07-11 16:09   ` Junio C Hamano
2013-07-12 10:35     ` [PATCH] t0008: avoid SIGPIPE race condition on fifo Jeff King
2013-07-12 16:23       ` Junio C Hamano
2013-07-12 20:42         ` Jeff King
2013-07-12 16:42       ` Brian Gernhardt
2013-07-11 16:13   ` t0008 hang on streaming test (OS X) Brian Gernhardt

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130711133414.GF6015@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=brian@gernhardtsoftware.com \
    --cc=git@vger.kernel.org \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).