Review request for 6824477
Alan Bateman
Alan.Bateman at Sun.COM
Wed Apr 1 16:29:12 UTC 2009
6824477: Selector.select fails with IOException: Invalid argument" if
maximum file descriptors is low
Sherman, you'll probably want to take this - it's another Solaris
specific issue with the /dev/poll based Selector. The Glassfish folks
have been seeing this one intermittently at a few places. In summary,
the maximum number of pollfd structs that can be written to the driver
in a single batch is limited by the maximum number of file descriptors
(the hard limit). The Selector, on the other hand, may attempt to write
up to 10000 updates in a single batch. Where the file descriptor limit
is set to a value less than 10000 then it's possible (under load, when
the interest ops of socket channels are updated many times, or the
select method isn't invoked in a timely manner) that the number of
pending updates exceeds the file descriptor limit causing the exception
in the bug report. This bug has always existed but probably hasn't been
noticed because the default limit is 64k. I've used the opportunity to
eliminate an allocate/free from updateRegistrations.
The webrev is here:
http://cr.openjdk.java.net/~alanb/6824477/webrev.00/
Thanks,
Alan
More information about the core-libs-dev
mailing list