cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: great performance with curl and c-ares / timeouts

From: Pedro Larroy <pedro.larroy.lists_at_gmail.com>
Date: Wed, 29 Dec 2010 14:46:50 +0100

I have pulled the changes and now seems fixed.

OTOH I'm observing long dns timeouts:

2010-12-29 12:44:13,740 - WARN crawlog - handle id: 14 DONE:
http://www.swiftlytilting.com/robots.txt HTTP 0 curl_code: 28
(Resolving timed out after 3841943 milliseconds)

Even though I have CURLOPT_CONNECTTIMEOUT set to 60.

Is this expected?

Thanks.

Pedro.

On Mon, Dec 27, 2010 at 11:53 AM, Daniel Stenberg <daniel_at_haxx.se> wrote:
> On Mon, 27 Dec 2010, Pedro Larroy wrote:
>
>> On the other hand I'm trying to run some experiments using
>>
>> CURLOPT_LOW_SPEED_LIMIT 512
>> CURLOPT_LOW_SPEED_TIME 180
>>
>> In combination with
>> CURLOPT_CONNECTTIMEOUT 60
>>
>> But I'm not observing any timeouts (using curl_multi_info_read). As the
>> handles have been for some minutes stuck with the same url, with no activity
>> checked by tcpdump.
>>
>> My questions are:
>> 1 - Any ideas what to try next?
>
> Let's try to isolate the problem. I did this to try to repeat your problem:
>
> (in terminal A) $ nc -p 8888 -l
> (in terminal B) $ ./hiperfifo
> (in terminal C) $ echo "localhost:8888" > hiper.fifo
>
> I used these additional options:
>
>  curl_easy_setopt(conn->easy, CURLOPT_CONNECTTIMEOUT, 10);
>  curl_easy_setopt(conn->easy, CURLOPT_LOW_SPEED_TIME, 60);
>  curl_easy_setopt(conn->easy, CURLOPT_LOW_SPEED_LIMIT, 512);
>
> ... and my application ends up saying this (a piece of the verbose output):
>
> Progress: localhost:8888 (0/0)
> Progress: localhost:8888 (0/0)
> multi_timer_cb: Setting timeout to 13403 ms
> REMAINING: 1
> Progress: localhost:8888 (0/0)
> * Operation too slow. Less than 512 bytes/sec transfered the last 60 seconds
> Progress: localhost:8888 (0/0)
> * Closing connection #0
> socket callback: s=7 e=0x8dbb48c what=REMOVE
> multi_timer_cb: Setting timeout to 4224 ms
> REMAINING: 0
> DONE: http://localhost:8888 => (28) Operation too slow. Less than 512
> bytes/sec transfered the last 60 seconds
> * Expire cleared
>
> So, it does seem to do its job when done like this. Can you repeat your
> observed problem with a controlled connection such as this?
>
>> 2 - Is there a way to interrupt a transfer, I don't see any call in the
>> easy interface for this. Since I'm accounting the time and transfer I could
>> manually kill those stuck connections.
>
> Just remove the easy handle from the multi handle whenever you want!
>
> --
>
>  / daniel.haxx.se
> -------------------------------------------------------------------
> List admin: http://cool.haxx.se/list/listinfo/curl-library
> Etiquette:  http://curl.haxx.se/mail/etiquette.html
>
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2010-12-29