Kodi crashes on recent Arch

Moderators: mdrjr, odroid

Kodi crashes on recent Arch

Unread postby hansa » Sun Jan 10, 2016 1:20 am

Hallo,

I'm sorry, if I'm posting in the wrong board, this is my first post here.
I've got an Odroid U3 running Arch Linux and Kodi on it.
If I import my music into the database, kodi crashed, not mentioning anything usefull in the crashlog, if I import my video, it first imports everyting, but if I try to access the database Kodi crashed also and then crashes on startup each time.
I've attached a crashlog with debug output where I tried to access the movie database.

Code: Select all
uname -a says:
Linux odroid 3.8.13.30-2-ARCH #3 SMP PREEMPT Mon Oct 5 02:09:55 MDT 2015 armv7l GNU/Linux


Code: Select all
pacman -Qs kodi
local/kodi 15.2-3
    A software media player and entertainment hub for digital media
local/libplatform 1.0.10-2
    Platform support library used by libCEC and binary add-ons for Kodi


The problem exists since Kodi version 15.x with the last 14.x Version everything was ok, but I would like to update Kodi.

Any help would be appreciated.

Hansa
Attachments
kodi_crashlog-20160109_165125.log
(40.49 KiB) Downloaded 81 times
hansa
 
Posts: 4
Joined: Sun Jan 10, 2016 1:07 am
languages_spoken: english, german
ODROIDs: Odroid U3

Re: Kodi crashes on recent Arch

Unread postby OverSun » Sun Jan 10, 2016 2:45 am

gcc 5 compiled kodi must be compiled with --disable-optimisations or it will randomly crash everywhere.
User avatar
OverSun
 
Posts: 1374
Joined: Mon Apr 29, 2013 5:12 pm
languages_spoken: english

Re: Kodi crashes on recent Arch

Unread postby hansa » Sun Jan 10, 2016 4:46 pm

I'm using the pre-compiled version of Kodi, but I've checked the PKGBUILD and it is build with --enable-optimizations flag. I'm not sure about the GCC version used, but as arch is rolling release I think it will be GCC5.

I'll try recompiling the package myself. Does the --disable-optimisations flag have great impact on the performane?
Should I simply disable the flag? Or should I downgrade to GCC 4 and rebuild the standard package?
hansa
 
Posts: 4
Joined: Sun Jan 10, 2016 1:07 am
languages_spoken: english, german
ODROIDs: Odroid U3

Re: Kodi crashes on recent Arch

Unread postby hansa » Mon Jan 11, 2016 12:23 am

I've tried recompiling the package using --disable-optimizations. But Kodi still crashes on startup when I've added video files.

I've pulled the PKGBUILD used to build the standard package and modifed it, trying to optimize the compilation for the u3.

Kodi is configured using the following command:
Code: Select all
 ./configure --prefix=$_prefix --exec-prefix=$_prefix \
    --with-platform=samsung-exynos \
    --enable-codec=mfc \
    --disable-optimizations \
    --enable-debug \
    --disable-gl \
    --enable-gles \
    --disable-openmax \
    --disable-vdpau \
    --disable-vaapi \
    --enable-non-free \
    --disable-optical-drive \
    --with-ffmpeg=shared \
    --with-lirc-device=/run/lirc/lircd \
    ac_cv_type__Bool=yes


But still the same result. As I've used --enable-debug I can debug it using gdb.
Kodi crashes with a SIGSEGV.
The Bracktrace is:
Code: Select all
#0  0xb4a99c00 in obstack_alloc_failed_handler () from /usr/lib/libc.so.6
#1  0x002ed4e4 in std::_Destroy<CMediaSource> (__pointer=<optimized out>) at /usr/include/c++/5.3.0/bits/stl_construct.h:93
#2  std::_Destroy_aux<false>::__destroy<CMediaSource*> (__last=<optimized out>, __first=0xf0b0e0)
    at /usr/include/c++/5.3.0/bits/stl_construct.h:103
#3  std::_Destroy<CMediaSource*> (__last=<optimized out>, __first=<optimized out>) at /usr/include/c++/5.3.0/bits/stl_construct.h:126
#4  std::_Destroy<CMediaSource*, CMediaSource> (__last=<error reading variable: Cannot access memory at address 0xbf0000fc>,
    __first=<error reading variable: Cannot access memory at address 0xbf000104>) at /usr/include/c++/5.3.0/bits/stl_construct.h:151
#5  std::vector<CMediaSource, std::allocator<CMediaSource> >::_M_erase_at_end (
    this=0xe2c544 <CMediaSourceSettings::Get()::sMediaSourceSettings+40>,
    __pos=<error reading variable: Cannot access memory at address 0xbf000104>) at /usr/include/c++/5.3.0/bits/stl_vector.h:1438
