On 2012-05-05 17:54, Hartmann, O. wrote:
> Since Friday, I have on all of our FreeBSD 10.0-CURRENT/amd64 boxes
> massive trouble with net/openldap24-server (SASL enabled, so it is
> openldap-sasl-server).
> 
> Last time OpenLDAP worked was Thursday last week, when obviously a
> problematic update to the OS was made

I managed to reproduce the segfault you are seeing in slapd, which is
caused by a problem in libthr.so, introduced in r234947.

Please apply the attached diff, rebuild lib/libthr and install it, and
then try your slapd tests again.  Let us know. :)

@David, can you please review this diff?  It looks like there was a
mistake merging from Perforce, where you also moved the line:

                sc = SC_LOOKUP(wchan);

to the top of the _sleepq_add() function, just before the call to
_sleepq_lookup().  If this isn't done, sc may be uninitialized when it
is dereferenced later on in the function.
Index: lib/libthr/thread/thr_sleepq.c
===================================================================
--- lib/libthr/thread/thr_sleepq.c	(revision 234994)
+++ lib/libthr/thread/thr_sleepq.c	(working copy)
@@ -113,11 +113,11 @@ _sleepq_add(void *wchan, struct pthread *td)
 	struct sleepqueue_chain *sc;
 	struct sleepqueue *sq;
 
+	sc = SC_LOOKUP(wchan);
 	sq = _sleepq_lookup(wchan);
 	if (sq != NULL) {
 		SLIST_INSERT_HEAD(&sq->sq_freeq, td->sleepqueue, sq_flink);
 	} else {
-		sc = SC_LOOKUP(wchan);
 		sq = td->sleepqueue;
 		LIST_INSERT_HEAD(&sc->sc_queues, sq, sq_hash);
 		sq->sq_wchan = wchan;
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"

Reply via email to