cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: running_handles: less than zero ?

From: Daniel Stenberg <daniel_at_haxx.se>
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

Received on 2006-10-16