openldap server + kse = bewm
Doug White
dwhite at gumbysoft.com
Thu Feb 19 20:39:26 PST 2004
hey folks,
Looks like the OpenLDAP server, slapd, and KSE don't get along too well.
I can reliably segfault slapd by doing a few requests of it on a -CURRENT
machine built this morning PST. TLS seems to accelerate things, but it
can be done without. I have this backtrace, with a debugging libpthread,
but I'm not sure how useful it is to you folks.
This is 100% reproducible, although initially it was croaking in
pthread_testcancel() instead of a kse function. This leads me to suspect
strange mutex corruption, but I'd like someone who understands kse to at
least spot-check.
I thought at first it might be some strange interaction between berkeley
db 4.2's special assembly mutexes and kse, but I rebuilt db42 with pthread
mutexes and rebuilt openldap to use DB_PRIVATE so the db would mount, but
no change in status.
Here's the trace from gdb:
#0 0x284374a7 in kse_release () at {standard input}:15
#1 0x28431fed in kse_wait (kse=0x8102000, td_wait=0x0, sigseqno=0)
at /usr/src/lib/libpthread/thread/thr_kern.c:1816
#2 0x28430485 in kse_sched_multi (kmbx=0x0)
at /usr/src/lib/libpthread/thread/thr_kern.c:1011
#3 0x28434014 in _i386_enter_uts () at {standard input}:25
#4 0x2842fa4e in _thr_sched_switch (curthread=0x8260000)
at /usr/src/lib/libpthread/thread/thr_kern.c:596
#5 0x2842c905 in mutex_lock_common (curthread=0x8260000, m=0x810e304,
abstime=0x0) at /usr/src/lib/libpthread/thread/thr_mutex.c:555
#6 0x2842d633 in __pthread_mutex_lock (m=0x810e304)
at /usr/src/lib/libpthread/thread/thr_mutex.c:796
#7 0x2839634f in pthread_mutex_lock () from /lib/libc.so.5
#8 0x281288b3 in ldap_pvt_thread_mutex_lock ()
from /usr/local/lib/libldap_r.so.202
#9 0x28127b23 in ldap_pvt_thread_pool_submit ()
from /usr/local/lib/libldap_r.so.202
#10 0x08059d23 in ldap_str2matchingrule ()
#11 0x080599d5 in ldap_str2matchingrule ()
#12 0x08059525 in ldap_str2matchingrule ()
#13 0x08056fe5 in ldap_str2matchingrule ()
#14 0x28425595 in thread_start (curthread=0x8260000,
start_routine=0x8055a4c <ldap_str2matchingrule+34120>, arg=0x0)
at /usr/src/lib/libpthread/thread/thr_create.c:353
#15 0x283e4807 in _ctx_start () from /lib/libc.so.5
--
Doug White | FreeBSD: The Power to Serve
dwhite at gumbysoft.com | www.FreeBSD.org
More information about the freebsd-current
mailing list