Re: error: git-remote-https died of signal 13
From: Jeff King <hidden>
Date: 2016-06-15 22:59:19
On Mon, Nov 25, 2013 at 09:32:13AM -0500, Jeff King wrote:
quoted
But I then decided that if a 3rd library has one way to generate SIGPIPE it may very well have another in a separate spot so I decided to do the wrap at the top level immediately in the entry point when getting called by the application. Following that, the SIGPIPE ignore/restore should rather be made in curl_multi_cleanup.Unfortunately, we need an actual SessionHandle to know whether it is OK to reset signals at all. There may be a more elegant way of checking that, but here's the patch series I came up with.
Scratch that. I had originally written something like:
if (conn->data)
sigpipe_ignore(conn->data, &pipe);
Curl_disconnect(conn, ...);
sigpipe_restore(&pipe);
but while sending it out, I realized that the "data" we attach to each
connection when we close it is just the multi->closure_handle. So I was
able to hoist the check out to curl_multi_cleanup (and that's what I
just sent).
-Peff