threads / discuss / 37086

t3200-branch.sh number 102 fails when run under make test

Subject: t3200-branch.sh number 102 fails when run under make test

## tl;dr

4 messages between Jul 9, 2014 and Jul 9, 2014.

replies: 3people: 2as markdown or json

Keller, Jacob E· Jul 9, 2014, 20:37 UTC · lore
Hello,

I recently cloned the master branch of the git repo, and when I ran make test, it fails on test 102 of the t3200-branch.sh test cases.

not ok 102 - tracking with unexpected .fetch refspec # # rm -rf a b c d && # git init a && # ( # cd a && # test_commit a # ) && # git init b && # ( # cd b && # test_commit b # ) && # git init c && # ( # cd c && # test_commit c && # git remote add a ../a && # git remote add b ../b && # git fetch --all # ) && # git init d && # ( # cd d && # git remote add c ../c && # git config remote.c.fetch "+refs/remotes/*:refs/remotes/*" && # git fetch c && # git branch --track local/a/master remotes/a/master && # test "$(git config branch.local/a/master.remote)" = "c" && # test "$(git config branch.local/a/master.merge)" = "refs/remotes/a/master" && # git rev-parse --verify a >expect && # git rev-parse --verify local/a/master >actual && # test_cmp expect actual # ) # # failed 1 among 102 test(s) 1..102

However, when I run the test file manually it passes. I am currently running through a verbose output test run to see if I can find more useful output..

For reference, the commit I am testing against is:
72c779457cd7 ("line-log: use commit_list_append() instead of duplicating its code")

Thanks, Jake

Jeff King· Jul 9, 2014, 20:54 UTC · re: Keller, Jacob E · lore

Re: t3200-branch.sh number 102 fails when run under make test

On Wed, Jul 09, 2014 at 08:37:51PM +0000, Keller, Jacob E wrote:
> I recently cloned the master branch of the git repo, and when I ran make
> test, it fails on test 102 of the t3200-branch.sh test cases.

Just a guess, but try reverting 745224e (refs.c: SSE2 optimizations for check_refname_component, 2014-06-18).

That commit causes some weird memory accesses that only show up under certain conditions[1]. There's a possible fix that is not yet applied, but reverting should be an easy way to test.

-Peff
[1] http://thread.gmane.org/gmane.comp.version-control.git/252881
Keller, Jacob E· Jul 9, 2014, 21:17 UTC · re: Jeff King · lore

Re: t3200-branch.sh number 102 fails when run under make test

On Wed, 2014-07-09 at 16:54 -0400, Jeff King wrote:
Show 19 quoted lines
> On Wed, Jul 09, 2014 at 08:37:51PM +0000, Keller, Jacob E wrote:
> 
> > I recently cloned the master branch of the git repo, and when I ran make
> > test, it fails on test 102 of the t3200-branch.sh test cases.
> 
> Just a guess, but try reverting 745224e (refs.c: SSE2 optimizations for
> check_refname_component, 2014-06-18).
> 
> That commit causes some weird memory accesses that only show up under
> certain conditions[1]. There's a possible fix that is not yet applied,
> but reverting should be an easy way to test.
> 
> -Peff
> 
> [1] http://thread.gmane.org/gmane.comp.version-control.git/252881
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

Yes, performing the revert appears to fix the issue. Hopefully the proposed fix also works.

Thanks, Jake

Keller, Jacob E· Jul 9, 2014, 20:56 UTC · re: Keller, Jacob E · lore

Re: t3200-branch.sh number 102 fails when run under make test

