cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: Re: libcurl fd release

From: mm.w <0xcafefeed_at_gmail.com>
Date: Wed, 1 Apr 2015 08:49:29 -0700

Hello,

do you have ipv6-support on ? which OS, which timeout do you use? proxy not
well configured ? collisions ? yes the socket seems to be dirty.

On Wed, Apr 1, 2015 at 7:55 AM, 兰天 <lantian0811_at_163.com> wrote:

>
>
>
>
>
>
> 在 2015-04-01 02:14:16,"mm.w" <0xcafefeed_at_gmail.com> 写道:
>
> hello,
>
> you are getting an EBADF errno could be anywhere ; even the targeted file
> you try to download; as Dan said without any further digging [; meaning
> finding the spot where it really happens ; meaning again ; I think you have
> a lack of return/error checking in your code* or a race condition and a
> lack of sync-lock;] any answer is somehow meaning-less ; or except with a
> functional crystal-ball which is a really rare item ; never seen one.
>
> Best.
>
>
>
> On Tue, Mar 31, 2015 at 10:42 AM, Dan Fandrich <dan_at_coneharvesters.com>
> wrote:
>
>> On Tue, Mar 31, 2015 at 10:49:25PM +0800, 兰天 wrote:
>> > Hi,all
>> > I recently encounter a stranger thing:
>> > I use libcurl to download file ,
>> > first ,I receive a request from client ,and I then use the url from this
>> > package to download file , however ,I see the log and find so many
>> error"Bad
>> > file descryptor",
>> > when I download a file and I use
>> > curl_multi_remove_handle(g->multi, easy);
>> > curl_easy_cleanup(eh);
>> > these two api to release the resource ,this error may indicate that : I
>> close
>> > the same fd two times!
>> > So I have two question :
>> > 1. how does curl_multi_remove_handle and curl_easy_cleanup to release
>> the fd?
>> > 2. do I release the same fd two times? I check the code for many times
>> and
>> > could not find the answer ,could any one help me?
>>
>> Unless the application is doing weird things behind libcurl's back with
>> file
>> descriptors and the application is working correctly w.r.t. its multi
>> polling
>> loop, libcurl should take care of managing them. You don't post any code
>> so we
>> can't say what is going on in your case.
>>
>>>
>>>
>>>>
>>>> * About to connect() to xxxx port 80 (#59)
>>>
>>> * couldn't connect to host
>>>
>>> * Expire cleare
>>>
>>>
>>>>
>>>> * getaddrinfo(3) failed for www.xxxx.com:80
>>
>> * Couldn't resolve host 'wwwxxxl.com'
>>
>> * Closing connection #56
>>
>> * Connection #58 to hostxxxx left intact
>>
>> * getaddrinfo(3) failed for www.xxx.com:80
>>
>> * Couldn't resolve host 'www.xxx.com'
>>
>> * Closing connection #59
>>
>> * getaddrinfo(3) failed for www.xxx.com:80
>>
>> * Couldn't resolve host 'www.xxx.com'
>>
>> * Closing connection #59
>>
>> * getaddrinfo(3) failed for www.xxx.com:80
>>
>> * Couldn't resolve host 'www.xxx.com'
>>
>> * Closing connection #59
>>
>> * getaddrinfo(3) failed for www.xxx.com:80
>>
>> * Couldn't resolve host 'www.xxx.com'
>>
>> * Closing connection #53
>>
>> *
>>
>>
>>> Closing connection #55
>>>
>>> * About to connect() to xxxxxxxxxxxxxxx port 80 (#55)
>>>
>>> * couldn't connect to host
>>>
>>> * Expire cleared
>>>
>>>
>>>> these are the screen output information ! the return code is 6 ,or 7
>>>
>>> 6 means could not resolve the url ,7 means could not connect to the host
>>>> !
>>>
>>> I use ping and telnet to verify the url is ok. however ,the log has
>>>> often appear these two error . and I see the network error is " bad file
>>>> descriptor"
>>>
>>>
>>>
>>> -------------------------------------------------------------------
>> 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
>

-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2015-04-01