11.1 audacious undefined symbol after online update

Hi, I was using audacious happily, but after the dist-update last week I can’t get is working anymore. The error message is:
audacious2: symbol lookup error: audacious2: undefined symbol: index_new
Version: audacious-2.2-1.pm.5.1
uname -a output is:
Linux linux-9b84 2.6.27.39-0.2-default #1 SMP 2009-11-23 12:57:38 +0100 x86_64 x86_64 x86_64 GNU/Linux

Deleting .config/audacious, .local/share/audacious, and .cache/audacious doesn’t help (it did with a similar problem before).
Any hints how to get this program working again?

Looks like a dependancy problem with some libs…
Try reinstalling the xspf library

Unfortunately this didn’t solve the problem. The xspf lib wasn’t installed before (there is no dependency of audacious defined for thgis, otherwise it would have been…), but after installing it the error message remains the same. So there mus be another lib being changed by the update, which now doesn’t yield the symbol anymore.
:frowning:

ltrace for audacious2 ends with:
g_signal_connect_data(0x6ac800, 0x47675b, 0x41db00, 0, 0) = 4
g_signal_connect_data(0x6ac800, 0x439940, 0x41daa0, 0, 0) = 5
sigemptyset(0x006870a0) = 0
sigaddset(0x006870a0, 1) = 0
sigaddset(0x006870a0, 2) = 0
sigaddset(0x006870a0, 3) = 0
sigaddset(0x006870a0, 15) = 0
sigprocmask(0, 0x006870a0, NULL) = 0
g_thread_create_full(0x41da60, 0, 0, 0, 0) = -1
+++ killed by SIGTRAP +++

Provide the results of following commands;

rpm -qa | grep -i audacious
rpm -qa | grep -i libaud
rpm -q libSAD2

here they are:
~> rpm -qa | grep -i audacious
audacious-2.2-1.pm.5.1
audacious-plugins-2.2-0.pm.3.1

~> rpm -qa | grep -i libaud
libaudio2-1.9.2-0.pm.2.2
libaudcore1-2.2-1.pm.5.1
libaudid3tag2-2.2-1.pm.5.1
libaudclient2-2.2-1.pm.5.1
libaudgui1-2.2-1.pm.5.1

~> rpm -q libSAD2
libSAD2-2.2-1.pm.5.1

Hrm, at least the file versions are correct. I’ll install it on my 11.1 box here and see what happens.

edit:
Works on 11.1.

Run strace on the binary?

I tried to resolve the problem by removing all the packages belonging to audacious and reinstalling them anew - without any change of the result. :frowning:
Thanks in advance for your help! :wink:

Sad to hear that it is something in just my system.

The output of strace is clearly lengthy, I append the last lines - but I cannot see the point where the message is triggered

