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

From: "Randall S. Becker" <[email-masked]>
Date: Tue, 29 Oct 2019 10:56:11 -0400

On October 29, 2019 6:16 AM, SZEDER Gábor wrote:
> On Mon, Oct 28, 2019 at 11:20:48AM -0400, Randall S. Becker wrote:
> > > > + 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,
> 
> Didn't you build v2.24.0-rc0?

Reporter bonehead moment. Ok, the problem is in v2.24.0-rc0, *NOT* rc1. I am deeply sorry for the confusion. I ran both build test cycles and t0500 in rc1 worked. We are running the full rc1 cycle now.

> > 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.
> 
> The output in question is formatted in display() in progress.c:124:
> 
>         strbuf_addf(counters_sb,
>                     "%3u%% (%"PRIuMAX"/%"PRIuMAX")%s", percent,
>                     (uintmax_t)n, (uintmax_t)progress->total,
>                     tp);
> 
> where both 'n' and 'progress->total' are uint64_t, and 'PRIuMAX' is 'llu'.  All
> of these are widely used throughout the code base.
> 
> > FYI: int/long are 32 bits, long long is 64 bits. 12884901888 is
> > 0x300000000, surprisingly.
> 
> It's not surprising, basically that's what 2b6f6ea1bd is all about.
> 
> > > > 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
> > > > #