Startup problem with ldap
Alan DeKok
aland at deployingradius.com
Tue Nov 6 23:10:53 CET 2007
Massimo Meregalli wrote:
> The following is the backtrace produced when I attach the debugger to
> the radiusd process:
>
>
> (gdb) backtrace
> #0 0x0012d402 in __kernel_vsyscall ()
> #1 0x00166a0e in __lll_mutex_lock_wait ()
> from /lib/libpthread.so.0
> #2 0x00162883 in _L_mutex_lock_79 () from /lib/libpthread.so.0
> #3 0x001623ad in pthread_mutex_lock ()
> from /lib/libpthread.so.0
> #4 0x00704e6d in ldap_pvt_thread_mutex_lock ()
> from /usr/lib/libldap_r-2.3.so.0
Pretty much what I expected. The LDAP code is blocking on a mutex.
Why, I don't know.
> #5 0x0070f79b in ldap_ld_free ()
> from /usr/lib/libldap_r-2.3.so.0
> #6 0x00663dd7 in ?? () from /usr/lib/libnss_ldap.so.2
> #7 0x00667504 in ?? () from /usr/lib/libnss_ldap.so.2
libnss_ldap? Huh? Where did that come from?
Are you trying to get passwords via the "unix" module, over NSS, using
LDAP?
I suggest commenting out the "unix" module from radiusd.conf. The
issue MAY be conflicting use of static variables in the OpenLDAP libraries.
i.e. The OpenLDAP libraries can connect to *one* LDAP server. Not
two, *one*. So if you use rlm_ldap, you *cannot* lookup usernames and
passwords in LDAP, via NSS. The OpenLDAP libraries will break...
possibly exactly like this.
Alan DeKok.
More information about the Freeradius-Users
mailing list