Subject: RE: [BUG] git 2.24.0-rc1 t0500 on NonStop in Jenkins

From: "Randall S. Becker" <[email-masked]>
Date: Mon, 28 Oct 2019 11:20:48 -0400

On October 28, 2019 10:52 AM, SZEDER Gábor wrote:
> On Mon, Oct 28, 2019 at 10:15:31AM -0400, Randall S. Becker wrote:
> > Here is the verbose output from subtest 2 that failed. Sorry it took
> > so long, we had to arrange a different Jenkins job to test this in isolation.
> > Format issue?
> >
> > Cheers,
> > Randall
> >
> > expecting success of 0500.2 'progress display with total':
> > 	cat >expect <<-\EOF &&
> > 	Working hard:  33% (1/3)<CR>
> > 	Working hard:  66% (2/3)<CR>
> > 	Working hard: 100% (3/3)<CR>
> > 	Working hard: 100% (3/3), done.
> > 	EOF
> >
> > 	cat >in <<-\EOF &&
> > 	progress 1
> > 	progress 2
> > 	progress 3
> > 	EOF
> > 	test-tool progress --total=3 "Working hard" <in 2>stderr &&
> >
> > 	show_cr <stderr >out &&
> > 	test_i18ncmp expect out
> >
> > + cat
> > + 1> expect 0< /tmp/sh1811939370.4
> 
> Wow :)
> 
> > + cat
> > + 1> in 0< /tmp/sh1811939370.5
> > + test-tool progress --total=3 Working hard 0< in 2> stderr show_cr 0<
> > + stderr 1> out
> 
> Another wow.
> 
> This is unrelated to the test failure, but makes me rather curious:
> you run the test script with '-x', that's why we see the trace of commands
> executed during the test.  Interestingly, though, we don't see any trace of
> commands executed within any shell function invoked in the test, i.e. from
> show_cr above and test_i18ncmp below.
> 
> What kind of shell is this?

The test output requested by Johannes was to use -i -v -x. We use ksh and have for years to test git. The command used was done within a Jenkins environment and was:

cd t && sh t0500-progress-display.sh -i -v -x

> 
> > + test_i18ncmp expect out
> > --- expect	2019-10-28 14:11:40 +0000
> > +++ out	2019-10-28 14:11:41 +0000
> > @@ -1,4 +1,2 @@
> > -Working hard:  33% (1/3)<CR>
> > -Working hard:  66% (2/3)<CR>
> > -Working hard: 100% (3/3)<CR>
> > -Working hard: 100% (3/3), done.
> > +Working hard:   0% (1/12884901888)<CR>
> > +Working hard:   0% (3/12884901888), done.
> 
> Weird, this looks exactly like the big-endian test failure that was fixed in
> 2b6f6ea1bd (test-progress: fix test failures on big-endian systems, 2019-10-
> 20), but that is already in 2.24.0-rc1 (but not yet in -rc0).
> 
> https://public-inbox.org/git/f1ce445e-6954-8e7b-2dca-
> [email-masked]/
> 
> Is NonStop big or little-endian?  Does t0500 pass without 2b6f6ea1bd?

NonStop is big-endian. When t0500 is run from an interactive terminal, it passes. This failure seems to be a result of being in a disconnected terminal situation typical of Jenkins, not that the test result makes any sense with that being the only difference. t0500 did not exist in 2.23.0, our last build, so I can't easily get that answer. Our Jenkins is based off the master branch, so it's a hard to revert in our pipeline without a serious amount of work - that and without 2b6f6ea1bd, other things break if I remember from August.

Does the printf format use positional arguments (%digit$)? That has known issues on the platform.

FYI: int/long are 32 bits, long long is 64 bits. 12884901888 is 0x300000000, surprisingly.

> > error: last command exited with $?=1
> > not ok 2 - progress display with total
> > #
> > #		cat >expect <<-\EOF &&
> > #		Working hard:  33% (1/3)<CR>
> > #		Working hard:  66% (2/3)<CR>
> > #		Working hard: 100% (3/3)<CR>
> > #		Working hard: 100% (3/3), done.
> > #		EOF
> > #
> > #		cat >in <<-\EOF &&
> > #		progress 1
> > #		progress 2
> > #		progress 3
> > #		EOF
> > #		test-tool progress --total=3 "Working hard" <in 2>stderr &&
> > #
> > #		show_cr <stderr >out &&
> > #		test_i18ncmp expect out
> > #
> >