Bug 468889
| Summary: | libldap-2.4.so.2: undefined symbol: ldap_int_tls_destroy | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Rex Dieter <rdieter> | ||||||
| Component: | openldap | Assignee: | Jan Safranek <jsafrane> | ||||||
| Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||
| Severity: | medium | Docs Contact: | |||||||
| Priority: | medium | ||||||||
| Version: | 10 | CC: | jreznik, jsafrane, kevin, than | ||||||
| Target Milestone: | --- | Keywords: | Reopened | ||||||
| Target Release: | --- | ||||||||
| Hardware: | All | ||||||||
| OS: | Linux | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2009-03-17 20:05:06 UTC | Type: | --- | ||||||
| Regression: | --- | Mount Type: | --- | ||||||
| Documentation: | --- | CRM: | |||||||
| Verified Versions: | Category: | --- | |||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||
| Embargoed: | |||||||||
| Bug Depends On: | |||||||||
| Bug Blocks: | 457638 | ||||||||
| Attachments: |
|
||||||||
|
Description
Rex Dieter
2008-10-28 17:03:35 UTC
oops, make that: ldap_int_tls_destroy I installed fresh yesterday's rawhide and I can't reporoduce the bug. kcmshell4 kdm shows lot of output, but in the end I can't see any symbol lookup error. I even tried to set up the authentication to take users and credentials from ldap, still without aforementioned error. I have: kdebase-runtime-4.0.3-10.fc9.x86_64 kdebase-workspace-4.0.3-20.fc9.x86_64 openldap-2.4.8-3.fc9.x86_64 Do you have anything done with LDAP, e.g. user authentication? If I understand it correctly, kcmshell4 just loads the configuration tool from /usr/lib64/kde4/kcm_kdm.so, right? Could you please post result of: ldd -r /usr/lib*/kde4/kcm_kdm.so ldd -r /usr/bin/kcmshell4 cat /etc/nsswitch.conf rpm -qa | grep ldap > I installed fresh yesterday's rawhide and I can't reproduce the bug.
Really? hitting the "Cancel" button doesn't produce the error?
We have 2 devs that *can*, interesting...
(requested info forthcoming)
$ ldd -r /usr/lib64/kde4/kcm_kdm.so
linux-vdso.so.1 => (0x00007fff445fd000)
libQtCore.so.4 => /usr/lib64/libQtCore.so.4 (0x000000000037d000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00000000007a5000)
libkdecore.so.5 => /usr/lib64/libkdecore.so.5 (0x00000000009c1000)
libkdeui.so.5 => /usr/lib64/libkdeui.so.5 (0x0000000000df2000)
libkio.so.5 => /usr/lib64/libkio.so.5 (0x000000007288b000)
libkparts.so.4 => /usr/lib64/libkparts.so.4 (0x00000000013b0000)
libkpty.so.4 => /usr/lib64/libkpty.so.4 (0x0000000021876000)
libQtXml.so.4 => /usr/lib64/libQtXml.so.4 (0x00000000015f2000)
libQt3Support.so.4 => /usr/lib64/libQt3Support.so.4 (0x0000000001837000)
libkfile.so.4 => /usr/lib64/libkfile.so.4 (0x0000000001d40000)
libSM.so.6 => /usr/lib64/libSM.so.6 (0x0000000001fc4000)
libICE.so.6 => /usr/lib64/libICE.so.6 (0x00000000021cc000)
libX11.so.6 => /usr/lib64/libX11.so.6 (0x00000000023e7000)
libXext.so.6 => /usr/lib64/libXext.so.6 (0x00000000026f2000)
libXft.so.2 => /usr/lib64/libXft.so.2 (0x0000000002903000)
libXau.so.6 => /usr/lib64/libXau.so.6 (0x0000000002b17000)
libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x0000000002d19000)
libXpm.so.4 => /usr/lib64/libXpm.so.4 (0x0000000002f1e000)
libkde3support.so.4 => /usr/lib64/libkde3support.so.4 (0x000000000312f000)
libqimageblitz.so.4 => /usr/lib64/libqimageblitz.so.4 (0x000000000342c000)
libQtNetwork.so.4 => /usr/lib64/libQtNetwork.so.4 (0x0000000003644000)
libknewstuff2.so.4 => /usr/lib64/libknewstuff2.so.4 (0x000000000393e000)
libutil.so.1 => /lib64/libutil.so.1 (0x0000000003ba2000)
libutempter.so.0 => /usr/lib64/libutempter.so.0 (0x0000000003da5000)
libQtSvg.so.4 => /usr/lib64/libQtSvg.so.4 (0x0000000059561000)
libXtst.so.6 => /usr/lib64/libXtst.so.6 (0x0000000003fa7000)
libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x00000000041ad000)
libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00000000043b7000)
libstreamanalyzer.so.0 => /usr/lib64/libstreamanalyzer.so.0 (0x00000000045bc000)
libstreams.so.0 => /usr/lib64/libstreams.so.0 (0x000000000482c000)
libz.so.1 => /lib64/libz.so.1 (0x0000000004a5e000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x0000000004c73000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x0000000004e83000)
libsolid.so.4 => /usr/lib64/libsolid.so.4 (0x000000000509b000)
libQtDBus.so.4 => /usr/lib64/libQtDBus.so.4 (0x0000000005323000)
libQtGui.so.4 => /usr/lib64/libQtGui.so.4 (0x000000000558a000)
libfam.so.0 => /usr/lib64/libfam.so.0 (0x0000000006089000)
libacl.so.1 => /lib64/libacl.so.1 (0x0000000006291000)
libattr.so.1 => /lib64/libattr.so.1 (0x0000000006498000)
libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x000000000669c000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000000664f3000)
libm.so.6 => /lib64/libm.so.6 (0x00000000d597e000)
libc.so.6 => /lib64/libc.so.6 (0x00000000068a5000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000000006c17000)
libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x0000000006e2e000)
librt.so.1 => /lib64/librt.so.1 (0x0000000007032000)
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x000000000723b000)
libdl.so.2 => /lib64/libdl.so.2 (0x000000000751c000)
/lib64/ld-linux-x86-64.so.2 (0x000000390e000000)
libQtSql.so.4 => /usr/lib64/libQtSql.so.4 (0x0000000007720000)
libpng12.so.0 => /usr/lib64/libpng12.so.0 (0x000000002fd0c000)
libXi.so.6 => /usr/lib64/libXi.so.6 (0x000000000795b000)
libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x0000000007b64000)
libXinerama.so.1 => /usr/lib64/libXinerama.so.1 (0x0000000007d6b000)
libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x0000000007f6d000)
libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x0000000008205000)
libssl.so.7 => /lib64/libssl.so.7 (0x0000000008436000)
libcrypto.so.7 => /lib64/libcrypto.so.7 (0x0000000008685000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00000000089e8000)
libxcb-xlib.so.0 => /usr/lib64/libxcb-xlib.so.0 (0x0000000008bec000)
libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x0000000008ded000)
libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x000000009a0ea000)
libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x0000000009008000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x000000007c000000)
libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x0000000009246000)
libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x0000000009475000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000000009717000)
libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x000000000991a000)
libcap.so.2 => /lib64/libcap.so.2 (0x0000000009b3f000)
libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x0000000009d43000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x0000000009f4d000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x000000000a14f000)
$ ldd -r /usr/bin/kcmshell4
linux-vdso.so.1 => (0x00007fff12dfd000)
libkdeinit4_kcmshell4.so => /usr/lib64/libkdeinit4_kcmshell4.so (0x0000003a5ae00000)
libkparts.so.4 => /usr/lib64/libkparts.so.4 (0x0000003a5ee00000)
libkio.so.5 => /usr/lib64/libkio.so.5 (0x0000003a5e800000)
libkdeui.so.5 => /usr/lib64/libkdeui.so.5 (0x0000003a5de00000)
libstreamanalyzer.so.0 => /usr/lib64/libstreamanalyzer.so.0 (0x0000003920800000)
libstreams.so.0 => /usr/lib64/libstreams.so.0 (0x0000003920000000)
libsolid.so.4 => /usr/lib64/libsolid.so.4 (0x0000003a5e400000)
libfam.so.0 => /usr/lib64/libfam.so.0 (0x0000003920400000)
libacl.so.1 => /lib64/libacl.so.1 (0x000000391e000000)
libattr.so.1 => /lib64/libattr.so.1 (0x000000391dc00000)
libkutils.so.4 => /usr/lib64/libkutils.so.4 (0x0000003a60c00000)
libQtSvg.so.4 => /usr/lib64/libQtSvg.so.4 (0x0000003a5da00000)
libkdecore.so.5 => /usr/lib64/libkdecore.so.5 (0x0000003a5d400000)
libQtCore.so.4 => /usr/lib64/libQtCore.so.4 (0x0000003a5b200000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x000000390f000000)
libQtNetwork.so.4 => /usr/lib64/libQtNetwork.so.4 (0x0000003a5cc00000)
libQtDBus.so.4 => /usr/lib64/libQtDBus.so.4 (0x0000003a5d000000)
libz.so.1 => /lib64/libz.so.1 (0x000000390f400000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x000000391aa00000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x0000003915c00000)
libSM.so.6 => /usr/lib64/libSM.so.6 (0x0000003912800000)
libICE.so.6 => /usr/lib64/libICE.so.6 (0x0000003912400000)
libX11.so.6 => /usr/lib64/libX11.so.6 (0x00000035eea00000)
libXext.so.6 => /usr/lib64/libXext.so.6 (0x00000035eee00000)
libXft.so.2 => /usr/lib64/libXft.so.2 (0x00000035f2200000)
libXau.so.6 => /usr/lib64/libXau.so.6 (0x0000003910000000)
libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x0000003910400000)
libXpm.so.4 => /usr/lib64/libXpm.so.4 (0x00000035f2e00000)
libQtGui.so.4 => /usr/lib64/libQtGui.so.4 (0x0000003a5bc00000)
libQtXml.so.4 => /usr/lib64/libQtXml.so.4 (0x0000003a5c800000)
libXtst.so.6 => /usr/lib64/libXtst.so.6 (0x00000035f3600000)
libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x00000035efe00000)
libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00000035ef200000)
libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00000035ef600000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003913c00000)
libm.so.6 => /lib64/libm.so.6 (0x000000390e800000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003912c00000)
libc.so.6 => /lib64/libc.so.6 (0x000000390e400000)
libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x0000003919a00000)
libdl.so.2 => /lib64/libdl.so.2 (0x000000390ec00000)
libpng12.so.0 => /usr/lib64/libpng12.so.0 (0x0000003913000000)
libXi.so.6 => /usr/lib64/libXi.so.6 (0x00000035efa00000)
libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x00000035f0200000)
libXinerama.so.1 => /usr/lib64/libXinerama.so.1 (0x00000035f0600000)
libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x0000003913800000)
libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x0000003914400000)
libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x0000003a5aa00000)
librt.so.1 => /lib64/librt.so.1 (0x0000003911400000)
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x0000003a5a600000)
/lib64/ld-linux-x86-64.so.2 (0x000000390e000000)
libssl.so.7 => /lib64/libssl.so.7 (0x0000003918800000)
libcrypto.so.7 => /lib64/libcrypto.so.7 (0x0000003917000000)
libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x0000003916400000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x0000003911c00000)
libxcb-xlib.so.0 => /usr/lib64/libxcb-xlib.so.0 (0x000000390fc00000)
libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x000000390f800000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x0000003913400000)
libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x0000003917800000)
libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x0000003917400000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000003916800000)
libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x0000003917c00000)
libcap.so.2 => /lib64/libcap.so.2 (0x0000003916000000)
libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x0000003918000000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x0000003918400000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x0000003911800000)
$ cat /etc/nsswitch.conf
#
# /etc/nsswitch.conf
#
# An example Name Service Switch config file. This file should be
# sorted with the most-used services at the beginning.
#
# The entry '[NOTFOUND=return]' means that the search for an
# entry should stop if the search in the previous entry turned
# up nothing. Note that if the search failed due to some other reason
# (like no NIS server responding) then the search continues with the
# next entry.
#
# Legal entries are:
#
# nisplus or nis+ Use NIS+ (NIS version 3)
# nis or yp Use NIS (NIS version 2), also called YP
# dns Use DNS (Domain Name Service)
# files Use the local files
# db Use the local database (.db) files
# compat Use NIS on compat mode
# hesiod Use Hesiod for user lookups
# [NOTFOUND=return] Stop searching if not found so far
#
# To use db, put the "db" in front of "files" for entries you want to be
# looked up first in the databases
#
# Example:
#passwd: db files nisplus nis
#shadow: db files nisplus nis
#group: db files nisplus nis
passwd: files
shadow: files
group: files
#hosts: db files nisplus nis dns
hosts: files dns
# Example - obey only what nisplus tells us...
#services: nisplus [NOTFOUND=return] files
#networks: nisplus [NOTFOUND=return] files
#protocols: nisplus [NOTFOUND=return] files
#rpc: nisplus [NOTFOUND=return] files
#ethers: nisplus [NOTFOUND=return] files
#netmasks: nisplus [NOTFOUND=return] files
bootparams: nisplus [NOTFOUND=return] files
ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files
netgroup: nisplus
publickey: nisplus
automount: files nisplus
aliases: files nisplus
$ rpm -qa | grep ldap
openldap-devel-2.4.12-1.fc10.x86_64
openldap-2.4.12-1.fc10.x86_64
nss_ldap-261-4.fc10.x86_64
openldap-2.4.12-1.fc10.i386
python-ldap-2.3.5-1.fc10.x86_64
wine-ldap-1.1.7-1.fc10.i386
Created attachment 322424 [details]
strace log
I finally reproduced the bug, but I still do not have any idea why someone wants ldap_int_tls_destroy and why the linker does not resolve it...
ldap_int_tls_destroy is internal ldap function, it's not in public include files in openldap-devel package and nobody outside openldap should ever use it.
Looks like libldap isn't finding its own symbols for some reason I don't understand. Jan, ldap_int_tls_destroy is not used in KDE. It seems a issue in linker Created attachment 322544 [details]
stderr with LD_DEBUG=all
LD_DEBUG=all stderr output of 'kcmshell4 kdm'
This is fixed in kdebase-workspace-4.1.2-11.fc10, together with bug #457638. Not exactly fixed, we only put in a crude workaround (by manually linking kcm_kdm against openldap), I'd prefer a proper fix... reopening for posterity. (I'm ok with leaving this closed too, if that's what others would prefer) Can't say what is wong. If I set LD_DEBUG=all, I can see that e.g. symbol ldap_int_inet4or6, required by libldap-2.4.so.2, is found in the same library: --- symbol=ldap_int_inet4or6; lookup in file=/usr/lib64/libldap-2.4.so.2 [0] binding file /usr/lib64/libldap-2.4.so.2 [0] to /usr/lib64/libldap-2.4.so.2 [0]: normal symbol `ldap_int_inet4or6' --- But with ldap_int_tls_destroy the linker does not even try to look into libldap-2.4.so: --- symbol=ldap_int_tls_destroy; lookup in file=/usr/lib64/libkdeinit4_kcmshell4.so symbol=ldap_int_tls_destroy; lookup in file=/usr/lib64/libkparts.so.4 ... --- (lot of libraries, libldap-2.4.so is not there) If I try another binary, which links to that symbol (e.g. ldapsearch from openldap-clients.rpm), I can see no problem when resolving ldap_int_tls_destroy: symbol=ldap_int_tls_destroy; lookup in file=/usr/lib64/libldap-2.4.so.2 [0] binding file /usr/lib64/libldap-2.4.so.2 [0] to /usr/lib64/libldap-2.4.so.2 [0]: normal symbol `ldap_int_tls_destroy' This bug appears to have been reported against 'rawhide' during the Fedora 10 development cycle. Changing version to '10'. More information and reason for this action is here: http://fedoraproject.org/wiki/BugZappers/HouseKeeping Looks like kde-4.2's reduced linkage made this go away. I'll take the liberty of closing this. (Feel free to reopen if anyone disagrees) |