tango-db failure - DataBaseds: symbol lookup error

I'm using Ubuntu 16.04.7 Virtual Machine on our network to host a tango database. I have installed everything according to the Ubuntu guidelines here:
Ubuntu installation guidelines
Everything installed successfully, but when I run the TangoTest I get the following results:
/usr/lib/tango/TangoTest test
Can't build connection to TANGO database server, exiting

The tango-db.service seems to startup fine:
sudo systemctl status tango-db
● tango-db.service - LSB: Start the tango control system database daemon
Loaded: loaded (/etc/init.d/tango-db; bad; vendor preset: enabled)
Active: active (exited) since Wed 2022-01-12 11:04:31 SAST; 1min 13s ago
Docs: man:systemd-sysv-generator(8)
Process: 4112 ExecStart=/etc/init.d/tango-db start (code=exited, status=0/SUCCESS)
Jan 12 11:04:22 precise64 systemd[1]: Starting LSB: Start the tango control system database daemon…
Jan 12 11:04:31 precise64 systemd[1]: Started LSB: Start the tango control system database daemon.

But when I run the DataBaseds manually, I get this:
/usr/lib/tango/DataBaseds 2 -ORBendPoint giop:tcp::10000
main(): arrived
/usr/lib/tango/DataBaseds: symbol lookup error: /usr/lib/x86_64-linux-gnu/libtango.so.8: undefined symbol: _ZN9log4tango6LoggerC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi

Also, I saw this logging error in the mysql.service:
sudo systemctl status mysql
● mysql.service - LSB: Start and stop the mysql database server daemon
Loaded: loaded (/etc/init.d/mysql; bad; vendor preset: enabled)
Active: active (running) since Thu 2022-01-13 14:17:48 SAST; 1h 44min ago
Docs: man:systemd-sysv-generator(8)
Process: 3647 ExecStart=/etc/init.d/mysql start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/mysql.service
├─3749 /bin/bash /usr/bin/mysqld_safe
└─3900 /usr/sbin/mysqld –basedir=/usr –datadir=/var/lib/mysql –plugin-dir=/usr/lib/mysql/plugin –user=mysql –log-error=/var/log/mysql

Jan 13 14:18:46 precise64 systemd[1]: Starting LSB: Start and stop the mysql database server daemon…
Jan 13 14:18:48 precise64 mysql[3647]: * Starting MariaDB database server mysqld
Jan 13 14:18:48 precise64 /etc/init.d/mysql[3750]: 220113 14:18:48 mysqld_safe Can't log to error log and syslog at the same time. Remove all –log-
Jan 13 14:17:48 precise64 mysql[3647]: …done.
Jan 13 14:17:48 precise64 systemd[1]: Started LSB: Start and stop the mysql database server daemon.

What am I missing?
Edited 1 week ago
Hi,

Ubuntu 16.06 starts to get quite old now smile
We don't really support that any longer but maybe someone could help you there.
And the Tango version available in Ubuntu 16.04 packages is old too it seems (Tango 8?).

About the undefined symbol when you start the DataBaseds, what is the result of the following command:
`ldd /usr/lib/tango/DataBaseds`

It looks like you're missing a symbol coming from log4tango which was provided in a separate library at that time.
liblog4tango has been merged with libtango since cppTango 9.3.3 I think.

Maybe you're missing that library?

You could also try to build/install Tango from the TangoSourceDistribution if you want to get a more recent version of the Tango software? I think tango 9.3.4 should still compile on Ubuntu 16.04.

Hoping this helps a bit,
Reynald
Rosenberg's Law: Software is easy to make, except when you want it to do something new.
Corollary: The only software that's worth making is software that does something new.
Hi Reynald,

Here is the result of the ldd command:
ldd /usr/lib/tango/DataBaseds
linux-vdso.so.1 => (0x00007ffcc1342000)
libtango.so.8 => /usr/lib/x86_64-linux-gnu/libtango.so.8 (0x00007f233147d000)
liblog4tango.so.5 => /usr/local/lib/liblog4tango.so.5 (0x00007f2331264000)
libmysqlclient.so.20 => /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20 (0x00007f2330cad000)
libomniORB4.so.1 => /usr/lib/libomniORB4.so.1 (0x00007f2330909000)
libomniDynamic4.so.1 => /usr/lib/libomniDynamic4.so.1 (0x00007f2330443000)
libomnithread.so.3 => /usr/lib/libomnithread.so.3 (0x00007f233023d000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f2330020000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f232fc9e000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f232fa88000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f232f6be000)
libzmq.so.5 => /usr/lib/x86_64-linux-gnu/libzmq.so.5 (0x00007f232f458000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f232f254000)
libCOS4.so.1 => /usr/lib/libCOS4.so.1 (0x00007f232e7dc000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f232e4d3000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f232e2b9000)
libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f232e051000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f232dc0c000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2331d6e000)
libsodium.so.18 => /usr/lib/x86_64-linux-gnu/libsodium.so.18 (0x00007f232d9ae000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f232d7a6000)

