Re: [PATCH] Retry HTTP requests on SSL connect failures
- From
Jeff King <peff@peff.net>
- Date
- Oct 1, 2012, 22:23 UTC
- Message-ID
- <20121001222306.GB12496@sigill.intra.peff.net>
- In-Reply-To
- <7v1uhhc10y.fsf@alter.siamese.dyndns.org>
On Mon, Oct 01, 2012 at 02:53:17PM -0700, Junio C Hamano wrote:
Show 10 quoted lines
> "Shawn O. Pearce" <spearce@spearce.org> writes:
>
> > + for (attempts = 0; attempts < 2; attempts++) {
> > + if (start_active_slot(slot)) {
> > + run_active_slot(slot);
> > + if (slot->results->curl_result == CURLE_SSL_CONNECT_ERROR)
> > + continue;
>
> Is it safe to continue and let start_active_slot() to add the same
> curl handle again when USE_CURL_MULTI is in effect?I _think_ so. We reuse the slots anyway. So the usual workflow would be get_active_slot, then start_active_slot, then run_active_slot. This loop omits get_active_slot, which is responsible for (re-)initializing a bunch of aspects of the slot. But we wouldn't want that here, since it would mean we'd have to set up our URL, callbacks, etc, again.
My only worry would be that the failed curl request actually ended up writing some data or made some other state change. But since we are explicitly catching only ssl connection failures, presumably that would not have happened.
-Peff