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 <[email protected]> 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
