openldap server + kse = bewm

From: Doug White <dwhite_at_gumbysoft.com>
Date: Thu, 19 Feb 2004 20:39:26 -0800 (PST)
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
Received on Thu Feb 19 2004 - 19:39:26 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:44 UTC