Re: [PATCH v2 2/2] builtin/receive-pack: add option to skip connectivity check
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Jun 2, 2025, 16:06 UTC
- Message-ID
- <2e17bd1a-aa4e-70c5-3bea-eb4d95e66756@gmx.de>
- In-Reply-To
- <gw6j5enpzcit2zquafoaiujreoa4kbv3n6feq6yeqylcfynqim@s53ctnlg7tmm>
Hi Justin,
On Mon, 2 Jun 2025, Justin Tobler wrote:
Show 62 quoted lines
> On 25/06/02 05:01PM, Johannes Schindelin wrote:
>
> > On Tue, 20 May 2025, Justin Tobler wrote:
> >
> > > diff --git a/t/t5410-receive-pack.sh b/t/t5410-receive-pack.sh
> > > index 9afea54a26..f76a22943e 100755
> > > --- a/t/t5410-receive-pack.sh
> > > +++ b/t/t5410-receive-pack.sh
> > > @@ -62,4 +62,26 @@ test_expect_success 'receive-pack missing objects fails connectivity check' '
> > > test_must_fail git -C remote.git cat-file -e $(git -C repo rev-parse HEAD)
> > > '
> > >
> > > +test_expect_success 'receive-pack missing objects bypasses connectivity check' '
> > > + test_when_finished rm -rf repo remote.git setup.git &&
> > > +
> > > + git init repo &&
> > > + git -C repo commit --allow-empty -m 1 &&
> > > + git clone --bare repo setup.git &&
> > > + git -C repo commit --allow-empty -m 2 &&
> > > +
> > > + # Capture git-send-pack(1) output sent to git-receive-pack(1).
> > > + git -C repo send-pack ../setup.git --all \
> > > + --receive-pack="tee ${SQ}$(pwd)/out${SQ} | git-receive-pack" &&
> > > +
> > > + # Replay captured git-send-pack(1) output on new empty repository.
> > > + git init --bare remote.git &&
> > > + git receive-pack --skip-connectivity-check remote.git <out >actual 2>err &&
> > > +
> > > + test_grep ! "missing necessary objects" actual &&
> > > + test_must_be_empty err &&
> > > + git -C remote.git cat-file -e $(git -C repo rev-parse HEAD) &&
> > > + test_must_fail git -C remote.git rev-list $(git -C repo rev-parse HEAD)
> > > +'
> > > +
> > > test_done
> >
> > This test case seems to hang occasionally in the "win+Meson test" jobs on
> > GitHub (I tried to find the same failure at
> > https://gitlab.com/gitlab-org/git/-/pipelines but couldn't find any). See
> > for example
> > https://github.com/gitgitgadget/git/actions/runs/15383915635/job/43279134837#step:6:627
> >
> > Note that this problem afflicts only the "win+Meson test" jobs; The
> > corresponding "win test" job seems not to hang.
> >
> > Even in the Git for Windows project, where the `win+VS test` jobs are run,
> > the t5410 test passes within a dozen seconds or so, see e.g.
> > https://github.com/git-for-windows/git/actions/runs/15383945895/job/43279689086#step:5:143
> > (confusingly, the subset of tests run in the matrix jobs differs between
> > the `win+Meson test` jobs and the `win+VS test` jobs, but if you click
> > through all of the `win+Meson test` jobs, expand the `test` step,
> > patiently wait a few seconds for the log to be lazy loaded "enough" for
> > the search to work, you will notice that t5410 is not mentioned in any of
> > them, and the only one that times out after 4h37m11s is
> > https://github.com/git-for-windows/git/actions/runs/15383945895/job/43279753911,
> > likely while running 5410, too).
> >
> > Do you have any idea why this particular test case, in conjunction with
> > Windows and Meson (and only on GitHub) acts up like this?
>
> Thanks Johannes for the report. I'm not quite sure yet what is going on
> here, but I'll dig into this a bit and see what I can figure out. :)Thank you so much! Johannes