Subject: [BUG] t9151: Unreliable test/test setup

From: Martin Erik Werner <[email-masked]>
Date: Thu, 6 Feb 2014 00:46:21 +0100

Hi,

It appears that the last test in t9151-svn-mergeinfo.sh:

	test_expect_failure 'everything got merged in the end' '
		unmerged=$(git rev-list --all --not master) &&
		[ -z "$unmerged" ]
		'

reports "known breakage" or "breakage vanished" seemingly at random:

	$ while true; do (cd t && sh t9151-svn-mergeinfo.sh | \
		grep -q vanished && printf "f" || printf "b"); done
	bbbffffbbffbffbbbffbfffbbbffffffffbffbbbfbbffffffbbfbfff

I would guess that it might not be the test itself that is unreliable,
but rather the svn setup done prior, looking at test logs:

	(cd t && mkdir -p logs; i=0; \
	while true; do sh t9151-svn-mergeinfo.sh --verbose 2>&1 | tee logs/cur \
	| grep -q vanished && \
		(printf "f" && mv logs/cur logs/fixed-"$i") || \
		(printf "b" && mv logs/cur logs/broken-"$i"); \
	i=$((i+1)); done)
	bbffbff

the only consistent difference between broken and fixed seems to be in
the svn setup stage and more specifically the bit below, with r44
becoming different SHA1s in "broken" and "fixed" imports:

--- broken-0    2014-02-05 23:40:21.412967698 +0100
+++ fixed-2     2014-02-05 23:40:44.441536583 +0100
(...)
@@ -176,12 +176,12 @@
        M       subdir/palindromes
 r43 = a671eec900764a4ab85a6166def3e0d30f1a2664 (refs/remotes/bugfix)
        M       subdir/palindromes
-Couldn't find revmap for file:///home/arand/utv/git/git/t/trash%20directory.t9151-svn-mergeinfo/svnrepo/branches/bugfix/subdir
-Couldn't find revmap for file:///home/arand/utv/git/git/t/trash%20directory.t9151-svn-mergeinfo/svnrepo/tags/v1.0/subdir
-W: Cannot find common ancestor between 90411e1b2118e11664e368a24a1eaa5e8749d150 and fdb537791ee8ba532e49c3d5a34a30feeb87bd59. Ignoring merge info.
 Couldn't find revmap for file:///home/arand/utv/git/git/t/trash%20directory.t9151-svn-mergeinfo/svnrepo/tags/v1.0
 Found merge parent (svn:mergeinfo prop): a671eec900764a4ab85a6166def3e0d30f1a2664
-r44 = a110dec28a4b152b394906b1303fbf19174f7d26 (refs/remotes/trunk)
+Couldn't find revmap for file:///home/arand/utv/git/git/t/trash%20directory.t9151-svn-mergeinfo/svnrepo/branches/bugfix/subdir
+Couldn't find revmap for file:///home/arand/utv/git/git/t/trash%20directory.t9151-svn-mergeinfo/svnrepo/tags/v1.0/subdir
+Found merge parent (svn:mergeinfo prop): fdb537791ee8ba532e49c3d5a34a30feeb87bd59
+r44 = 8b619659a5126105c0a9765b655b6a1add9db4c1 (refs/remotes/trunk)
 Checked out HEAD:
   file:///home/arand/utv/git/git/t/trash%20directory.t9151-svn-mergeinfo/svnrepo/trunk r44
 ok 1 - load svn dump

Does anyone who is more familiar with the test know what's going on
here? Is there any way to fix it, or should the test maybe be disabled
completely for the time being?

--
Martin Erik Werner <[email-masked]>