git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: t5800-*.sh: Intermittent test failures

From
Jeff King <peff@peff.net>
Date
Sep 8, 2011, 18:20 UTC
Message-ID
<20110908182055.GA16500@sigill.intra.peff.net>
In-Reply-To
<4E68FE73.4000005@ramsay1.demon.co.uk>
On Thu, Sep 08, 2011 at 06:42:11PM +0100, Ramsay Jones wrote:
> When I run the tests with "make test >test-out", I see a failure rate of about
> 1 in 10. If I then set the debug environment variables (GIT_TRANSPORT_HELPER_DEBUG,
> GIT_TRANSLOOP_DEBUG and GIT_DEBUG_TESTGIT) and run the test script directly (-v),
> then the failure rate goes up to about 1 in 3.

Hmm. I can't reproduce a failure here, but I do get some weirdness. My recipe is:

-- >8 -- cat >foo.sh <<\EOF #!/bin/sh

exec >$1.out 2>&1
n=0
while test $n -lt 100; do
	n=$(($n+1))
	GIT_TRANSPORT_HELPER_DEBUG=1 \
	GIT_TRANSLOOP_DEBUG=1 \
	GIT_DEBUG_TESTGIT=1 \
	./t5800-remote-helpers.sh --root=/run/shm/git-tests-$1 -v || {
		echo FAIL $n
		exit 1
	}
	echo OK $n
done
EOF
# try to keep an 8-core machine busy
for i in `seq 1 16`; do
  sh foo.sh $i &
done
-- 8< --

I never see a test failure, but a few of the 16 end up hanging. The process tree for the hanged tests look like:

  t5800-remote-helper
    git push
      git-remote-testgit
        git fast-import
          git-fast-import

All of them are blocked on wait(), except for the final fast-import, which is blocked trying to read() from stdin.

-Peff
Previous: Ramsay JonesNext: Ramsay Jones
Message 6 of 12 in “t5800-*.sh: Intermittent test failures”
  1. Ramsay JonesAug 9, 2011
  2. Sverre RabbelierAug 11, 2011
  3. Ramsay JonesAug 13, 2011
  4. Junio C HamanoSep 4, 2011
  5. Ramsay JonesSep 8, 2011
  6. Jeff KingSep 8, 2011
  7. Ramsay JonesSep 11, 2011
  8. Alex RiesenNov 1, 2011
  9. Junio C HamanoNov 1, 2011
  10. Alex RiesenNov 1, 2011
  11. Sverre RabbelierNov 2, 2011
  12. Junio C HamanoNov 3, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.