Signiant Support

Manager backup or maintenance jobs fail with "symbol lookup error" Print


Problem:   
 

The Signiant backup or maintenance jobs fail when trying to access the database. The logs show errors similar to the following:
 

/usr/signiant/dds/db/pgsql/bin/pg_dump: symbol lookup error: /usr/signiant/dds/db/pgsql/bin/pg_dump: undefined symbol: PQconnectdbParams

/usr/signiant/dds/db/pgsql/bin/psql: symbol lookup error: /usr/signiant/dds/db/pgsql/bin/psql: undefined symbol: PQconnectdbParams

Resolution:

 
Verify that the pg_dump executable is linking to the proper libraries using ldd.
 

chuckvm104:root [ ~ ] cd /signiant/dds/db/pgsql/bin
chuckvm104:root [ /signiant/dds/db/pgsql/bin ] ldd ./pg_dump
        linux-vdso.so.1 =>  (0x00007fff837fd000)
        libpq.so.5 => /usr/lib64/libpq.so.5 (0x00002afd013d8000)
        libz.so.1 => /lib64/libz.so.1 (0x0000003cae200000)
        libreadline.so.5 => /usr/lib64/libreadline.so.5 (0x0000003caf200000)
        libtermcap.so.2 => /lib64/libtermcap.so.2 (0x0000003cade00000)
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000003cc1000000)
        libdl.so.2 => /lib64/libdl.so.2 (0x0000003cada00000)
        libm.so.6 => /lib64/libm.so.6 (0x0000003cad600000)
        libc.so.6 => /lib64/libc.so.6 (0x0000003cad200000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00002afd015fb000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003cace00000)

 
These may differ across versions but should be similar. You will also want to check that the libpq.so.5 reported is in fact a link to the Signiant libpq.so library:
 

ls -al /usr/lib64/libpq.so.5 
lrwxrwxrwx 1 root root 38 Mar  6 09:18 /usr/lib64/libpq.so.5 -> /signiant/dds/db/pgsql_90/lib/libpq.so

 
If this file is not a link to the library under the Signiant install directory, create a new link to library installed with the Signiant Manager:
 

ln -s /usr/signiant/dds/db/pgsql_90/lib/libpq.so /usr/lib64/libpq.so.5 
Note: The paths indicated above assume that the default installation directory for the Signiant manager is /usr/signiant/dds.  If your manager is not installed in the default location, adjust the install path accordingly.