Hi, When running `make test` on an s390x machine in Debian it is failing on 'do partial clone 2, backfill min batch size' Reference: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1102106 After processing the command line arguments structure member min_batch_size should have had the value 20 Instead of having the value 20 (--min-batch-size=20) it was having a very large value min_batch_size in `struct backfill_context` is of type `size_t` and since in the function cmd_backfill, in the options struct it is passed on to OPT_INTEGER, which eventually causes ``` *(int *)opt->value = strtol(arg, (char **)&s, 10); ``` in parse-options.c line 188. This is writing the data in the first 4 bytes of min_batch_size and on big endian systems this will lead min_batch_size to be a big number. This issue is immediately visible in little endian systems. Changing OPT_INTEGER to OPT_MAGNITUDE seems to be working on x86 and s390x ``` diff --git a/builtin/backfill.c b/builtin/backfill.c index 18f9701487..33e1ea2f84 100644 --- a/builtin/backfill.c +++ b/builtin/backfill.c @@ -123,7 +123,7 @@ int cmd_backfill(int argc, const char **argv, const char *prefix, struct reposit .sparse = 0, }; struct option options[] = { - OPT_MAGNITUDE(0, "min-batch-size", &ctx.min_batch_size, + OPT_INTEGER(0, "min-batch-size", &ctx.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")), ``` But on systems where size_t which not be unsigned long, this might lead to an issue. So, one other suggestion I have is to change the data type of min_batch_size from size_t to int. But I am not able to determine whether a practical upper bound for min_batch_size would exceed what an int variable can store. With that clarification, I can a raise patch for the issue. Please review the rest of the bug report below. [System Info] git version: git version 2.49.0.391.g4bbb303af6 cpu: s390x built from commit: 4bbb303af69990ccd05fe3a2eb58a1ce036f8220 sizeof-long: 8 sizeof-size_t: 8 shell-path: /bin/sh libcurl: 8.13.0 OpenSSL: OpenSSL 3.4.1 11 Feb 2025 zlib: 1.3.1 SHA-1: SHA1_DC SHA-256: SHA256_BLK uname: Linux 6.1.0-31-s390x #1 SMP Debian 6.1.128-1 (2025-02-07) s390x compiler info: gnuc: 14.2 libc info: glibc: 2.41 $SHELL (typically, interactive shell): /bin/bash [Enabled Hooks] I am fairly new to opensource and was following the `git bugreport`. So I am extremely sorry for any lack of clarity in the report. Thanks, Pranav