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) |