git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Possible regression in git 2.26.0

From
Jeff King <peff@peff.net>
Date
Apr 3, 2020, 18:58 UTC
Message-ID
<20200403185804.GA659704@coredump.intra.peff.net>
In-Reply-To
<CAE0g23A0+4MPwACTsdjk=eOYaGBDEwsD2t_F072Z33Gb6y2qZw@mail.gmail.com>
On Tue, Mar 31, 2020 at 07:13:25PM +0200, Josep Torra wrote:
Show 9 quoted lines
> 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
Previous: Jeff KingNext: Jeff King
Message 4 of 8 in “Possible regression in git 2.26.0”
  1. Josep TorraMar 31, 2020
  2. Konstantin RyabitsevMar 31, 2020
  3. Jeff KingApr 10, 2020
  4. Jeff KingApr 3, 2020
  5. Jeff KingApr 3, 2020
  6. Junio C HamanoApr 3, 2020
  7. Jeff KingApr 4, 2020
  8. Jeff KingApr 7, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.