Skip to Content
0

Error when using Kerberos authentication using isql64: undefined symbol: pthread_once

Jan 26, 2017 at 07:20 PM

92

avatar image
Former Member

I'm seeing the following error when attempting to use ASE 15.7 SP138's isql64 binary with Kerberos:

~$ kinit -kt sybase.keytab sybase
~$ isql64 -SASE1570_S1 -V
isql64: symbol lookup error: /opt/sybase/15-0/OCS-15_0/lib/libsybskrb64.so.15.7.0.13: undefined symbol: pthread_once

I've done some digging, and it appears that the binary may have been improperly linked? nm shows me an unresolved symbol for pthread_once but not linked properly to glibc:

~$ nm libsybskrb64.so.15.7.0.13 | grep U
                 U __strtok_r@@GLIBC_2.2.5
                 U dlclose@@GLIBC_2.2.5
                 U dlerror@@GLIBC_2.2.5
                 U dlopen@@GLIBC_2.2.5
                 U dlsym@@GLIBC_2.2.5
                 U fprintf@@GLIBC_2.2.5
                 U pthread_once
                 U puts@@GLIBC_2.2.5
                 U stderr@@GLIBC_2.2.5
                 U strchr@@GLIBC_2.2.5
                 U strncat@@GLIBC_2.2.5
                 U strncpy@@GLIBC_2.2.5
                 U strstr@@GLIBC_2.2.5

Now, luckily we have an older version of 15.7 laying around, and I ran the same command against the v.10 library, which shows that pthread_once didn't previously exist:

~]$ nm libsybskrb64.so.15.7.0.10 | grep U
                 U __strtok_r@@GLIBC_2.2.5
                 U dlclose@@GLIBC_2.2.5
                 U dlerror@@GLIBC_2.2.5
                 U dlopen@@GLIBC_2.2.5
                 U dlsym@@GLIBC_2.2.5
                 U fprintf@@GLIBC_2.2.5
                 U pthread_mutex_lock@@GLIBC_2.2.5
                 U pthread_mutex_unlock@@GLIBC_2.2.5
                 U puts@@GLIBC_2.2.5
                 U stderr@@GLIBC_2.2.5
                 U strchr@@GLIBC_2.2.5
                 U strncat@@GLIBC_2.2.5
                 U strncpy@@GLIBC_2.2.5
                 U strstr@@GLIBC_2.2.5

When I copy the v.10 kerberos library over v.13, isql64 works... however we don't want to run in production like if it will cause issues.

Is this a compile-time linker issue (everything I've searched for says yes), or could this some other kind of environment issue? If the former, can we safely uses the old binary (libsybskrb64.so.15.7.0.10) in place of the newer broken one (libsybskrb64.so.15.7.0.13), or do we need to request updated binaries?

Thanks.

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

1 Answer

Ryan Hansen
Oct 12, 2017 at 09:10 PM
0

Hi,

This error is cause by using nonthreaded isql with kerberos.

Use the _r binaries and this should work.

KBA# 1964124

Regards,
Ryan

Share
10 |10000 characters needed characters left characters exceeded