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