[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Solaris 32bit File Descriptor Limit (ITS#2636)



Some more information.

I can reproduce the problem fairly easily in my lab.  I just telnet to the
port (255 times), background the processes, and then try a real ldap
operation (ldapsearch, modify, etc) and I get LDAP_SERVER_DOWN returned.
During this time, lsof or pfiles shows 256 descriptors in use.  I've tried
ulimit, plimit, and all of the /etc/system settings to no avail.

I found this thread
(http://www.openldap.org/lists/openldap-software/200111/msg00324.html)
regarding OpenLDAP 2.0.11 and it appears to be the same issue.  I found the
post about fsio intriguing and I may attempt to compile the 32bit version
with these libraries instead of Sun's.  Has anyone tried this, since?

Sun's Response:

"For a 32-bit application, a stdio library FILE structure represents the
underlying file descriptor as an unsigned char, limiting the range of fds
which can be opened as FILE's to 0-255 inclusive. A common, known problem is
that when the 32-bit stdio is used for a large server application, the 255
limit is frequently exceeded. Although this limitation does not exist for
64-bit applications, this problem will always remain for 32-bit
applications."

Sun also suggests using open() instead of fopen() ... would a fix of this
nature be possible for OpenLDAP?

I've got a valid OpenLDAP 2.1.16 64bit build working and I'm testing it,
now.  I expect this will be my final resolution, but until then I will
reserve further comments and settle for yet another question.  Who else is
using 64bit OpenLDAP on Solaris 2.8 and what are your experiences, good/bad?

Thanks!

Joseph

----- Original Message ----- 
From: <joseph.tingiris@cox.net>
To: <openldap-its@OpenLDAP.org>
Sent: Tuesday, July 08, 2003 11:32 AM
Subject: Solaris 32bit File Descriptor Limit (ITS#2636)


> Full_Name: Joseph Tingiris
> Version: 2.1.16
> OS: Solaris 8
> URL: ftp://ftp.openldap.org/incoming/
> Submission from: (NULL) (206.157.230.254)
>
>
> Under high load, I get the following log message:
>
> Jul  6 23:49:34 lakeldap01 slapd[10327]: [ID 759906 local5.debug] daemon:
256
> beyond descriptor table size 256
>
> I've experienced this with Apache and understand that it is a 32bit limit
on
> descriptors.  Again, 32bit Apache has a workaround for this that allows
the
> connection table to use non-file type descriptors.
>
> Does anyone know of a simple workaround for this, other than going to a
64bit
> compiled version?
>
> Thanks!
>
>