Re: [PATCH] t1092: use GIT_PROGRESS_DELAY for consistent results

2 messages, 2 authors, 2021-05-25 · open the first message on its own page

Re: [PATCH] t1092: use GIT_PROGRESS_DELAY for consistent results

From: Junio C Hamano <hidden>
Date: 2021-05-25 20:46:20

Derrick Stolee [off-list ref] writes:
On 5/25/2021 2:32 AM, Junio C Hamano wrote:
quoted
Derrick Stolee [off-list ref] writes:
quoted
quoted
So we silently convert -1 to 2^64-1, and call it a day.
That works for me. I'll send a v2 with that tomorrow unless someone
presents a better option.
I'll queue with this tweak for tonight's integration run.

...
Thank you for proactively modifying the patch. This works
for me. I didn't realize that this was affecting other
contributors [1] until I woke up this morning.

[1] https://lore.kernel.org/git/036b01d750ed$642b75c0$2c826140$@nexbridge.com/
Well, not so well X-<.  It seems that some builds are not happy with
this change.  See https://github.com/git/git/actions/runs/876229761
specifically these two:

    https://github.com/git/git/runs/2669177395?check_suite_focus=true#step:7:3549
    https://github.com/git/git/runs/2669080101?check_suite_focus=true#step:6:988

I suspect that it has something to do with 32-bit platforms?

Thanks.

Re: [PATCH] t1092: use GIT_PROGRESS_DELAY for consistent results

From: Taylor Blau <hidden>
Date: 2021-05-25 21:49:37

On Wed, May 26, 2021 at 05:46:16AM +0900, Junio C Hamano wrote:
Well, not so well X-<.  It seems that some builds are not happy with
this change.  See https://github.com/git/git/actions/runs/876229761
specifically these two:

    https://github.com/git/git/runs/2669177395?check_suite_focus=true#step:7:3549
    https://github.com/git/git/runs/2669080101?check_suite_focus=true#step:6:988

I suspect that it has something to do with 32-bit platforms?
Thanks. Of course, redirecting stderr into a file and halting after we
get a non-zero exit code makes this pretty hard to debug from that
output alone, but this is pretty easily reproducible on a 32-bit Docker
image:

    root@99cfe0d56673:/git-master# getconf LONG_BIT
    32
    root@99cfe0d56673:/git-master# GIT_PROGRESS_DELAY=-1 ./bin-wrappers/git status
    fatal: failed to parse GIT_PROGRESS_DELAY

Looking more closely in a debugger shows that we're failing because of
this check in 'config.c:git_parse_unsigned()':

    if (unsigned_mult_overflows(factor, val) ||
        factor * val > max) {
          errno = ERANGE;
          return 0;
    }

unsigned_mult_overflows() doesn't trigger regardless of architecture,
since even though val is large, factor is 1, so factor * val == val. But
val is much larger than max, so we fail there. 'max' is just
'maximum_unsigned_value_of_type(long)', or 2^32-1, while val is 2^64-1.

Thanks,
Taylor
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help