Subject: Re: Git 2.54.0-rc1, subtests of t5310, t5326, t5327

From: Jeff King <[email-masked]>
Date: Wed, 8 Apr 2026 00:17:16 -0400

On Tue, Apr 07, 2026 at 07:29:50PM -0400, [email-masked] wrote:

> I can getting numerous issues in t5310, t5326, t2527 relating to the
> following use of --git-dir:
> 
> In t5310:
> fatal: not a git repository: 'clone.git'
> not ok 55 - fetch (full bitmap)
> #
> #                       git --git-dir=clone.git fetch origin second:second
> &&
> #                       git rev-parse HEAD >expect &&
> #                       git --git-dir=clone.git rev-parse HEAD >actual &&
> #                       test_cmp expect actual
> #

This test hasn't changed recently. The clone.git directory should have
been created by an earlier test. Can you try running with "-i" and make
sure that this is the first failing test, and we didn't fail earlier?

Especially because...

> In t5326 and t5327:
> fatal: writev error: Invalid function argument
> fetch-pack: unexpected disconnect while reading sideband packet
> fatal: early EOF
> fatal: fetch-pack: invalid index-pack output
> not ok 24 - clone from bitmapped repository
> #
> #                       rm -fr clone.git &&
> #                       git clone --no-local --bare . clone.git &&
> #                       git rev-parse HEAD >expect &&
> #                       git --git-dir=clone.git rev-parse HEAD >actual &&
> #                       test_cmp expect actual
> #

...it looks less like --git-dir is a problem here, and more like the
introduction of writev() is. It is now used in sideband_send(), so it
seems plausible that a similar failure might have broken the git-clone
operation that the other test was using to create clone.git.

As for why writev() is failing, I don't know. If it were totally broken
on your system I'd expect almost everything to be failing. But maybe try
building with "make NO_WRITEV=Nope" and see if that makes the problems
go away? The compat implementation just does a series of write() calls,
which is what send_sideband() was doing before.

-Peff