Thread (14 messages) 14 messages, 5 authors, 2025-04-01

Re: Testsuite failure on s390x and sparc64 after 6840fe9ee2

From: Patrick Steinhardt <hidden>
Date: 2025-03-31 12:27:14
Subsystem: the rest · Maintainer: Linus Torvalds

On Fri, Mar 28, 2025 at 11:37:25AM -0400, Todd Zullinger wrote:
I wrote:
quoted
I don't have a lot of time to poke at this today, but I'll
make another test run on an s390x build host without that
patch, but where I can save the output and post it
somewhere.

For the Fedora packaging, it will be something like this:

    make -C t all || {
        (cd t && ./t5620-backfill.sh -ix);
        ./print-failed-test-output;
    }
The matches file is empty.

    $ ls -lhn batch-trace matches 
    -rw-r--r--. 1 1000 1000 31K Mar 28 11:09 batch-trace
    -rw-r--r--. 1 1000 1000   0 Mar 28 11:09 matches

The only match in batch-trace for promisor fetch_count is
from the previous test:

    $ grep -e '"category":"promisor","key":"fetch_count","value":' batch-trace
    {"event":"data","sid":"20250328T150939.623820Z-H9aa15b67-P0008f613","thread":"main","time":"2025-03-28T15:09:39.625484Z","file":"promisor-remote.c","line":55,"repo":1,"t_abs":0.001777,"t_rel":0.001777,"nesting":1,"category":"promisor","key":"fetch_count","value":"48"}

The trash directory for the test run is here, in case anyone
wants to poke at it:

    https://tmz.fedorapeople.org/t5620-backfill-trash-dir.tar.gz

The full build log is available as well:

    https://tmz.fedorapeople.org/git-2.49.0-s390x-build.log

If you search for 'BEGIN BASE64 MESSAGE' in that, it
provides a command which can be used to extract the full
test-results directory.  That's used to get the output from
the build hosts where shell access isn't available.  I don't
know that it's got anything which isn't in the trash
directory tarball which I already extracted, but it's there
just in case.
Thanks for the additional information!

One thing I stumbled over: the `--min-batch-size` parameter is parsed
using `OPT_INTEGER()`, which expects the value pointer to point to an
integer. But we pass `struct backfill_context::min_batch_size`, which is
of type `size_t`. Maybe that's causing us to end up with an invalid
value?

Could you please check whether the below diff fixes the issue for you?
If so I can turn it into a proper patch.

Patrick

-- >8 --
diff --git a/builtin/backfill.c b/builtin/backfill.c
index 33e1ea2f84f..1dd0d746538 100644
--- a/builtin/backfill.c
+++ b/builtin/backfill.c
@@ -119,11 +119,11 @@ int cmd_backfill(int argc, const char **argv, const char *prefix, struct reposit
 	struct backfill_context ctx = {
 		.repo = repo,
 		.current_batch = OID_ARRAY_INIT,
-		.min_batch_size = 50000,
 		.sparse = 0,
 	};
+	unsigned long min_batch_size = 50000;
 	struct option options[] = {
-		OPT_INTEGER(0, "min-batch-size", &ctx.min_batch_size,
+		OPT_MAGNITUDE(0, "min-batch-size", &min_batch_size,
 			    N_("Minimum number of objects to request at a time")),
 		OPT_BOOL(0, "sparse", &ctx.sparse,
 			 N_("Restrict the missing objects to the current sparse-checkout")),
@@ -140,6 +140,7 @@ int cmd_backfill(int argc, const char **argv, const char *prefix, struct reposit
 
 	if (ctx.sparse < 0)
 		ctx.sparse = core_apply_sparse_checkout;
+	ctx.min_batch_size = min_batch_size;
 
 	result = do_backfill(&ctx);
 	backfill_context_clear(&ctx);
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help