rename("/home/ralf/.config/audacious/config.tmp", “/home/ralf/.config/audacious/config”) = 0
open("/home/ralf/.mcs-backend", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/mcs-backend", O_RDONLY) = -1 ENOENT (No such file or directory)
mkdir("/home", 0755) = -1 EEXIST (File exists)
mkdir("/home/ralf", 0755) = -1 EEXIST (File exists)
mkdir("/home/ralf/.config", 0755) = -1 EEXIST (File exists)
mkdir("/home/ralf/.config/audacious", 0755) = -1 EEXIST (File exists)
open("/home/ralf/.config/audacious/config", O_RDONLY) = 10
fstat(10, {st_mode=S_IFREG|0644, st_size=0, …}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6e6f035000
read(10, “”, 4096) = 0
close(10) = 0
munmap(0x7f6e6f035000, 4096) = 0
open("/home/ralf/.config/audacious/config.tmp", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 10
close(10) = 0
rename("/home/ralf/.config/audacious/config.tmp", “/home/ralf/.config/audacious/config”) = 0
open("/home/ralf/.mcs-backend", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/mcs-backend", O_RDONLY) = -1 ENOENT (No such file or directory)
mkdir("/home", 0755) = -1 EEXIST (File exists)
mkdir("/home/ralf", 0755) = -1 EEXIST (File exists)
mkdir("/home/ralf/.config", 0755) = -1 EEXIST (File exists)
mkdir("/home/ralf/.config/audacious", 0755) = -1 EEXIST (File exists)
open("/home/ralf/.config/audacious/config", O_RDONLY) = 10
fstat(10, {st_mode=S_IFREG|0644, st_size=0, …}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6e6f035000
read(10, “”, 4096) = 0
close(10) = 0
munmap(0x7f6e6f035000, 4096) = 0
open("/home/ralf/.config/audacious/config.tmp", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 10
close(10) = 0
rename("/home/ralf/.config/audacious/config.tmp", “/home/ralf/.config/audacious/config”) = 0
open("/home/ralf/.mcs-backend", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/mcs-backend", O_RDONLY) = -1 ENOENT (No such file or directory)
mkdir("/home", 0755) = -1 EEXIST (File exists)
mkdir("/home/ralf", 0755) = -1 EEXIST (File exists)
mkdir("/home/ralf/.config", 0755) = -1 EEXIST (File exists)
mkdir("/home/ralf/.config/audacious", 0755) = -1 EEXIST (File exists)
open("/home/ralf/.config/audacious/config", O_RDONLY) = 10
fstat(10, {st_mode=S_IFREG|0644, st_size=0, …}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6e6f035000
read(10, “”, 4096) = 0
close(10) = 0
munmap(0x7f6e6f035000, 4096) = 0
open("/home/ralf/.config/audacious/config.tmp", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 10
close(10) = 0
rename("/home/ralf/.config/audacious/config.tmp", “/home/ralf/.config/audacious/config”) = 0
write(7, “Populating included interfaces
“, 31) = 31
writev(2, {”/usr/bin/audacious2”, 19}, {": “, 2}, {“symbol lookup error”, 19}, {”: “, 2}, {”/usr/bin/audacious2", 19}, {": “, 2}, {“undefined symbol: index_new”, 27}, {”", 0}, {"", 0}, {"
", 1}], 10/usr/bin/audacious2: symbol lookup error: /usr/bin/audacious2: undefined symbol: index_new
) = 91
exit_group(127) = ?

Running ldconfig as root and then trying Audacious doesn’t help either?

No, that doesn’t help either - the result stays the same.

Does undefined symbol mean the same as an unresolved reference when linking with static libs?
If so - I don’t know how to query a shared lib for the external symbols - nm obviously doesn’t work for shared ones (I tried with /usr/lib64/libaudid3tag.so.2.0.0, since with the preceding discussion this seemed to be a candidate for the missing symbol)

O.K, google helps. Now I know that ‘nm -C -D’ shows the symbols in shared libs and using this I found that index_new is used in four shared libs of audacious, but has to be resolved elsewhere:
----- /usr/lib64/audacious/Container/xspf.so
U index_new
----- /usr/lib64/audacious/Container/m3u.so
U index_new
----- /usr/lib64/audacious/Container/pls.so
U index_new
----- /usr/lib64/audacious/General/skins.so
U index_new
----- /usr/lib64/audacious/General/gtkui.so
U index_new

And by searchiing all the libs I found that it is to be found in
----- /usr/lib64/libaudcore.so.1.0.0
0000000000006180 T index_new
This one is in version:
rpm -q libaudcore1
libaudcore1-2.2-1.pm.5.1

Why audacious isn’t able to find it, remains to be resolved…

If the library isn’t found the error is different. It complains about an “undefined symbol” because it has started to search for symbols, so all libraries have been loaded.

So… I would say somehow it is using a different library (previous manual installation in /usr/local?). Use

ldd $(which audacious2) | fgrep libaudcore

to see which library it’s finding.

Many thanks! That’s the solution - long ago I tried a manual install of audacious. I deleted the executable deleted before installing the package from packman - but the libs remained in /usr/local…my fault (as it is most of the time. In German this is called: DAU ) :shame:

Now there is only one error masseage when starting the program
> audacious2
alsa-gapless: snd_device_name_hint failed: Invalid argument.

but this seems to be neglectable - at least the program does work despite of this one.
:slight_smile:

Many thanks for the advice - and in the course of the solution of this problem I learnt some additional commands to pinpoint possible error sources, which might be helpful on other occasions.