Since upgrading our openldap (v1.2.13) server to 4.8-STABLE from 4.7-STABLE,
we've noticed that the slapd server increasingly eats up memory, before
dieing and coredumping after about 15 minutes. I rebuilt the package (via
ports), post-upgrade, to see if that fixed the problem and no dice. I've
rebuilt libc_r and the pkg with debugging symbols, yielding the following:
# gdb ./slapd.static ./slapd.core
<...snip...>
Core was generated by `slapd'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/local/lib/libldap.so.1...done.
Reading symbols from /usr/local/lib/liblber.so.1...done.
Reading symbols from /usr/lib/libcrypt.so.2...done.
Reading symbols from /usr/lib/libwrap.so.3...done.
Reading symbols from /usr/lib/libc_r.so.4...done.
Reading symbols from /usr/libexec/ld-elf.so.1...done.
#0 0x2811a781 in _spinlock_debug () from /usr/lib/libc_r.so.4
(gdb) bt full
#0 0x2811a781 in _spinlock_debug () from /usr/lib/libc_r.so.4
No symbol table info available.
#1 0x2811e726 in _pthread_mutex_lock (mutex=0x80b99d4) at
/usr/src/lib/libc_r/uthread/uthread_mutex.c:445
curthread = (struct pthread *) 0x8075800
ret = 0
#2 0x8067576 in ldap_pvt_thread_mutex_lock (mutex=0x80b99d4) at
thr_posix.c:165
mutex = (ldap_pvt_thread_mutex_t *) 0x1
#3 0x804b832 in slapd_daemon (port=0x185) at daemon.c:344
from = {sin_len = 16 '\020', sin_family = 2 '\002',
sin_port = 34822,
sin_addr = {s_addr = 420088330}, sin_zero =
"\000\000\000\000\000\000\000"}
hp = (struct hostent *) 0x1
len = 16
client_name = 0x28174ce0 "mail.servers.gactr.gc.nat"
client_addr = 0x2817ae80 "10.10.10.25"
port = (void *) 0x1
ber = {ber_buf = 0x0, ber_ptr = 0x0, ber_end = 0x0, ber_sos = 0x0,
ber_tag = 0, ber_len = 0, ber_usertag = 0, ber_options = 0 '\000',
ber_rwptr = 0x0, ber_encode_translate_proc = 0, ber_decode_translate_proc 0}
i = 2
tcps = 5
ns = 1040
addr = {sin_len = 0 '\000', sin_family = 2 '\002',
sin_port = 34049,
sin_addr = {s_addr = 0}, sin_zero = "\000\000\000\000\000\000\000"}
readfds = {fds_bits = {32, 0, 0, 0, 0, 0, 0, 0, 0, 65536, 0 <repeats
22 times>}}
writefds = {fds_bits = {0 <repeats 32 times>}}
fp = (FILE *) 0x26980
on = 1
#4 0x280e22cc in _thread_start () at
/usr/src/lib/libc_r/uthread/uthread_create.c:311
curthread = (struct pthread *) 0x80b99d4
#5 0x0 in ?? ()
No symbol table info available.
(gdb)
---------------------------------------
Robin P. Blanchard
Systems Integration Specialist
Georgia Center for Continuing Education
fon: 706.542.2404 <|> fax: 706.542.6546
---------------------------------------