Discussion:
Symbol not found in /usr/sbin/cyrmaster on Ubuntu 18.04
Andrew Bernard
2018-06-28 11:01:46 UTC
Permalink
I am unable to start cyrmaster installed from the Ubuntu packages with a
symbol not found error:

# ldd -r /usr/sbin/cyrmaster
linux-vdso.so.1 (0x00007fff2d1bd000)
libcyrus_min.so.0 => /usr/local/lib/libcyrus_min.so.0
(0x00007f2eb4f60000)
libnetsnmpmibs.so.30 => /usr/lib/x86_64-linux-gnu/libnetsnmpmibs.so.30
(0x00007f2eb4ae5000)
libnetsnmpagent.so.30 =>
/usr/lib/x86_64-linux-gnu/libnetsnmpagent.so.30 (0x00007f2eb487c000)
libnetsnmp.so.30 => /usr/lib/x86_64-linux-gnu/libnetsnmp.so.30
(0x00007f2eb45a0000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f2eb4202000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2eb3e11000)
libpcreposix.so.3 => /usr/lib/x86_64-linux-gnu/libpcreposix.so.3
(0x00007f2eb3c0e000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f2eb39f1000)
libsensors.so.4 => /usr/lib/x86_64-linux-gnu/libsensors.so.4
(0x00007f2eb37e2000)
libpci.so.3 => /lib/x86_64-linux-gnu/libpci.so.3 (0x00007f2eb35d4000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f2eb33d0000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
(0x00007f2eb31b1000)
libwrap.so.0 => /lib/x86_64-linux-gnu/libwrap.so.0 (0x00007f2eb2fa7000)
libperl.so.5.26 => /usr/lib/x86_64-linux-gnu/libperl.so.5.26
(0x00007f2eb2baa000)
libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
(0x00007f2eb2732000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2eb53dc000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f2eb24c0000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2
(0x00007f2eb22a5000)
libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1 (0x00007f2eb2087000)
libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007f2eb1e6d000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1
(0x00007f2eb1c35000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f2eb1a2d000)
undefined symbol: lock_nonblocking (/usr/sbin/cyrmaster)

For reasons unknown to me, a Google search for the term lock_nonblocking
returns nothing at all related, which I thought somewhat strange. What am I
missing understanding here?

Andrew
ellie timoney
2018-06-29 02:47:10 UTC
Permalink
Hi,

This sounds like a problem in the package you're using.

lock_nonblocking() is a macro defined in lib/cyr_lock.h, which just
calls lock_setlock(). If it's trying to resolve "lock_nonblocking" as a
symbol, that suggests something has gone awry in the build.
The locking method is chosen by configure automatically, but can be
--with-lock=METHOD force use of METHOD for locking (flock or
fcntl)
For what it's worth, lock_setlock() is defined in lib/lock_fcntl.c and
lib/lock_flock.c. Depending on configure options/etc, one of these will
be linked into libcyrus_min.so, which I can see in your ldd output so
that's probably not the problem. (Also, it's not complaining about
"lock_set", it's complaining about "lock_nonblocking".)
I don't know much about packaging, but it kind of sounds like the
package has somehow been built with no lock method selected.
It's also interesting to note that you're running "/usr/sbin/cyrmaster"
but it's linking against "/usr/local/lib/libcyrus_min.so.0". Do you
possibly have two different builds of Cyrus installed? (One in /usr, one
in /usr/local.)
Have you reported this on the Ubuntu issue tracker?

Cheers,

ellie
I am unable to start cyrmaster installed from the Ubuntu packages with
a symbol not found error:>
# ldd -r /usr/sbin/cyrmaster
linux-vdso.so.1 (0x00007fff2d1bd000)
libcyrus_min.so.0 => /usr/local/lib/libcyrus_min.so.0
(0x00007f2eb4f60000)> libnetsnmpmibs.so.30 => /usr/lib/x86_64-linux-
gnu/libnetsnmpmibs.so.30 (0x00007f2eb4ae5000)> libnetsnmpagent.so.30 => /usr/lib/x86_64-linux-
gnu/libnetsnmpagent.so.30 (0x00007f2eb487c000)> libnetsnmp.so.30 => /usr/lib/x86_64-linux-gnu/libnetsnmp.so.30
(0x00007f2eb45a0000)> libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f2eb4202000)> libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2eb3e11000)> libpcreposix.so.3 => /usr/lib/x86_64-linux-gnu/libpcreposix.so.3
(0x00007f2eb3c0e000)> libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f2eb39f1000)> libsensors.so.4 => /usr/lib/x86_64-linux-gnu/libsensors.so.4
(0x00007f2eb37e2000)> libpci.so.3 => /lib/x86_64-linux-gnu/libpci.so.3
(0x00007f2eb35d4000)> libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
(0x00007f2eb33d0000)> libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
(0x00007f2eb31b1000)> libwrap.so.0 => /lib/x86_64-linux-gnu/libwrap.so.0
(0x00007f2eb2fa7000)> libperl.so.5.26 => /usr/lib/x86_64-linux-gnu/libperl.so.5.26
(0x00007f2eb2baa000)> libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
(0x00007f2eb2732000)> /lib64/ld-linux-x86-64.so.2 (0x00007f2eb53dc000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3
(0x00007f2eb24c0000)> libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2
(0x00007f2eb22a5000)> libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1
(0x00007f2eb2087000)> libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1
(0x00007f2eb1e6d000)> libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1
(0x00007f2eb1c35000)> librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1
(0x00007f2eb1a2d000)> undefined symbol: lock_nonblocking (/usr/sbin/cyrmaster)
For reasons unknown to me, a Google search for the term
lock_nonblocking returns nothing at all related, which I thought
somewhat strange. What am I missing understanding here?>
Andrew
----
Cyrus Home Page: http://www.cyrusimap.org/
https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus
Loading...