git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] http-fetch: Disable use of curl multi support for libcurl < 7.16.

From
AJAlexandre Julliard <julliard@winehq.org>
Date
May 2, 2007, 19:47 UTC
Message-ID
<87647bros8.fsf@wine.dyndns.org>
In-Reply-To
<7vfy6f3w3w.fsf@assigned-by-dhcp.cox.net>
Junio C Hamano <junkio@cox.net> writes:
Show 9 quoted lines
> Alexandre Julliard <julliard@winehq.org> writes:
>
>> curl_multi_remove_handle() is broken in libcurl < 7.16, in that it
>> doesn't correctly update the active handles count when a request is
>> aborted. This causes the transfer to hang forever waiting for the
>> handle count to become less than the number of active requests.
>
> Is there a changelog entry for release 7.16 that you can point
> at in your commit log message?
The changelog for curl 7.16.0 contains this under Bugfixes:
* the 'running_handles' counter wasn't always updated properly when
  curl_multi_remove_handle() was used
The corresponding fix in the curl CVS is in lib/multi.c rev 1.97:

---------------------------- revision 1.97 date: 2006-08-25 15:53:22 +0200; author: bagder; state: Exp; lines: +5 -1; commitid: owXRUkUb5VvSmeKr; Armel Asselin reported that the 'running_handles' counter wasn't updated properly if you removed a "live" handle from a multi handle with curl_multi_remove_handle(). ----------------------------

The problem is relatively easy to reproduce (though it's not systematic, depends on network timings) by cloning the Wine repository at http://source.winehq.org/git/wine.git. The symptoms are that it hangs after printing 'walk 4eea356e2d39f1a958afb4d8f5b54381e8972ecf'.

It was reported by a Wine developer who couldn't clone the tree with http; he confirmed that upgrading to curl 7.16 fixed it for him. I'm also able to clone it successfully with a http-fetch built without multi support.

-- 
Alexandre Julliard
julliard@winehq.org
Previous: Junio C Hamano
Message 3 of 3 in “http-fetch: Disable use of curl multi support for libcurl < 7.16.”
  1. http-fetch: Disable use of curl multi support for libcurl < 7.16.Alexandre Julliard, May 2, 2007
  2. Junio C HamanoMay 2, 2007
  3. Alexandre JulliardMay 2, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.