This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ioctl() on socket fd's take 3 seconds on 1.7.7


On 22/11/2010 14:17, Corinna Vinschen wrote:
> On Nov 20 18:25, Jason Curl wrote:
>> On 15/11/2010 17:22, Corinna Vinschen wrote:
>>> On Nov  9 09:20, Jason Curl wrote:
>>>>    166   65418 [main] ipcheck 5580 ioctl: fd 3, cmd 80087364
>>>> --- Process 5580, exception C0000005 at 610C8C86
>>>
>>> Crash in Cygwin, but the address doesn't help much, unfortunately.
>>>
>>>> Interestingly enough, the program works. That is, it finds all
>>>> interfaces and returns correct values (except interface names are
>>>> UUIDs instead of something more friendly like "eth0" that existed in
>>>> 1.5.26).
>>>>
>> I've generated a relatively simple test case that I can compile
>> using cygwin1-20101102.dll.
>
> Thank you.  I can't reproduce any slowness, each ioctl takes only a
> couple of milliseconds.  At least I could reproduce the exception when
> stracing the testcase and I've applied a matching patch to Cygwin.
>
> Can you retry with the next developer snapshot?  Are the ioctl calls
> still slow?  If so, I'm wondering if the GetAdaptersAddresses call is
> rather slow if a lot of interfaces exist.  Every single ioctl in your
> application calls GetAdaptersAddresses twice, like this:
>
> Can you test how long this call takes in your scenario, and if it
> might be the culprit?

I've downloaded cygwin1-20101118.dll as I didn't see anything newer and the problem still exists. So I downloaded the source and built my own binary.

The problem still exists. I did see a change in behaviour - when using "strace", the 3 second delays are now present (with previous versions of cygwin1.dll, strace implied no delays, running vanilla would show delays). So could have the crash while using strace shortcircuited the 3 second timeout?

I've attached the output of 'strace'. What I see is the following:

78 65155 [main] a 6984 ioctl: fd 3, cmd 80087364
3153263 3218418 [main] a 6984 fhandler_socket::ioctl: 0 = ioctl_socket (80087364, 28C8D4)
46 3218464 [main] a 6984 ioctl: returning 0


Regards,
Jason.

Attachment: out.txt.bz2
Description: Binary data

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]