Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: work around a problem with HTTP/2 vs libcurl v8.10.0 #5165

Merged
merged 2 commits into from
Sep 24, 2024

Conversation

dscho
Copy link
Member

@dscho dscho commented Sep 24, 2024

This patch implements a work-around, basically for the sake of Git for Windows v2.46.2's CI build: The macos-13 runner images still reference libcurl v8.10.0, which has a known flaw that breaks t5559.30. Let's detect this situation and skip that test case in that case.

While at it, also backport the work-around for a flaky test case (t5512.40 "helper with refspec capability fails gracefully").

This fixes #5159.

@dscho dscho added this to the Next release milestone Sep 24, 2024
@dscho dscho self-assigned this Sep 24, 2024
@dscho dscho mentioned this pull request Sep 24, 2024
1 task
As reported in https://lore.kernel.org/git/ZuPKvYP9ZZ2mhb4m@pks.im/,
libcurl v8.10.0 had a regression that was picked up by Git's t5559.30
"large fetch-pack requests can be sent using chunked encoding".

This bug was fixed in libcurl v8.10.1.

Sadly, the macos-13 runner image was updated in the brief window between
these two libcurl versions, breaking each and every CI build, as
reported at git-for-windows#5159.

This would usually not matter, we would just ignore the failing CI
builds until the macos-13 runner image is rebuilt in a couple of days,
and then the CI builds would succeed again.

However.

As has become the custom, a surprise Git version was released, and now
that Git for Windows wants to follow suit, since Git for Windows has
this custom of trying to never release a version with a failing CI
build, we _must_ work around it.

This patch implements this work-around, basically for the sake of Git
for Windows v2.46.2's CI build.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
@dscho dscho force-pushed the work-around-curl-8.10.0-vs-http2 branch from 6d3ab73 to cba7e0d Compare September 24, 2024 08:02
The last test in t5512 we recently added seems to be flaky.
Running

    $ make && cd t && sh ./t5512-ls-remote.sh --stress

shows that "git ls-remote foo::bar" exited with status 141, which
means we got a SIGPIPE.  This test piece was introduced by 9e89dcb
(builtin/ls-remote: fall back to SHA1 outside of a repo, 2024-08-02)
and is pretty much independent from all other tests in the script
(it can even run standalone with everything before it removed).

The transport-helper.c:get_helper() function tries to write to the
helper.  As we can see the helper script is very short and can exit
even before it reads anything, when get_helper() tries to give the
first command, "capabilities", the helper may already be gone.

A trivial fix, presented here, is to make sure that the helper reads
the first command it is given, as what it writes later is a response
to that command.

I however would wonder if the interactions with the helper initiated
by get_helper() should be done on a non-blocking I/O (we do check
the return value from our write(2) system calls, do we?).

Backported-from: e1e0d30 (t5512.40 sometimes dies by SIGPIPE, 2024-09-13)
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
@dscho dscho merged commit 4538ee6 into git-for-windows:main Sep 24, 2024
44 checks passed
git-for-windows-ci pushed a commit that referenced this pull request Sep 24, 2024
This patch implements a work-around, basically for the sake of Git for
Windows v2.46.2's CI build: The `macos-13` runner images still reference
libcurl v8.10.0, which has a known flaw that breaks t5559.30. Let's
detect this situation and skip that test case in that case.

While at it, also backport the work-around for a flaky test case
(t5512.40 "helper with refspec capability fails gracefully").

This fixes #5159.
git-for-windows-ci pushed a commit that referenced this pull request Sep 24, 2024
This patch implements a work-around, basically for the sake of Git for
Windows v2.46.2's CI build: The `macos-13` runner images still reference
libcurl v8.10.0, which has a known flaw that breaks t5559.30. Let's
detect this situation and skip that test case in that case.

While at it, also backport the work-around for a flaky test case
(t5512.40 "helper with refspec capability fails gracefully").

This fixes #5159.
git-for-windows-ci pushed a commit that referenced this pull request Sep 24, 2024
This patch implements a work-around, basically for the sake of Git for
Windows v2.46.2's CI build: The `macos-13` runner images still reference
libcurl v8.10.0, which has a known flaw that breaks t5559.30. Let's
detect this situation and skip that test case in that case.

While at it, also backport the work-around for a flaky test case
(t5512.40 "helper with refspec capability fails gracefully").

This fixes #5159.
@dscho dscho deleted the work-around-curl-8.10.0-vs-http2 branch September 24, 2024 10:33
git-for-windows-ci pushed a commit that referenced this pull request Sep 24, 2024
This patch implements a work-around, basically for the sake of Git for
Windows v2.46.2's CI build: The `macos-13` runner images still reference
libcurl v8.10.0, which has a known flaw that breaks t5559.30. Let's
detect this situation and skip that test case in that case.

While at it, also backport the work-around for a flaky test case
(t5512.40 "helper with refspec capability fails gracefully").

This fixes #5159.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

CI failures on macos targets
2 participants