Re: error: git-remote-https died of signal 13
From: Stefan Beller <hidden>
Date: 2016-06-15 22:59:19
On 24.11.2013 16:54, Jeff King wrote:
[+cc Daniel, who worked on the curl fix] On Sun, Nov 24, 2013 at 04:01:43PM +0100, Stefan Beller wrote:quoted
On 24.11.2013 14:33, Jeff King wrote:quoted
On Sun, Nov 24, 2013 at 01:54:34PM +0100, Stefan Beller wrote:quoted
Here is the output of sb@sb:/tmp$ GIT_TRANSPORT_HELPER_DEBUG=1 git clone https://github.com/Bertram25/ValyriaTear.git tmpThanks. I think I see what is going on. We finish the helper conversation here:quoted
Checking connectivity... done. Debug: Disconnecting. error: git-remote-https died of signal 13 sb@sb:/tmp$which means that remote-https is trying to exit, and is cleaning up any curl connections. The actual SIGPIPE in the strace is here: [pid 28319] write(3, "\25\3\2\0...[binary goo]...", 27) = -1 EPIPE (Broken pipe) and if you walk backwards, fd 3 is: [pid 28319] socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 3 ... [pid 28319] connect(3, {sa_family=AF_INET, sin_port=htons(443), sin_addr=inet_addr("192.30.252.131")}, 16 ) = -1 EINPROGRESS (Operation now in progress) So it's sending binary junk to the https socket while trying to exit, which makes me guess that it's something to do with terminating the SSL session, but the server has already hung up. Which would make it a curl problem. Googling "curl sigpipe" seems to come up with a report of this exact case: http://curl.haxx.se/mail/archive-2013-01/0003.htmlI cannot reproduce the error using the curl command from that site. curl returns with 0.quoted
with a bug opened here: http://sourceforge.net/p/curl/bugs/1180/ Looks like the fix went into curl 7.32.0. I have 7.33.0, which seems fine. Can you confirm that your libcurl is a bit older?dpkg -l |grep curl ii curl 7.32.0-1ubuntu1 amd64 command line tool for transferring data with URL syntax ii libcurl3:amd64 7.32.0-1ubuntu1 amd64 easy-to-use client-side URL transfer library (OpenSSL flavour) ii libcurl3-gnutls:amd64 7.32.0-1ubuntu1 amd64 easy-to-use client-side URL transfer library (GnuTLS flavour) ii libcurl4-openssl-dev 7.32.0-1ubuntu1 amd64 development files and documentation for libcurl (OpenSSL flavour) ii python-pycurl 7.19.0-5ubuntu8 amd64 Python bindings to libcurlHmm. The fix in curl's 7d80ed64e435155 seems to involve strategically placed calls to ignore SIGPIPE. I wonder if there is another spot that needs similar treatment. It looks like curl_easy_cleanup is covered, though, and that's where I would expect problem to come. It would be interesting to see a backtrace from remote-curl when we get the SIGPIPE. Doing so would be slightly tricky; instrumenting with the patch below may be enough.
GIT_TRANSPORT_HELPER_DEBUG=1 git clone https://github.com/Bertram25/ValyriaTear.git now ends with: Debug: Remote helper: Waiting... remote: Counting objects: 21354, done. remote: Compressing objects: 100% (6249/6249), done. remote: Total 21354 (delta 16466), reused 19888 (delta 15066) Receiving objects: 100% (21354/21354), 176.42 MiB | 1.22 MiB/s, done. Resolving deltas: 100% (16466/16466), done. Debug: Remote helper: <- lock /tmp/ValyriaTear/.git/objects/pack/pack-b6f360ab28b5078a9aefafe1c4144e6c7782c317.keep Debug: Remote helper: Waiting... Debug: Remote helper: <- connectivity-ok Debug: Remote helper: Waiting... Debug: Remote helper: <- Checking connectivity... done. Debug: Disconnecting. warning: in http_cleanup warning: calling curl_multi_remove_handle warning: calling curl_easy_cleanup on slot warning: curl_easy_cleanup done warning: calling curl_easy_cleanup on default warning: curl_easy_cleanup done warning: calling curl_multi_cleanup error: git-remote-https died of signal 13 Thanks, Stefan