#6  std::vector<CMediaSource, std::allocator<CMediaSource> >::clear (
    this=0xe2c544 <CMediaSourceSettings::Get()::sMediaSourceSettings+40>) at /usr/include/c++/5.3.0/bits/stl_vector.h:1212
#7  CMediaSourceSettings::Clear (this=0xe2c51c <CMediaSourceSettings::Get()::sMediaSourceSettings>) at MediaSourceSettings.cpp:143
Backtrace stopped: Cannot access memory at address 0xbf000134


The logfile is still saying nothing at all.

Currently I'm rebuilding Kodi 14.2 using the same configure command to ensure it works with Kodi 14.2.

EDIT: Using the exact same configuration call works building a Kodi 14.2. Does anyone have a clue what might be the issue here?
hansa
 
Posts: 4
Joined: Sun Jan 10, 2016 1:07 am
languages_spoken: english, german
ODROIDs: Odroid U3

Re: Kodi crashes on recent Arch

Unread postby hansa » Tue Jan 12, 2016 3:03 am

Kodi 14.2 is working, but the performance is really bad.
Because of this I've switched to your branch of Kodi with the MFC-Codec enabled and recompiled this. Kodi 15 is still crashing and Kodi 14.2 has a good performance in standalone mode but 1080p H264 video decoding is laggy. The info says that ff-h264 is used to decode, is this correct? Is is possible to tune the performance of Kodi 14?

Otherwise I would appreciate if someone could send me the kodi 14.2 version of ArchLinuxArm, as I can't find it anywhere and don't have it anymore in my cache.

I've debugged Kodi 15 using gdb and it crashes in
xbmc/utils/DatabaseUtils.cpp:372
Code: Select all
    DatabaseResult result;
    for (unsigned int index = 0; index < resultSet.records.size(); index++)
    {
>>>>      result[FieldRow] = index + offset;


I'm no C++ expert but this doesn't look like magic..
DatabaseResult is
Code: Select all
typedef std::map<Field, CVariant> DatabaseResult;

Strange thing is that CVariant is an empty class
Code: Select all
class CVariant;

But a quick lookup at google shows that this is used for some kind of templating (am I right?).
So I assume that assigning an Integer as index + offset returns should work just fine?

gdb Backtrace is
Code: Select all
(gdb) backtrace
#0  0x00377f00 in std::_Rb_tree_iterator<std::pair<Field const, CVariant> > std::_Rb_tree<Field, std::pair<Field const, CVariant>, std::_Select1st<std::pair<Field const, CVariant> >, std::less<Field>, std::allocator<std::pair<Field const, CVariant> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<Field&&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<Field const, CVariant> >, std::piecewise_construct_t const&, std::tuple<Field&&>&&, std::tuple<>&&) ()
#1  0x00a24330 in DatabaseUtils::GetDatabaseResults(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<Field, std::allocator<Field> > const&, std::unique_ptr<dbiplus::Dataset, std::default_delete<dbiplus::Dataset> > const&, std::vector<std::map<Field, CVariant, std::less<Field>, std::allocator<std::pair<Field const, CVariant> > >, std::allocator<std::map<Field, CVariant, std::less<Field>, std::allocator<std::pair<Field const, CVariant> > > > >&) ()
#2  0x00a6d510 in SortUtils::SortFromDataset(SortDescription const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<dbiplus::Dataset, std::default_delete<dbiplus::Dataset> > const&, std::vector<std::map<Field, CVariant, std::less<Field>, std::allocator<std::pair<Field const, CVariant> > >, std::allocator<std::map<Field, CVariant, std::less<Field>, std::allocator<std::pair<Field const, CVariant> > > > >&) ()
#3  0x003306a0 in CVideoDatabase::GetMoviesByWhere(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, CDatabase::Filter const&, CFileItemList&, SortDescription const&) ()
#4  0x003316c4 in CVideoDatabase::GetRecentlyAddedMoviesNav(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, CFileItemList&, unsigned int) ()
#5  0x00a4c9f0 in CRecentlyAddedJob::UpdateVideo() ()
#6  0x00a57a28 in CRecentlyAddedJob::DoWork() ()
#7  0x00a31a30 in CJobWorker::Process() ()
#8  0x00c691a4 in CThread::Action() ()
#9  0x00c69484 in CThread::staticThread(void*) ()
#10 0xb6b0df98 in start_thread () from /usr/lib/libpthread.so.0
#11 0xb49f7640 in ?? () from /usr/lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)


Any ideas?
hansa
 
Posts: 4
Joined: Sun Jan 10, 2016 1:07 am
languages_spoken: english, german
ODROIDs: Odroid U3


Return to Other OS

Who is online

Users browsing this forum: No registered users and 2 guests