On Wed, 2014-07-09 at 13:37 -0700, Jacob E Keller wrote:
Show 53 quoted lines
> Hello,
> 
> I recently cloned the master branch of the git repo, and when I ran make
> test, it fails on test 102 of the t3200-branch.sh test cases.
> 
> not ok 102 - tracking with unexpected .fetch refspec
> #
> #               rm -rf a b c d &&
> #               git init a &&
> #               (
> #                       cd a &&
> #                       test_commit a
> #               ) &&
> #               git init b &&
> #               (
> #                       cd b &&
> #                       test_commit b
> #               ) &&
> #               git init c &&
> #               (
> #                       cd c &&
> #                       test_commit c &&
> #                       git remote add a ../a &&
> #                       git remote add b ../b &&
> #                       git fetch --all
> #               ) &&
> #               git init d &&
> #               (
> #                       cd d &&
> #                       git remote add c ../c &&
> #                       git config remote.c.fetch "+refs/remotes/*:refs/remotes/*" &&
> #                       git fetch c &&
> #                       git branch --track local/a/master remotes/a/master &&
> #                       test "$(git config branch.local/a/master.remote)" = "c" &&
> #                       test "$(git config branch.local/a/master.merge)" = "refs/remotes/a/master" &&
> #                       git rev-parse --verify a >expect &&
> #                       git rev-parse --verify local/a/master >actual &&
> #                       test_cmp expect actual
> #               )
> #
> # failed 1 among 102 test(s)
> 1..102
> 
> However, when I run the test file manually it passes. I am currently
> running through a verbose output test run to see if I can find more
> useful output..
> 
> For reference, the commit I am testing against is:
> 
> 72c779457cd7 ("line-log: use commit_list_append() instead of duplicating its code")
> 
> Thanks,
> Jake
I ran the test wit the GIT_TEST_OPS set to --verbose, and the output I got is:
expecting success: 
	rm -rf a b c d &&
	git init a &&
	(
		cd a &&
		test_commit a
	) &&
	git init b &&
	(
		cd b &&
		test_commit b
	) &&
	git init c &&
	(
		cd c &&
		test_commit c &&
		git remote add a ../a &&
		git remote add b ../b &&
		git fetch --all
	) &&
	git init d &&
	(
		cd d &&
		git remote add c ../c &&
		git config remote.c.fetch "+refs/remotes/*:refs/remotes/*" &&
		git fetch c &&
		git branch --track local/a/master remotes/a/master &&
		test "$(git config branch.local/a/master.remote)" = "c" &&
		test "$(git config branch.local/a/master.merge)" = "refs/remotes/a/master" &&
		git rev-parse --verify a >expect &&
		git rev-parse --verify local/a/master >actual &&
		test_cmp expect actual
	)
Initialized empty Git repository in /home/jekeller/git/git/t/trash directory.t3200-branch/a/.git/
[master (root-commit) ce450c7] a
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 a.t
Initialized empty Git repository in /home/jekeller/git/git/t/trash directory.t3200-branch/b/.git/
[master (root-commit) 19acec0] b
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 b.t
Initialized empty Git repository in /home/jekeller/git/git/t/trash directory.t3200-branch/c/.git/
[master (root-commit) ea1ac38] c
 Author: A U Thor <author@example.com>
 1 file changed, 1 insertion(+)
 create mode 100644 c.t
fatal: Invalid refspec '+refs/heads/*:refs/remotes/b/*'
not ok 102 - tracking with unexpected .fetch refspec
#	
#		rm -rf a b c d &&
#		git init a &&
#		(
#			cd a &&
#			test_commit a
#		) &&
#		git init b &&
#		(
#			cd b &&
#			test_commit b
#		) &&
#		git init c &&
#		(
#			cd c &&
#			test_commit c &&
#			git remote add a ../a &&
#			git remote add b ../b &&
#			git fetch --all
#		) &&
#		git init d &&
#		(
#			cd d &&
#			git remote add c ../c &&
#			git config remote.c.fetch "+refs/remotes/*:refs/remotes/*" &&
#			git fetch c &&
#			git branch --track local/a/master remotes/a/master &&
#			test "$(git config branch.local/a/master.remote)" = "c" &&
#			test "$(git config branch.local/a/master.merge)" = "refs/remotes/a/master" &&
#			git rev-parse --verify a >expect &&
#			git rev-parse --verify local/a/master >actual &&
#			test_cmp expect actual
#		)
#	

# failed 1 among 102 test(s) 1..102 make[2]: *** [t3200-branch.sh] Error 1 make[2]: Leaving directory `/home/jekeller/git/git/t' make[1]: *** [test] Error 2 make[1]: Leaving directory `/home/jekeller/git/git/t' make: *** [test] Error 2

I have to run this as part of the "make test" setup. Is there a way to run a single test script instead of the entire test suite? If so, then I may be able to perform a bisect against the test to find the commit where this breaks.

Thanks, Jake

← back to recent threads