Subject: Re: Testsuite failure on s390x and sparc64 after 6840fe9ee2

From: Patrick Steinhardt <[email-masked]>
Date: Fri, 28 Mar 2025 10:30:58 +0100

Also Cc'ing Stolee's current mail address instead of the GitHub one.

On Fri, Mar 28, 2025 at 10:29:16AM +0100, Patrick Steinhardt wrote:
> On Wed, Mar 26, 2025 at 06:27:50PM -0400, Todd Zullinger wrote:
> > John Paul Adrian Glaubitz wrote:
> > > the following commit:
> > > 
> > > commit 6840fe9ee29ab51ffd7d924c624dc62da22c50bf
> > > Author: Derrick Stolee <[email-masked]>
> > > Date:   Mon Feb 3 17:11:05 2025 +0000
> > > 
> > >     backfill: add --min-batch-size=<n> option
> > >     
> > >     Users may want to specify a minimum batch size for their needs. This is only
> > >     a minimum: the path-walk API provides a list of OIDs that correspond to the
> > >     same path, and thus it is optimal to allow delta compression across those
> > >     objects in a single server request.
> > >     
> > >     We could consider limiting the request to have a maximum batch size in the
> > >     future. For now, we let the path-walk API batches determine the
> > >     boundaries.
> > > (...)
> > > 
> > > broke the testsuite on s390x [1] and sparc64 [2]. The following test fails:
> > > 
> > > not ok 4 - do partial clone 2, backfill min batch size
> > > 
> > > CC'ing the author which is Derrick Stolee.
> > 
> > I reported this during the rc period.  I didn't hear back on
> > it, but hopefully your message will arrive at a more
> > convenient time. :)
> > 
> > https://lore.kernel.org/git/[email-masked]/
> 
> Copy-pasting the test logs from that mail:
> 
>     expecting success of 5620.4 'do partial clone 2, backfill min batch size':
>             git clone --no-checkout --filter=blob:none      \
>                     --single-branch --branch=main           \
>                     "file://$(pwd)/srv.bare" backfill2 &&
>             GIT_TRACE2_EVENT="$(pwd)/batch-trace" git \
>                     -C backfill2 backfill --min-batch-size=20 &&
>             # Batches were used
>             test_trace2_data promisor fetch_count 20 <batch-trace >matches &&
>             test_line_count = 2 matches &&
>             test_trace2_data promisor fetch_count 8 <batch-trace &&
>             # No more missing objects!
>             git -C backfill2 rev-list --quiet --objects --missing=print HEAD >revs2 &&
>             test_line_count = 0 revs2
>     +++ pwd
>     ++ git clone --no-checkout --filter=blob:none --single-branch --branch=main 'file:///tmp/git-t.sYdo/trash directory.t5620-backfill/srv.bare' backfill2
>     Cloning into 'backfill2'...
>     +++ pwd
>     ++ GIT_TRACE2_EVENT='/tmp/git-t.sYdo/trash directory.t5620-backfill/batch-trace'
>     ++ git -C backfill2 backfill --min-batch-size=20
>     ++ test_trace2_data promisor fetch_count 20
>     ++ grep -e '"category":"promisor","key":"fetch_count","value":"20"'
>     error: last command exited with $?=1
>     not ok 4 - do partial clone 2, backfill min batch size
> 
> It would be nice to learn what the file contains instead of the expected
> string, which might give us a bit more of a hint what's wrong. You can
> for example apply the following patch:
> 
> diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh
> index 79377bc0fc2..197494cd28c 100644
> --- a/t/test-lib-functions.sh
> +++ b/t/test-lib-functions.sh
> @@ -1975,7 +1975,7 @@ test_region () {
>  #	GIT_TRACE2_EVENT="$(pwd)/trace.txt" git pack-objects ... &&
>  #	test_trace2_data pack-objects reused N <trace2.txt
>  test_trace2_data () {
> -	grep -e '"category":"'"$1"'","key":"'"$2"'","value":"'"$3"'"'
> +	test_grep -e '"category":"'"$1"'","key":"'"$2"'","value":"'"$3"'"'
>  }
>  
>  # Given a GIT_TRACE2_EVENT log over stdin, writes to stdout a list of URLs
> 
> If you then re-run the test with `-ix` we should end up printing the
> contents of that non-matching file.
> 
> Thanks!
> 
> Patrick
>