Alan Bateman wrote:
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
looks good; approved.

btw, just wonder if the #93-#97 "zero-fill" init code really necessary (and then those putXYX)?

Reply via email to