Summary: | Amarok crash on start | ||
---|---|---|---|
Product: | [Applications] amarok | Reporter: | Jonathan <jonathan> |
Component: | general | Assignee: | nsane457 |
Status: | RESOLVED WORKSFORME | ||
Severity: | crash | CC: | fabian, nsane457 |
Priority: | NOR | Keywords: | drkonqi |
Version: | 2.9.0 | ||
Target Milestone: | --- | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | backtrace.txt |
Description
Jonathan
2018-03-03 23:30:20 UTC
Sadly you do not have debugging symbols enabled, so the backtrace is not really useful. Please see also https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports Created attachment 111866 [details]
backtrace.txt
I ran into this bug in Gentoo Linux after building amarok from git as of commit adcbef160f03dcd54c44e3f0ff7a5c1d3c198532 (4/4/2018). This is full gdb backtrace of all threads with symbols.
In my backtrace, the segfault happens in 'get_charset ()' in file
> ../source3/registry/reg_parse_internal.c
In the original submitted backtrace, the symbol is from "/usr/lib/libsmbconf.so.0".
Both of there reference the 'get_charset' symbol from samba even though, looking at the sourcecode, it seems mysql includes its own definition of 'get_charset' in the file "mysys/charset.c:. Is there something about the way amarok loads mysql that could cause it to bind to 'get_charset' from the wrong library?
Could you please not hijack a bug which was about a different version? FWIW: backtraces need to be posted as comments, attachments are not searchable unfortunately. And please do not confirm reports yourself, those need to be confirmed by the developers. (In reply to Myriam Schweingruber from comment #4) > Could you please not hijack a bug which was about a different version? > > FWIW: backtraces need to be posted as comments, attachments are not > searchable unfortunately. And please do not confirm reports yourself, those > need to be confirmed by the developers. Sorry. I'll opened a new bug https://bugs.kde.org/show_bug.cgi?id=392848 Backtrace with libsmbconf debug symbol, you can see: "#6 0x00007f4d74bf46da in get_charset (c=0xe0 <error: Cannot access memory at address 0xe0>) at ../source3/registry/reg_parse_internal.c:220" It's enought? Application: Amarok (amarok), signal: Segmentation fault Using host libthread_db library "/usr/lib/libthread_db.so.1". [Current thread is 1 (Thread 0x7f4d90e2eb40 (LWP 23598))] Thread 3 (Thread 0x7f4d32ffb700 (LWP 23601)): #0 0x00007f4d8c09d35b in pthread_cond_timedwait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007f4d3dbbe7f7 in () at /usr/lib/libmysqld.so.18 #2 0x00007f4d3db78f2c in () at /usr/lib/libmysqld.so.18 #3 0x00007f4d8c097075 in start_thread () at /usr/lib/libpthread.so.0 #4 0x00007f4d8da4853f in clone () at /usr/lib/libc.so.6 Thread 2 (Thread 0x7f4d57087700 (LWP 23600)): #0 0x00007f4d8da39934 in read () at /usr/lib/libc.so.6 #1 0x00007f4d778157c2 in pa_read () at /usr/lib/pulseaudio/libpulsecommon-11.1.so #2 0x00007f4d8472c7af in pa_mainloop_prepare () at /usr/lib/libpulse.so.0 #3 0x00007f4d8472d241 in pa_mainloop_iterate () at /usr/lib/libpulse.so.0 #4 0x00007f4d8472d301 in pa_mainloop_run () at /usr/lib/libpulse.so.0 #5 0x00007f4d8473b6ae in () at /usr/lib/libpulse.so.0 #6 0x00007f4d7784581c in () at /usr/lib/pulseaudio/libpulsecommon-11.1.so #7 0x00007f4d8c097075 in start_thread () at /usr/lib/libpthread.so.0 #8 0x00007f4d8da4853f in clone () at /usr/lib/libc.so.6 Thread 1 (Thread 0x7f4d90e2eb40 (LWP 23598)): [KCrash Handler] #6 0x00007f4d74bf46da in get_charset (c=0xe0 <error: Cannot access memory at address 0xe0>) at ../source3/registry/reg_parse_internal.c:220 #7 0x00007f4d3d9f8e52 in thd_init_client_charset(THD*, unsigned int) () at /usr/lib/libmysqld.so.18 #8 0x00007f4d3d982864 in check_embedded_connection () at /usr/lib/libmysqld.so.18 #9 0x00007f4d3d98a6fe in mysql_real_connect () at /usr/lib/libmysqld.so.18 #10 0x00007f4d3efcf356 in MySqlEmbeddedStorage::init(QString const&) () at /usr/lib/kde4/amarok_storage-mysqlestorage.so #11 0x00007f4d3efd017a in () at /usr/lib/kde4/amarok_storage-mysqlestorage.so #12 0x00007f4d9086d500 in Plugins::PluginManager::checkPluginEnabledStates() () at /usr/lib/libamaroklib.so.1 #13 0x00007f4d9086ea4e in Plugins::PluginManager::PluginManager(QObject*) () at /usr/lib/libamaroklib.so.1 #14 0x00007f4d9086eb4f in Plugins::PluginManager::instance() () at /usr/lib/libamaroklib.so.1 #15 0x00007f4d9085dc38 in MainWindow::MainWindow() () at /usr/lib/libamaroklib.so.1 #16 0x00007f4d90843feb in App::continueInit() () at /usr/lib/libamaroklib.so.1 #17 0x00007f4d908452f5 in App::App() () at /usr/lib/libamaroklib.so.1 #18 0x0000556c75889fba in () #19 0x00007f4d8d97306b in __libc_start_main () at /usr/lib/libc.so.6 #20 0x0000556c7588bfca in _start () Both libmariadbd/libmysqld (loaded by amarok) and libsmbconf (loaded by ffmpeg) . The library which is loaded first takes precedence, which is in this case libsmbconf through ffmpeg. If libmariadbd/libmysqld is loaded first, get_charset resolves to the right library. To force this, just LD_PRELOAD=/usr/lib64/libmariadbd.so.19 amarok makes it work fine here. (In reply to Fabian Vogt from comment #7) > Both libmariadbd/libmysqld (loaded by amarok) and libsmbconf (loaded by > ffmpeg) . > The library which is loaded first takes precedence, which is in this case > libsmbconf through ffmpeg. If libmariadbd/libmysqld is loaded first, > get_charset resolves to the right library. > To force this, just LD_PRELOAD=/usr/lib64/libmariadbd.so.19 amarok makes it > work fine here. Thanks. I don't have the means to test right now so I'm going to close this. |