Re: error: git-remote-https died of signal 13
From: Jeff King <hidden>
Date: 2016-06-15 23:00:47
On Sun, Apr 20, 2014 at 08:42:15PM -0400, Greg M wrote:
Using git version 1.9.2 I am getting this error: [normal@laptop tmp]$ git clone https://github.com/mozilla/rust.git Cloning into 'rust'... remote: Reusing existing pack: 296648, done. remote: Counting objects: 80, done. remote: Compressing objects: 100% (77/77), done. remote: Total 296728 (delta 22), reused 9 (delta 3) Receiving objects: 100% (296728/296728), 110.68 MiB | 190.00 KiB/s, done. Resolving deltas: 100% (238828/238828), done. Checking connectivity... done. error: git-remote-https died of signal 13
Thanks for a thorough bug report. I looked through your strace output, and this really does look like another case of OpenSSL getting SIGPIPE while closing the connection. It's odd, though, as your curl version has my patches, along with similar extra fixes in 854aca5 (multi: ignore sigpipe internally, 2014-02-17). But I guess there may be a code path that needs similar treatment. The easiest way to find it is probably to attach a debugger to the running git-remote-https, and get a backtrace when it dies from SIGPIPE. You'll probably want to install your system's debug packages for curl, too.
I have curl version 7.36 though, in case some of the other output matters: [normal@laptop tmp]$ curl --version curl 7.36.0 (x86_64-unknown-linux-gnu) libcurl/7.36.0 OpenSSL/1.0.1g zlib/1.2.8 libssh2/1.4.3
Another possibility is that your curl binary is up-to-date, but you are
linking against an older version of libcurl that does not have the
SIGPIPE workarounds.
I'm not sure of the best way to check that, but a hacky way under Linux
is:
$ ldd $(git --exec-path)/git-remote-https | grep libcurl
libcurl.so.4 => /usr/lib/x86_64-linux-gnu/libcurl.so.4
$ strings /usr/lib/x86_64-linux-gnu/libcurl.so.4 | grep '7\.'
CLIENT libcurl 7.36.0
-Peff