Linux Bug with Arch ARM kodi package, seeking advice to debug
#1
Bug 
Kodi crashes on my Raspberry Pi2 running Arch ARM (kodi-16.0-1) upon trying to connect to my mysql shared database which worked perfectly under the 15.x series. If I use a virgin kodi profile (ie without the info for it to connect to the mysqld in advancedsettings.xml, it works as expected).

When I inspect the kodi.service on the RPi2, I find this but am unsure how to proceed:

Code:
% sudo journalctl -u kodi
Mar 03 18:04:46 bedroom systemd[1]: Started Starts an instance of Kodi.
Mar 03 18:04:48 bedroom kodi-standalone[1022]: /usr/lib/kodi/kodi.bin: relocation error: /usr/lib/kodi/kodi.bin: symbol mysql_init, version libmysqlclient_16 not defined in file libmysqlclient.so.18 with link time reference
Mar 03 18:04:50 bedroom kodi-standalone[1022]: /usr/lib/kodi/kodi.bin: relocation error: /usr/lib/kodi/kodi.bin: symbol mysql_init, version libmysqlclient_16 not defined in file libmysqlclient.so.18 with link time reference
Mar 03 18:04:53 bedroom kodi-standalone[1022]: /usr/lib/kodi/kodi.bin: relocation error: /usr/lib/kodi/kodi.bin: symbol mysql_init, version libmysqlclient_16 not defined in file libmysqlclient.so.18 with link time reference
Mar 03 18:04:53 bedroom kodi-standalone[1022]: /usr/bin/kodi --standalone -l /run/lirc/lircd has exited in an unclean state 3 times in the last 7 seconds.

Here is the complete kodi log from the RPi2 box.

Here is a link to the PKGBUILD file which shows you exactly how the kodi package has been configured and compiled... I am not sure if something is wrong with it, or with the corresponding libmariadbclient package or with an upstream bug in kodi itself.

Thanks!

EDIT: removed full log from post.
Need help programming a Streamzap remote?
Reply
#2
Please don't post logs directly to the forum.

And you're probably better off posting on the Arch forum as this looks like a distribution/packaging issue, and not a Kodi issue.
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
#3
grep for mysql in that PKGBUILD, its not there...
edit: ok, mariadb..

anyway, looks like either kodi was linked against another mysql/mariadb version or similar.
Also -Ofast has been reported for causing issues.
Reply
#4
Thanks for the replies, guys. I did open a thread in the distro boards too.
Need help programming a Streamzap remote?
Reply
#5
@wsnipex - I removed the -Ofast option from the PKGBUILD and compiled on my RPi2 and like the distro provided packages, I can use the resulting binaries with a fresh kodi profile (ie one not using the mysql database), but I get the same errors and crash when I try connecting to the mysqld as I did before with the original package.

I can also verify that the mysql database works fine by running kodi on a totally new x86_64 box using the advancedsettings.xml that allows the access so whatever is wrong seems to be with the Arch ARM packages (either kodi or mariadb or something else).

EDIT: On Arch ARM, libmysqlclient.so.18 is provided by a the libmariadbclient package. You can see its current PKGBUILD here. Is there anything in there that might be to blame? If I diff the Arch Linux x86_64 PKGBUILD against the Arch ARM PKGBUILD for this, I see only one difference which is commented in the PKGBUILD

Code:
# ALARM: Kevin Mihelich <[email protected]>
#  - disable mroonga storage engine (doesn't build on ARM)
...
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
Need help programming a Streamzap remote?
Reply
#6
http://forum.kodi.tv/showthread.php?tid=...ht=mariadb maybe?
mariadb seems to break more often then not these days..
Reply
#7
and please run readelf on your mariadb lib.

here is how it looks on ubuntu:
readelf -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so | grep mysql_init
700: 000000000003ac20 243 FUNC GLOBAL DEFAULT 12 mysql_init@@libmysqlclient_18
1451: 000000000003ad50 586 FUNC GLOBAL DEFAULT 12 mysql_init_character_set@@libmysqlclient_18
Reply
#8
I'll take a look at the thread you posted. Per your suggestion on the RPi2:
Code:
% readelf -s /usr/lib/libmysqlclient.so.18.0.0 | grep mysql_init
   462: 00018618     0 FUNC    GLOBAL DEFAULT   12 mysql_init@@libmysqlclient_16
   531: 00018618   232 FUNC    GLOBAL DEFAULT   12 mysql_init@@libmysqlclient_18

And on an x86_64 box:
Code:
% readelf -s /usr/lib/libmysqlclient.so.18.0.0 | grep mysql_init
   596: 0000000000028340   259 FUNC    GLOBAL DEFAULT   12 mysql_init@@libmysqlclient_18
   597: 0000000000028340     0 FUNC    GLOBAL DEFAULT   12 mysql_init@libmysqlclient_16

Not sure what I'm looking at here but clearly the Arch ARM and Arch x86_64 libs are different from the output you posted.
Need help programming a Streamzap remote?
Reply
#9
In the Arch Linux ARM forum, someone suggested it might be related to:

https://bugs.archlinux.org/task/48394

And indeed it might be because downgrading to libmariadbclient-10.1.11-1 makes kodi 16 work for me.
Reply
#10
Yes, I too can confirm downgrading libmariadbclient (10.1.12-2 -> 10.1.11-1) allows kodi-rpi to work with the mariadb. Thank you very much for posting!
Need help programming a Streamzap remote?
Reply

Logout Mark Read Team Forum Stats Members Help
Bug with Arch ARM kodi package, seeking advice to debug0