RFR 8021820: Number of opened files used in select() is limited to 1024 [macosx]

Tim Bell tim.bell at oracle.com
Wed Jul 31 14:35:19 UTC 2013


Aleksej, Alan

The change in common/autoconf/toolchain.m4 looks correct to me, and I 
think that is a good place to have it.  Remember to run 'bash 
common/autoconf/autogen.sh' and check in the generated-configure.sh 
files as part of the changeset.

I didn't look at the test case, but I think Alan has some good points.

Tim

On 07/31/13 06:45 AM, Alan Bateman wrote:
> On 31/07/2013 05:18, Aleksej Efimov wrote:
>> Hi,
>> Can I have a review for the following problem:
>> The MACOSX JDK (more precisely - the java.net classes) uses the 
>> select() system call to wait for different events on sockets fds. And 
>> the default behaviour for select() on Darwin is to fail when fdset 
>> contains the fd with id greater than FDSET_SIZE(=1024). Test case in 
>> webrev illustrates this behavior.
>> There is at least one solution for it: use -D_DARWIN_UNLIMITED_SELECT 
>> compilation flag for all macosx sources: this won't affect other 
>> parts of JDK because they are not using select().
>> Currently, I have added this compilation flag to 
>> common/autoconf/generated-configure.sh and 
>> common/autoconf/generated-configure.sh. I wonder, if there is a 
>> better place where I can put this flag?
>>
>> The webrev: http://cr.openjdk.java.net/~aefimov/8021820/webrev.00/
>> BUG: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8021820
>
> Thanks for looking into this one. The build changes look okay to me 
> but it's probably best that someone on build-dev agree to those.
> Michael McMahon can probably explain why the net code is using select 
> for timed read/accept (I have a vague recollection of there being an 
> issue with poll due to the way that it is implemented on kqueue with 
> the result that it had to be changed to use select).
>
> I think the test needs re-work. It looks to me that the it attempts to 
> connect to an Oracle internal site so that's not going to work 
> everywhere. In general we don't want the tests to be dependent on 
> hosts that may or may not exist (we had tests that used to this in the 
> past but they caused a lot of grief). It also looks like the test 
> doesn't close the 1023 files that it opens at the start and so I 
> assume this test will always fail on Windows when jtreg tries to 
> clean-up.
>
> -Alan.




More information about the build-dev mailing list