[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
OpenLDAP 2.0.7 hangs (beyond descriptor table size 256) (ITS#1042)
Full_Name: Nathan Kay
Version: 2.0.7
OS: OpenBSD 2.7
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (207.217.91.62)
slapd intermittently stops accepting network connections when running on an
OpenBSD 2.7 x86 machine,
---
History:
After it was first installed, slapd would hang / spin when the maximum amount
of
open file descriptors was reached (it was 64 by default). The system and shell
limits on maximum open file descriptors were raised above 1000 per process.
Now the behavior is that when slapd hits 256 open file descriptors, it stops
accepting network connections, and doesn't recover. Syslog shows the following
message:
Feb 22 05:16:44 slapd[25515]: daemon: 256 beyond descriptor table size 256
---
Information:
ktrace output of the system calls (captured while a connection was trying to
be established:
25515 slapd CALL accept(0x9,0x65ff10,0x65f6d4)
25515 slapd RET accept 256/0x100
25515 slapd CALL fcntl(0x100,0x3,0)
25515 slapd RET fcntl 2
25515 slapd CALL fcntl(0x100,0x4,0x6)
25515 slapd RET fcntl 0
25515 slapd CALL gettimeofday(0x65e9c4,0)
25515 slapd RET gettimeofday 0
25515 slapd CALL getpid
25515 slapd RET getpid 25515/0x63ab
25515 slapd CALL sendto(0x3,0x65ee3c,0x50,0,0,0)
25515 slapd GIO fd 3 wrote 80 bytes
"<167>Feb 22 05:16:44 slapd[25515]: daemon: 256 beyond descriptor table
size 256
"
25515 slapd RET sendto 80/0x50
25515 slapd CALL shutdown(0x100,0x2)
25515 slapd RET shutdown 0
25515 slapd CALL fstat(0x100,0x65f5dc)
25515 slapd RET fstat 0
25515 slapd CALL close(0x100)
25515 slapd RET close 0
---
Notes:
My read on this is that when slapd calls accept, it gets back 256 for the file
descriptor (which OpenBSD thinks is fine), but slapd doesn't want to work with
a file descriptor higher than 255.
It's worth noting that "normal" operation of this system can at times involve
slapd trying to handle over 255 connections at time.
Any ideas regarding why things work like this?