Skip to Content
avatar image
Former Member

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

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.

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • Oct 12, 2017 at 09:10 PM

    Hi,

    This error is cause by using nonthreaded isql with kerberos.

    Use the _r binaries and this should work.

    KBA# 1964124

    Regards,
    Ryan

    Add comment
    10|10000 characters needed characters exceeded