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