curl / Mailing Lists / curl-library / Single Mail
Buy commercial curl support from WolfSSL. We help you work out your issues, debug your libcurl applications, use the API, port to new platforms, add new features and more. With a team lead by the curl founder himself.

git clone git.haproxy.git with curl-8.7.1 failing writing received data

From: Bertrand Jacquin via curl-library <curl-library_at_lists.haxx.se>
Date: Fri, 05 Apr 2024 19:27:28 +0100

Hi,

For the last few days, I've been unable to git clone
https://git.haproxy.org/git/haproxy.git with curl-8.7.1, where I'm
getting the following error:

   $ GIT_TRACE=1 git fetch https://git.haproxy.org/git/haproxy.git
   19:12:01.277740 git.c:463 trace: built-in: git fetch
https://git.haproxy.org/git/haproxy.git
   19:12:01.278266 run-command.c:657 trace: run_command:
GIT_DIR=.git git remote-https https://git.haproxy.org/git/haproxy.git
https://git.haproxy.org/git/haproxy.git
   19:12:01.279001 git.c:749 trace: exec: git-remote-https
https://git.haproxy.org/git/haproxy.git
https://git.haproxy.org/git/haproxy.git
   19:12:01.279018 run-command.c:657 trace: run_command:
git-remote-https https://git.haproxy.org/git/haproxy.git
https://git.haproxy.org/git/haproxy.git
   fatal: unable to access 'https://git.haproxy.org/git/haproxy.git/':
Failed writing received data to disk/application

I'm able to identify anything going off on the client, even though the
error seems to indicate git could not write data on disk. After doing
some digging, fetching https://git.haproxy.org/git/haproxy.git using
curl 8.6.0 works like a charm, however I'm only seeing issue with git
fetch/clone against git.haproxy.org and no other repo, thus both mailing
list are made destination of this email.

Here is attached the output of git fetch with GIT_TRACE_CURL=1 in
git-fetch-haproxy-curl-8.7.1.log

Version of git used on client side:
   git version 2.43.2
   cpu: x86_64
   no commit associated with this build
   sizeof-long: 8
   sizeof-size_t: 8
   shell-path: /bin/sh

Details of functional curl 8.6.0:
   8.6.0 (x86_64-pc-linux-gnu) libcurl/8.6.0 OpenSSL/3.0.13 zlib/1.3
zstd/1.5.5 c-ares/1.26.0 libidn2/2.3.7 libpsl/0.21.5 nghttp2/1.57.0
   Release-Date: 2024-01-31
   Protocols: dict file http https imap imaps ipfs ipns mqtt pop3 pop3s
rtsp smtp smtps tftp
   Features: alt-svc AsynchDNS HSTS HTTP2 HTTPS-proxy IDN IPv6 Largefile
libz NTLM PSL SSL threadsafe TLS-SRP UnixSockets zstd

Details of non functional curl 8.7.1
   curl 8.7.1 (x86_64-pc-linux-gnu) libcurl/8.7.1 OpenSSL/3.0.13 zlib/1.3
brotli/1.1.0 zstd/1.5.5 c-ares/1.26.0 libidn2/2.3.7 libpsl/0.21.5
libssh2/1.11.0 nghttp2/1.61.0 librtmp/2.3
   Release-Date: 2024-03-27
   Protocols: dict file ftp ftps gopher gophers http https imap imaps
ipfs ipns mqtt pop3 pop3s rtmp rtsp scp sftp smtp smtps telnet tftp ws
wss
   Features: alt-svc AsynchDNS brotli HSTS HTTP2 HTTPS-proxy IDN IPv6
Largefile libz NTLM PSL SSL threadsafe TLS-SRP UnixSockets zstd

Bisecting through changes from curl 8.6.0 to 8.7.1 points me to
463472a2d6e3 ("lib: move client writer into own source")
(https://github.com/curl/curl/commit/463472a2d6e3301c1468b5323b856cb67a91f579)
as the first bad commit.

Note this issue only appears when curl is compiled with HTTP2 enabled.
I'm quite sure git.haproxy.org is running on bleeding edge HAProxy,
which might not be supporting changes brought by 463472a2d6e3, however
I'm curious here to understand protocol corruption.

Cheers,

-- 
Bertrand



-- 
Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html
Received on 2024-04-05