Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Feb 2004 00:33:56 -0500 (EST)
From:      Daniel Eischen <eischen@vigrid.com>
To:        Doug White <dwhite@gumbysoft.com>
Cc:        current@freebsd.org
Subject:   Re: openldap server + kse = bewm
Message-ID:  <Pine.GSO.4.10.10402200031160.6052-100000@pcnet5.pcnet.com>
In-Reply-To: <20040219203518.V55111@carver.gumbysoft.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On Thu, 19 Feb 2004, Doug White wrote:

> 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

This is interesting.  pthread_mutex_lock() is from libc, not libpthread!
Are libraries linked in the correct order?  -lpthread must be before
-lc (you shouldn't have -lc anyways).

-- 
Dan Eischen



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.10.10402200031160.6052-100000>