Review request for 6824477

Xueming Shen Xueming.Shen at Sun.COM
Thu Apr 2 17:52:21 UTC 2009


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)?



More information about the core-libs-dev mailing list