tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: radiusd: Error detected by libpthread: Invalid mutex.



In article <20130510181446.GN27359%trav.math.uni-bonn.de@localhost>,
Edgar Fuß  <ef%math.uni-bonn.de@localhost> wrote:
>> #0  0x00007f7ff5a0b2d6 in pthread__errorfunc () from /usr/lib/libpthread.so.1
>> #1  0x00007f7ff5a089ae in ?? () from /usr/lib/libpthread.so.1
>> #2  0x00007f7fece2df14 in ldap_ld_free () from /usr/lib/libldap_r.so.4
>> #3  0x00007f7ff4e05ca2 in ?? () from /usr/lib/nss_ldap.so.0
>> #4  0x00007f7ff4e076e4 in ?? () from /usr/lib/nss_ldap.so.0
>> #5  0x00007f7ff568026e in fork () from /usr/lib/libc.so.12
>> #6  0x000000000041b6a9 in main ()
>> 
>> OOPS?
>I'm making some progress on this. That ldap_ld_free() is called from a
>pthread_atfork (child) handler installed by nss_ldap.
>
>However, I had a hard time setting breakpoints that where not hit despite
>the corresponding function showing up in a later backtrace until I realized
>that I had TWO copies of LDAP libraries in memory: One libldap pulled in by
>nss_ldap and one libldap_r pulled in by FreeRADIUS' rlm_ldap module.
>
>Question one: Is that alone (i.e. using both libldap and libldap_r) asking
>for trouble?
>
>Question two: If not, how do I set a breakpoint on a specific incarnation
>of ldap_foobar?

Using 2 copies of the library is asking for trouble. I suggest that the
package should be changed to use the system ldap copy if available like
we do with openssl.

christos



Home | Main Index | Thread Index | Old Index