0

I have CentOS 7 (3.10.0-693.el7.x86_64) from Pivotal Greenplum Sandbox VM.

I tried to install OpenLDAP:

sudo yum install openldap openldap-servers openldap-clients -y 

But when I run slappasswd -s mypassword, I got a weird error below:

slappasswd: symbol lookup error: slappasswd: undefined symbol: ber_sockbuf_io_udp

I have not seen this anywhere even if I use a blank Centos 7 from scratch.

So what caused slappasswd to break and how to fix it?

UPDATE 1

I executed ldd /usr/sbin/slappasswd and here is the output:

linux-vdso.so.1 =>  (0x00007ffcb7dd3000)
libldap_r-2.4.so.2 => /usr/local/greenplum-db/./lib/libldap_r-2.4.so.2 (0x00007f285ed37000)
liblber-2.4.so.2 => /usr/local/greenplum-db/./lib/liblber-2.4.so.2 (0x00007f285eb29000)
libdb-5.3.so => /lib64/libdb-5.3.so (0x00007f285e762000)
libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007f285e545000)
libnss3.so => /lib64/libnss3.so (0x00007f285e21a000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f285dffe000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f285ddc7000)
libslapi-2.4.so.2 => /lib64/libslapi-2.4.so.2 (0x00007f285dba6000)
libltdl.so.7 => /lib64/libltdl.so.7 (0x00007f285d99c000)
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f285d791000)
libc.so.6 => /lib64/libc.so.6 (0x00007f285d3cd000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f285d1b3000)
libssl.so.1.0.0 => /usr/local/greenplum-db/./lib/libssl.so.1.0.0 (0x00007f285cf41000)
libcrypto.so.1.0.0 => /usr/local/greenplum-db/./lib/libcrypto.so.1.0.0 (0x00007f285caba000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f285c8b6000)
libnssutil3.so => /lib64/libnssutil3.so (0x00007f285c689000)
libplc4.so => /lib64/libplc4.so (0x00007f285c483000)
libplds4.so => /lib64/libplds4.so (0x00007f285c27f000)
libnspr4.so => /lib64/libnspr4.so (0x00007f285c041000)
/lib64/ld-linux-x86-64.so.2 (0x000056487cd59000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007f285be3d000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f285bc24000)
librt.so.1 => /lib64/librt.so.1 (0x00007f285ba1b000)
1

Your executable probably links to the wrong library.

You can use ldd /<insert path to slappasswd here>/slappasswd to find out which dynamic libraries are pulled in. Use e.g. whereis slappasswd to find its path.

Have a look here where such a case is described.

Update:

Changing the directory order on the LD path did sort out matters for @HP.:

export LD_LIBRARY_PATH=/lib64:$LD_LIBRARY_PATH
| improve this answer | |
  • I have updated the question with the result from ldd. So I guess you are right. A bunch of them is pointing to /usr/local/greenplum-db/./lib instead. How do I fix that? – HP. Jan 7 '18 at 21:35
  • 1
    You wrote you use a Privotal Greenplum Sandbox VM. So that arrangement might be on purpose. If you rename /usr/local/greenplum-db/lib to /usr/local/greenplum-db/lib.old it might result in a working slappasswd but in a broken Greenplum installation. If you need both working I would try to get support from the Greenplum folks, it might be that installing the extra OpenLDAP package was not the proper step here. – mvw Jan 7 '18 at 22:03
  • I found out doing this did the trick export LD_LIBRARY_PATH=/lib64:$LD_LIBRARY_PATH. If you add into answer, I can accept it. Thanks for the hints. – HP. Jan 8 '18 at 5:33
  • Glad to hear you could solve your issues. – mvw Jan 8 '18 at 7:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.