Application: amarok (2.8.0) Qt Version: 5.10.1 Frameworks Version: 5.43.0 Operating System: Linux 4.15.7-1-ck-piledriver x86_64 Distribution (Platform): Archlinux Packages -- Information about the crash: - What I was doing when the application crashed: Start amarok, crash everytime attempt to launch it. Distribution: Arch The crash can be reproduced every time. -- Backtrace: Application: Amarok (amarok), signal: Segmentation fault Using host libthread_db library "/usr/lib/libthread_db.so.1". [Current thread is 1 (Thread 0x7fe08ffb7b40 (LWP 8063))] Thread 3 (Thread 0x7fe038423700 (LWP 8066)): #0 0x00007fe08b7a5786 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007fe042bc2308 in () at /usr/lib/libmysqld.so.18 #2 0x00007fe042b6f61b in () at /usr/lib/libmysqld.so.18 #3 0x00007fe08b79f08c in start_thread () at /usr/lib/libpthread.so.0 #4 0x00007fe08cc2de7f in clone () at /usr/lib/libc.so.6 Thread 2 (Thread 0x7fe05927f700 (LWP 8065)): #0 0x00007fe08cc1f3d8 in read () at /usr/lib/libc.so.6 #1 0x00007fe077a857c2 in pa_read () at /usr/lib/pulseaudio/libpulsecommon-11.1.so #2 0x00007fe083e3c7af in pa_mainloop_prepare () at /usr/lib/libpulse.so.0 #3 0x00007fe083e3d241 in pa_mainloop_iterate () at /usr/lib/libpulse.so.0 #4 0x00007fe083e3d301 in pa_mainloop_run () at /usr/lib/libpulse.so.0 #5 0x00007fe083e4b6ae in () at /usr/lib/libpulse.so.0 #6 0x00007fe077ab581c in () at /usr/lib/pulseaudio/libpulsecommon-11.1.so #7 0x00007fe08b79f08c in start_thread () at /usr/lib/libpthread.so.0 #8 0x00007fe08cc2de7f in clone () at /usr/lib/libc.so.6 Thread 1 (Thread 0x7fe08ffb7b40 (LWP 8063)): [KCrash Handler] #6 0x00007fe07490cc02 in get_charset () at /usr/lib/libsmbconf.so.0 #7 0x00007fe0429e7242 in thd_init_client_charset(THD*, unsigned int) () at /usr/lib/libmysqld.so.18 #8 0x00007fe04296c154 in check_embedded_connection () at /usr/lib/libmysqld.so.18 #9 0x00007fe042974b09 in mysql_real_connect () at /usr/lib/libmysqld.so.18 #10 0x00007fe058877a85 in MySqlEmbeddedStorage::MySqlEmbeddedStorage(QString const&) () at /usr/lib/kde4/amarok_collection-mysqlecollection.so #11 0x00007fe058876a07 in () at /usr/lib/kde4/amarok_collection-mysqlecollection.so #12 0x00007fe08f8d9834 in CollectionManager::loadPlugins(QList<Collections::CollectionFactory*> const&) () at /usr/lib/libamaroklib.so.1 #13 0x00007fe08f8d9cc9 in CollectionManager::handleNewFactories(QList<Plugins::PluginFactory*> const&) () at /usr/lib/libamaroklib.so.1 #14 0x00007fe08f9f164b in Plugins::PluginManager::init() () at /usr/lib/libamaroklib.so.1 #15 0x00007fe08f9f1d4d in Plugins::PluginManager::PluginManager(QObject*) () at /usr/lib/libamaroklib.so.1 #16 0x00007fe08f9f1e67 in Plugins::PluginManager::instance() () at /usr/lib/libamaroklib.so.1 #17 0x00007fe08f9e3da7 in MainWindow::MainWindow() () at /usr/lib/libamaroklib.so.1 #18 0x00007fe08f9c986b in App::continueInit() () at /usr/lib/libamaroklib.so.1 #19 0x00007fe08f9caaba in App::App() () at /usr/lib/libamaroklib.so.1 #20 0x00005603931e4e80 in () #21 0x00007fe08cb58f4a in __libc_start_main () at /usr/lib/libc.so.6 #22 0x00005603931e6bfa in _start () Possible duplicates by query: bug 369494. Reported using DrKonqi
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.