Re: Possible regression in git 2.26.0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Mar 31, 2020 at 07:13:25PM +0200, Josep Torra wrote:

> Today I'd noticed a failure in some custom automation that seems to
> came as a side effect after of a git client update.
> 
> The issue issue I'd spotted is the following:
> 
> $ git clone git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/bionic
> linux/bionic
> Cloning into 'linux/bionic'...
> fatal: remote error: Parameters must have values

I can reproduce here, and it's definitely related to using protocol v2.
Running:

  GIT_TRACE_PACKET=1 git -c protocol.version=2 ls-remote \
    git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/bionic \
    >/dev/null

yields:

  [...]git> git-upload-pack ~ubuntu-kernel/ubuntu/+source/linux/+git/bionic\0host=git.launchpad.net\0\0version=2\0
  [...]git< ERR Parameters must have values

So it's complaining at that initial contact probing for v2. The behavior
is the same with v1 (which was an interim step between v0 and v1 to do
this probing and check for compatibility).

We checked that the probe works sensibly against old versions of Git, as
well as a few others (JGit, and I can't remember the rest).

Do you know what software powers git.launchpad.net? That "Parameters
must have values" message has never appeared in any Git version, though
the server claims to be v2.17.1:

  $ GIT_TRACE_PACKET=1 git -c protocol.version=0 ls-remote \
     git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/bionic \
     2>&1 >/dev/null | grep agent=
  [...]git< a78d21bd8bb58c158f73108eb7d7402619fcae3d HEAD\0multi_ack thin-pack side-band side-band-64k ofs-delta shallow deepen-since deepen-not deepen-relative no-progress include-tag multi_ack_detailed symref=HEAD:refs/heads/master agent=git/2.17.1

My guess is that it may be v2.17.1 with some kind of load-balancing or
proxy layer in it. It's rather unfortunate that nobody noticed the
problem during the year and a half testing phase. But at this point, I
think the best path forward is probably to try to fix that server side
(preferably to speak v2, but if not, to at least ignore the v2 probe
marker and continue to speak v0; the client will gracefully handle
that).

By the way, swapping out git:// for https:// in the URL works just fine
for this server. In git-over-http, the v2 probe goes in an HTTP request
header, and they seem to ignore that and speak v0 (which is an expected
and fine outcome for pre-v2-aware servers). That may be why nobody
noticed before.

-Peff



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux