curl-library
Re: running_handles: less than zero ?
Date: Mon, 16 Oct 2006 22:12:28 +0200 (CEST)
On Mon, 16 Oct 2006, Jeff Pohlmeyer wrote:
> If I tell the application to do a curl_multi_socket_all() loop immediately
> after each curl_multi_remove_handle(), the problem seems to go away.
>
> Does that sound logical/reasonable/acceptable?
Thanks for your work and detailed analysis!
Yes, there's a clear logic to this. It seems there's a problem with the
internal expire timer since somehow it can be removed (from the app) and not
get set to a proper time.
The curl_multi_socket_all() function checks all sockets, so it makes perfect
sense that it kicks things back into business again even after the previous
timer-less situation.
Since this happens in the WAITRESOLVE state with c-ares enabled, the problem
is most likely that c-ares resolves aren't re-sent as supposed. Looking at the
code, it seems we don't get the timeout value from c-ares like we should!
Please try the attached patch and see if it doesn't make things better!
-- Commercial curl and libcurl Technical Support: http://haxx.se/curl.html
- TEXT/PLAIN attachment: multi-c-ares-timeout.patch