On Wednesday 31 January 2007 22:16, Pierangelo Masarati wrote:
Andreas Hasenack wrote:
>>>>>
/home/andreas/updates-svn/openldap/BUILD/openldap-2.3.33/servers/slap
>>>>>d/.libs/lt-slapd: symbol lookup error:
>>>>> ../servers/slapd/back-meta/.libs/back_meta-2.3.so.0: undefined
>>>>> symbol: ldap_back_proxy_authz_ctrl
>>>>>
>>>>> Anybody else with the same problem?
You already know I've been having this problem :-P. Still haven't resolved
anything yet.
>>>>
>>>> You should build and load the back_ldap.la module as well. That is
>>>> supposed to provide the missing symbol.
>>>
>>> It it supposedly built:
>>> [andreas@pandora openldap-2.3.33]$ find . -name back_ldap*
>>> ./servers/slapd/back-ldap/.libs/back_ldap-2.3.so.0.2.21
>>> ./servers/slapd/back-ldap/.libs/back_ldap-2.3.so.0.2.21T
>>> ./servers/slapd/back-ldap/.libs/back_ldap.lai
>>> ./servers/slapd/back-ldap/.libs/back_ldap.la
>>> ./servers/slapd/back-ldap/.libs/back_ldap.so
>>> ./servers/slapd/back-ldap/.libs/back_ldap-2.3.so.0
>>> ./servers/slapd/back-ldap/back_ldap.la
>>
>> .. but you need to explicitly load it in slapd.conf (or via
>> back-config).
>
> You mean, the test script needs to do it. Remember, I just ran "make
> test" and it failed.
But, the configs for this test *do* load it:
Using meta backend...
Starting slapd on TCP/IP port 9011...
Using ldapsearch to check that slapd is running...
Using ldapadd to populate the database...
Searching base="dc=example,dc=com"...
Searching base="o=Example,c=US"...
Search failed (255)!
./scripts/relay: line 78: kill: (18129) - No such process
[bgmilne@seaknight tests]$ less testrun/sl
slapd.1.conf slapd.1.log slapd.args slapd.pid
[bgmilne@seaknight tests]$ tail testrun/slapd.1.log
conn=3 op=1 >>> meta_search_dobind_init[0]
conn=3 op=1 <<< meta_search_dobind_init[0]=1
==> rewrite_context_apply [depth=1] string='o=Example,c=US'
==> rewrite_rule_apply rule='((.+),)?o=Example,[ ]?c=US$'
string='o=Example,c=US' [1 pass(es)]
==> rewrite_context_apply [depth=1] res={0,'dc=example,dc=com'}
[rw] searchBase: "o=Example,c=US" -> "dc=example,dc=com"
==> rewrite_context_apply [depth=1] string='(objectClass=*)'
==> rewrite_context_apply [depth=1] res={0,'NULL'}
[rw] searchFilter: "(objectClass=*)" -> "(objectClass=*)"
/home/bgmilne/rpm/BUILD/openldap-2.3.33/servers/slapd/.libs/lt-slapd: symbol
lookup error: ../servers/slapd/back-meta/.libs/back_meta-2.3.so.0: undefined
symbol: ldap_back_proxy_authz_ctrl
[bgmilne@seaknight tests]$ grep -C5 back_meta testrun/slapd.1.conf
modulepath ../servers/slapd/back-relay/
moduleload back_relay.la
modulepath ../servers/slapd/back-ldap/
moduleload back_ldap.la
modulepath ../servers/slapd/back-meta/
moduleload back_meta.la
modulepath ../servers/slapd/back-monitor/
moduleload back_monitor.la
modulepath ../servers/slapd/overlays/
moduleload rwm.la
I suspect that slapd is using the installed version of libldap_r, which may be
playing nasty tricks here:
[bgmilne@seaknight tests]$ ldd ../servers/slapd/.libs/slapd|grep ldap_r
libldap_r-2.3.so.0 => /usr/lib64/libldap_r-2.3.so.0
(0x00002b5b96e33000)
[bgmilne@seaknight tests]$ export
LD_LIBRARY_PATH=/home/bgmilne/rpm/BUILD/openldap-2.3.33/libraries/libldap_r/.libs/
[bgmilne@seaknight tests]$ ldd ../servers/slapd/.libs/slapd|grep ldap_r
libldap_r-2.3.so.0 => /usr/lib64/libldap_r-2.3.so.0
(0x00002b9240c97000)
(surely, it should have used the one
from /home/bgmilne/rpm/BUILD/openldap-2.3.33/libraries/libldap_r/.libs/ ?)
Right, sorry. I overlooked that bit. I'm unsure having to
explicitly
load back_ldap.la to use back_meta.la is the best solution, though.
Right, but it should still work.
Please report this thru the ITS.
I'm not sure that the real problem here is an OpenLDAP problem (since I don't
see it on other distros, which have no installed 2.3 libldap_r).
Regards,
Buchan
--
Buchan Milne
ISP Systems Specialist - Monitoring/Authentication Team Leader
B.Eng,RHCE(803004789010797),LPIC-2(LPI000074592)