Eos: symbol lookup error: undefined symbol

Hi there,

The problems is, eos doesn’t launch at all on my machine, logging error about missing symbol:

$ eos
eos: symbol lookup error: eos: undefined symbol: _ZN5XrdCl3URLC1EPKc 

I installed eos-client and all dependencies on Ubuntu 18.04.1 and Linux Mint 19.2 (which also based on 18.04). These are repos I’ve added by apt:

deb http://storage-ci.web.cern.ch/storage-ci/debian/eos/citrine/ bionic tag
deb http://storage-ci.web.cern.ch/storage-ci/debian/xrootd/ bionic release

This is what ‘dpkg -s eos-client’ says:

Package: eos-client
Status: install ok installed
Priority: optional
Section: misc
Installed-Size: 5066
Maintainer: Jozsef Makai <jozsef.makai@cern.ch>
Architecture: amd64
Source: eos
Version: 4.5.9
Depends: libattr1 (>= 1:2.4.46-8), libc6 (>= 2.14), libcurl4 (>= 7.16.2),
libgcc1 (>= 1:4.2), libprotobuf10, libreadline7 (>= 6.0), libssl1.1 (>= 1.1.0),
libstdc++6 (>= 6), libuuid1 (>= 2.16), xrootd-client-libs, xrootd-libs,
zlib1g (>= 1:, systemd, xrootd-client
 /etc/fuse.conf.eos 27aaec6299ba4ea3128381333b94acd2
Description: EOS client package
Homepage: http://eos.web.cern.ch/

I also looked at ‘ldd /usr/bin/eos’ output, but it didn’t find any unresolved shared libs.

So where the problem could be? Thanks!


Most of the time when I’ve encountered this kind of symbol table problem it was because the xrootd-client installed on the machine is a different major version than the one eos-client was compiled against.

Could you post the xrootd version you have installed?

There was a problem with the Ubuntu repos where a xrootd-7.7.7 version was uploaded, which will not work. In case you have that version, please remove it and install either 4.10.1 or one of the latest release candidates (4.11.0-rc1 or 4.11.0-rc2).


apt-get install xrootd-client=4.10.1 xrootd-client-libs=4.10.1 xrootd-libs=4.10.1 

Best Regards,

This perfectly works, thanks!

The error came back, but this time xrootd-client=4.10.1 (and also 4.11.0) is not available anymore:

$ sudo apt-get install xrootd-client=4.10.1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Version '4.10.1' for 'xrootd-client' was not found

So what should I do to work around the undefined symbol error?

$ sudo apt-get -y install eos-client 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  xrootd-client xrootd-client-libs xrootd-libs xrootd-server-libs
The following NEW packages will be installed:
  eos-client xrootd-client xrootd-client-libs xrootd-libs xrootd-server-libs
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/3 392 kB of archives.
After this operation, 12,9 MB of additional disk space will be used.
Selecting previously unselected package xrootd-libs.
... etc etc ...

telzhov@nu76-208 ~
$ eos
eos: symbol lookup error: eos: undefined symbol: _ZN9XrdSysDNS11getHostNameEPKcPPc



This looks again like incompatible ABI between installed XRootD libraries and the libraries the EOS client was compiled against / expects.

Which version of eos-client and xrootd-client are you using?

I would recommend eos-client-4.6.8 together with xrootd-4.11.2.
This setup worked for me.

EOS repository: deb http://storage-ci.web.cern.ch/storage-ci/debian/eos/citrine/ bionic tag
XRootD repository: deb http://storage-ci.web.cern.ch/storage-ci/debian/xrootd/ bionic release

Note: the XRootD repo also contains version 5.0.0-rc1, which you should avoid.


Ah, now I see the problem was in my eos.list:

deb [arch=amd64] http://storage-ci.web.cern.ch/storage-ci/debian/xrootd/ bionic master

So xrootd packages of version 4.11.2 were unavailable in this repo. Replacement master with release solved the problem.

Thank you!