[OT] select and sysread problem on solaris

Mark Overmeer mark at overmeer.net
Thu Sep 11 11:23:39 BST 2008


* Paul Johnson (paul at pjcj.net) [080911 09:20]:
> On Thu, Sep 11, 2008 at 02:36:55AM +0100, Andy Armstrong wrote:
> >     printf( "%d\n", FD_SETSIZE );
> 
> The output is 1024, but I'm not convinced the problem lies in this area.

See http://blogs.sun.com/elving/entry/too_many_open_files
Do you have perl compiled as 32bit or 64bit?  It wouldn't wonder
me if Solaris lied to Perl about the max number of file-descriptors.

> We have just moved from under 128 files per select to just over, but I
> don't think this is the problem.  Additionally, the system will seem to
> work fine for many Gb of data before this problem is (seemingly
> randonly) triggered.

Clients address your service via sockets which count as file-descriptors
as well.  It is not only a limit on what you can pass with select():
the whole sum of pipes and sockets over all threads within one process
can not exceed 256.  (At least, that is my interpretation of the docs)
-- 
Regards,
               MarkOv

------------------------------------------------------------------------
       Mark Overmeer MSc                                MARKOV Solutions
       Mark at Overmeer.net                          solutions at overmeer.net
http://Mark.Overmeer.net                   http://solutions.overmeer.net



More information about the london.pm mailing list