Re: error: git-remote-https died of signal 13
- From
Jeff King <peff@peff.net>
- Date
- Nov 25, 2013, 14:32 UTC
- Message-ID
- <20131125143213.GA22642@sigill.intra.peff.net>
- In-Reply-To
- <alpine.DEB.2.00.1311250815150.27300@tvnag.unkk.fr>
On Mon, Nov 25, 2013 at 08:20:18AM +0100, Daniel Stenberg wrote:
Show 11 quoted lines
> >Daniel, does the call to Curl_disconnect need to be wrapped with > >sigpipe_ignore/reset, similar to 7d80ed64e435155? > > Yes. It very much looks like that. The SSL "closing" is what was the > problem I had to adress. > > 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. It does turn off SIGPIPE for the specific case I'm seeing (again, I'm having trouble actually getting EPIPE in the first place, but from Stefan's strace, I think this would fix his problem).
[1/2]: factor out sigpipe_reset from easy.c [2/2]: ignore SIGPIPE during curl_multi_cleanup
-Peff