Can you see what library is missing?
How should I add it? I'll try that first, otherwise I'll try installing directly from the TangoSourceDistribution.
Thanks,
Charl
You seem to have liblog4tango library.
If this library is not empty in your use case (size != 0), then I don't know what is the origin of your error.

We did provide an empty version of this liblog4tangolibrary at some point to ease the transition to the new libtango library already containing log4tango symbols, so maybe you have this version?
Rosenberg's Law: Software is easy to make, except when you want it to do something new.
Corollary: The only software that's worth making is software that does something new.
Ok, so the lib is not empty:
ls -als /usr/local/lib/liblog4tango.so.5.0.1
904 -rwxr-xr-x 1 root root 921773 Jan 28 2021 /usr/local/lib/liblog4tango.so.5.0.1

but some symbol is wrong.
How can I re-install this liblog4tango. What version should I use?
theC
How can I re-install this liblog4tango. What version should I use?

Well, if the Ubuntu 16.04 packages are well prepared, liblog4tango should be installed automatically as dependency with libtango when installing the tango-db package, I guess.

This Ubuntu distribution is too old now to use the Ubuntu search packages web interface, so it will be quite tedious to debug.

The path where liblog4tango is installed (/usr/local/lib/) is different than the one where the tango lib is installed (/usr/lib/x86_64-linux-gnu/).

Maybe you should check whether you don't have several versions of liblog4tango installed on your system.
Is there one under /usr/lib/x86_64-linux-gnu/?

What I would do if I were you would be to:
1. Use a more recent distribution smile
2. Install tango library, tango databaseds and TangoTest from the latest TangoSourceDsitribution
3. If option 1. and 2. are not an option for you, I would uninstall tango-db, tango-test and packages having log4tango in their name.
Then I would reinstall tango-db and see whether the Databaseds still have the same issue.
Rosenberg's Law: Software is easy to make, except when you want it to do something new.
Corollary: The only software that's worth making is software that does something new.
Edited 2 days ago
Yes, it seems that there are more than one version of log4tango installed…
ls -als /usr/lib/x86_64-linux-gnu/ | grep log4tango
0 lrwxrwxrwx 1 root root 21 Apr 7 2016 liblog4tango.so.5 -> liblog4tango.so.5.0.0
100 -rw-r–r– 1 root root 101568 Apr 7 2016 liblog4tango.so.5.0.0
ls -als /usr/local/lib/ | grep log4tango
4 -rwxr-xr-x 1 root root 970 Jan 28 2021 liblog4tango.la
0 lrwxrwxrwx 1 root root 21 Jan 28 2021 liblog4tango.so -> liblog4tango.so.5.0.1
0 lrwxrwxrwx 1 root root 21 Jan 28 2021 liblog4tango.so.5 -> liblog4tango.so.5.0.1
904 -rwxr-xr-x 1 root root 921773 Jan 28 2021 liblog4tango.so.5.0.1

Should I remove the older one?
theC
Should I remove the older one?

I would use the one under /usr/lib/x86_64-linux-gnu/ and move or remove the one under /usr/local/lib so tango-db does not try to use it.
Check with ldd before running the tango databaseds to ensure it is using the one under /usr/lib/x86_64-linux-gnu/
Rosenberg's Law: Software is easy to make, except when you want it to do something new.
Corollary: The only software that's worth making is software that does something new.
But maybe there is something wrong in the Ubuntu 16 packages.

liblog4tango.so.5.0.1 installed under /usr/local/lib was probably installed as a dependency on 1 package (maybe tango-test?) whereas the one installed under /usr/lib/x86_64-linux-gnu/ was installed with some other package.

I would try to use the same liblog4tango lib as the one installed when libtango.so.8 was installed, which is probably the one in /usr/lib/x86_64-linux-gnu/ because this is where libtango.so.8 has been installed too.
Rosenberg's Law: Software is easy to make, except when you want it to do something new.
Corollary: The only software that's worth making is software that does something new.
 
Register or login to create to post a reply.