Winbindd limited by select

Mike Sweet mike at
Sat Feb 15 16:24:07 GMT 2003

Michael Steffens wrote:
> Mike Sweet wrote:
>> Sooo, my recommendations are as follows:
>>     1. Provide a configure option (--with-maxfiles or similar)
>>        to configure the upper limit you want to support in SAMBA.
>>     2. Provide a smb.conf option to control the max number of
>>        file descriptors.
>>     3. Provide a definition on Solaris for FD_SETSIZE before
>>        including <sys/select.h> so that the correct version of
>>        select() is used.
>>     4. On startup, query the current FD limit and set it to the
>>        smaller of the "maxfiles" definition, the max value
>>        reported by the kernel, and the max value in smb.conf.
>>     5. Allocate the fd_set buffers [(maxfiles + 7) / 8 bytes]
>>        and replace all use of FD_ZERO with memset/bzero with
>>        the correct size.
>>     6. Make sure all calls to FD_SET and FD_CLR are updated to
>>        not use "&set", since "set" is now allocated.
> Sounds good! And, for winbindd's client connections, shut down
> idle connections when the limit is about to be exceeded?

Right.  CUPS keeps track of the last activity for each client,
and shuts down inactive connections after a configurable amount of
time (30 seconds by default).

> Would need to also take FDs for TCP connections, TDBs, logs, etc
> into account.

For CUPS we limit the number of network connections to 1/3 of the
available file descriptors (to account for log files, pipes, IPP
and other data files, and job processing; I'm sure there are other
(more accurate) ways of tracking this, and for winbindd you'll likely
have different requirements...

Michael Sweet, Easy Software Products                  mike at
Printing Software for UNIX             

More information about the samba-technical mailing list