cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: Hang in poll() when connection is interrupted on Linux

From: Aurélien <footplus_at_gmail.com>
Date: Wed, 17 Sep 2008 18:20:58 +0200

On Wed, Sep 17, 2008 at 3:37 PM, Aurélien <footplus_at_gmail.com> wrote:

> Hi everyone !
>

[...]

>
>
> -- Thread holding the lock:
> [Switching to thread 7 (Thread 0xb6c70b90 (LWP 4725))]#0 0xb7f15402 in
> __kernel_vsyscall ()
> (gdb) bt
> #0 0xb7f15402 in __kernel_vsyscall ()
> #1 0xb7d41c07 in poll () from /lib/tls/i686/cmov/libc.so.6
> #2 0x080cddf9 in Curl_socket_ready (readfd=3, writefd=-1, timeout_ms=1000)
> at select.c:218
> #3 0x080e6667 in Transfer (conn=0x82cc428) at transfer.c:1805
> #4 0x080e7073 in Curl_perform (data=0x82c3308) at transfer.c:2385
> #5 0x080c7d43 in curl_easy_perform (curl=0x82c3308) at easy.c:520
> #6 0x080578c6 in KHTTPRequest::fetchFileNow (this=0x82c2e80,
> url=0x82297c2, postData=0x822ab5b,
> returnCode=0xb6c6fc3c) at src/lib/http.cpp:236
>

>
>
> Here, event after several minutes, the thread 7 is still stuck in poll().
> The other threads, like the thread 8, are waiting for the mutex protecting
> the cURL handle.
>
>
After some more debug, cURL indeed gets out of poll(), and of
Curl_socket_ready. But not of Transfer. (i've put breakpoints on these
functions to verify. I will dig in transfer.c to see if I can gather more
information.

Thanks !

-- 
Aurélien Guillaume
"I love deadlines. I like the whooshing sound they make as they fly by."
Received on 2008-09-17