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

Commits on Sep 24, 2024

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

    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 committed Sep 24, 2024
    Configuration menu
    Copy the full SHA
    cba7e0d View commit details
    Browse the repository at this point in the history
  2. t5512.40 sometimes dies by SIGPIPE

    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>
    gitster authored and dscho committed Sep 24, 2024
    Configuration menu
    Copy the full SHA
    42b4225 View commit details
    Browse the repository at this point in the history