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:
The tango-db.service seems to startup fine:
But when I run the DataBaseds manually, I get this:
Also, I saw this logging error in the mysql.service:
What am I missing? |
|
|
---|---|
Hi, Ubuntu 16.06 starts to get quite old now … 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:
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:
but some symbol is wrong. How can I re-install this liblog4tango. What version should I use? |
|
|
---|---|
theC 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 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. |
|
|
---|---|
Yes, it seems that there are more than one version of log4tango installed…
Should I remove the older one? |
|
|
---|---|
theC 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. |
|
|
---|---|
ReynaldSo, I installed a fresh Ubuntu 20.04 system and then installed the mariadb package without errors. I then tried to install the tango-db & tango-tester packages and got these errors:
Should I rather get the latest source code from github? https://github.com/tango-controls/TangoSourceDistribution/releases/tag/9.3.4 |