[Pkg-openldap-devel] Bug#378261: slapd fails under heavy load due to descriptor limit

Chris Adams cadams at salk.edu
Fri Jul 14 18:36:20 UTC 2006


Package: slapd
Version: 2.2.23-8
Severity: important


slapd can fail under heavy load with the following message:

Jul 14 10:12:04 economo slapd[16502]: daemon: 1024 beyond descriptor table size 1024


There are several problems here:
1) slapd uses more file descriptors than it arguably should (#159776)
2) The table size is artificially capped (servers/slapd/daemon.c lines
1026:1030) to FD_SETSIZE (1024 on current systems), well below the 8192
limit set by the ulimit command in /etc/init.d/slapd. 

http://www.openldap.org/faq/data/cache/1126.html suggests that this
can be raised to 8192 using a compile flag. This patch accomplishes
that:

5a6
> CPPFLAGS=-DFD_SETSIZE=8192
32c33
<       cd $(builddir) && CFLAGS="$(CFLAGS)" $(rootdir)/configure \
---
>       cd $(builddir) && CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)"
>       $(rootdir)/configure \

3) slapd should never accept a connection which it cannot process.  This
causes visible service interruptions (there's a separate bug in
libnss-ldap/libpam-ldap which cause them to ignore defined LDAP
secondaries in this situation) and keeps the backlog stats from
accurately reflecting the number of connections slapd is unable to
handle.

-- System Information:
Debian Release: 3.1
Architecture: i386 (x86_64)
Kernel: Linux 2.6.8-12-amd64-k8-smp
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages slapd depends on:
ii  coreutils [fileutils] 5.2.1-2            The GNU core utilities
ii  debconf               1.4.30.13          Debian configuration management sy
ii  libc6                 2.3.2.ds1-22sarge3 GNU C Library: Shared libraries an
ii  libdb4.2              4.2.52-18          Berkeley v4.2 Database Libraries [
ii  libiodbc2             3.52.2-3           iODBC Driver Manager
ii  libldap-2.2-7         2.2.23-8           OpenLDAP libraries
ii  libltdl3              1.5.6-6            A system independent dlopen wrappe
ii  libperl5.8            5.8.4-8sarge4      Shared Perl library
ii  libsasl2              2.1.19-1.5sarge1   Authentication abstraction library
ii  libslp1               1.0.11a-2          OpenSLP libraries
ii  libssl0.9.7           0.9.7e-3sarge1     SSL shared libraries
ii  libwrap0              7.6.dbs-8          Wietse Venema's TCP wrappers libra
ii  perl [libmime-base64- 5.8.4-8sarge4      Larry Wall's Practical Extraction 
ii  psmisc                21.5-1             Utilities that use the proc filesy

-- debconf information:
  slapd/password_mismatch:
  slapd/fix_directory: true
  slapd/invalid_config: true
  slapd/upgrade_slapcat_failure:
  slapd/upgrade_slapadd_failure:
  slapd/backend: BDB
  slapd/dump_database: when needed
  slapd/allow_ldap_v2: false
  slapd/no_configuration: false
  slapd/migrate_ldbm_to_bdb: true
  slapd/move_old_database: true
  slapd/suffix_change: false
  slapd/slave_databases_require_updateref:
  slapd/dump_database_destdir: /var/backups/slapd-VERSION
  slapd/autoconf_modules: true
  slapd/purge_database: false




More information about the Pkg-openldap-devel mailing list