cURL / Mailing Lists / curl-library / Single Mail


Re: Infinite loop when calling curl_multi_cleanup

From: Miloš Ljumović <>
Date: Tue, 18 Oct 2016 10:57:34 +0200

I have the same situation. I'm using pipelining. But it's different scenario.
One thread does all multi_* calls while all other threads do easy_init & multi_add/remove_handle protected by the critical section. Everything works perfectly on 100 parallel threads but close_all_connections never returned. It looked like 2 connections remained in the list all the time. I need to polish up the code and then I'll share it cause though it works perfectly I'm not sure multi_* it's meant to work like that.

P.s. Where should I upload/share the code? Here?

Miloš Ljumović
Operating system specialist

> On 18 Oct 2016, at 10:26, Daniel Stenberg <> wrote:
>> On Mon, 17 Oct 2016, Valentin David wrote:
>> When I upgraded cURL to version 7.50.3, I got some of my code to run into an infinite loop when closing down the "multi". All "easy" are closed, but some connections in the cache still contains receivers in the "recv_pipe". Calling "Curl_disconnect" would not close properly the connection and "close_all_connections" would call it in loop forever. Adding "connclose" before call the "Curl_disconnect" fixes the problem.
> Infinite loop sounds related to Dan F's post from two weeks ago:, but the triggering reason seems different(?)
> How did you end up in this situation, is it reproducible? Are you using Pipelining or HTTP/2 multiplexing?
> While I think we should or could do that closing down sequence use more force since it is about to close everything down anyway, it feels like there's a bug lurking here that we should rather fix first than just trying to paint over the problem by forcing the closure of that connection.
> --
> /
> -------------------------------------------------------------------
> List admin:
> Etiquette:

List admin:
Received on 2016-10-18