Application: amarok (2.9.70) Qt Version: 5.15.1 Frameworks Version: 5.75.0 Operating System: Linux 5.9.1-1-default x86_64 Windowing system: X11 Distribution: "openSUSE Tumbleweed" -- Information about the crash: - What I was doing when the application crashed: right-click song in playlist -> edit track details -> go to lyrics, insert them -> click save and Amarok crashes Changing Tags do not cause a crash but even a single char change at lyrics are enough to cause the crash The crash can be reproduced every time. -- Backtrace: Application: Amarok (amarok), signal: Segmentation fault [New LWP 6925] [New LWP 6926] [New LWP 6927] [New LWP 6928] [New LWP 6929] [New LWP 6939] [New LWP 6945] [New LWP 6946] [New LWP 6947] [New LWP 6948] [New LWP 6949] [New LWP 6950] [New LWP 6951] [New LWP 6952] [New LWP 6953] [New LWP 6954] [New LWP 6955] [New LWP 6956] [New LWP 6957] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". 0x00007f076ccd4a6f in poll () from /lib64/libc.so.6 [Current thread is 1 (Thread 0x7f075bee8080 (LWP 6922))] Thread 20 (Thread 0x7f06e37fe640 (LWP 6957)): #0 0x00007f076ccd4a6f in poll () at /lib64/libc.so.6 #1 0x00007f0763031fbe in () at /usr/lib64/libglib-2.0.so.0 #2 0x00007f07630320df in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #3 0x00007f076d2b3a9b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f06d4000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #4 0x00007f076d25aeeb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f06e37fd480, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141 #5 0x00007f076d07bc9e in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #6 0x00007f076d07cde1 in QThreadPrivate::start(void*) (arg=0x559639d23620) at thread/qthread_unix.cpp:329 #7 0x00007f076af493e9 in start_thread () at /lib64/libpthread.so.0 #8 0x00007f076ccdfb73 in clone () at /lib64/libc.so.6 Thread 19 (Thread 0x7f06e3fff640 (LWP 6956)): #0 0x00007f07630830b9 in g_mutex_lock () at /usr/lib64/libglib-2.0.so.0 #1 0x00007f0763031134 in g_main_context_release () at /usr/lib64/libglib-2.0.so.0 #2 0x00007f0763031f7c in () at /usr/lib64/libglib-2.0.so.0 #3 0x00007f07630320df in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #4 0x00007f076d2b3a9b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f06dc000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #5 0x00007f076d25aeeb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f06e3ffe480, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141 #6 0x00007f076d07bc9e in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #7 0x00007f076d07cde1 in QThreadPrivate::start(void*) (arg=0x559639d228d0) at thread/qthread_unix.cpp:329 #8 0x00007f076af493e9 in start_thread () at /lib64/libpthread.so.0 #9 0x00007f076ccdfb73 in clone () at /lib64/libc.so.6 Thread 18 (Thread 0x7f06f9dc1640 (LWP 6955)): #0 0x00007f076ccd4a6f in poll () at /lib64/libc.so.6 #1 0x00007f0763031fbe in () at /usr/lib64/libglib-2.0.so.0 #2 0x00007f07630320df in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #3 0x00007f076d2b3a9b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f06e8000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #4 0x00007f076d25aeeb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f06f9dc0460, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141 #5 0x00007f076d07bc9e in QThread::exec() (this=this@entry=0x5596397cf050) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #6 0x00007f076b4072d5 in QQmlThreadPrivate::run() (this=0x5596397cf050) at /usr/src/debug/libqt5-qtdeclarative-5.15.1-2.1.x86_64/src/qml/qml/ftw/qqmlthread.cpp:155 #7 0x00007f076d07cde1 in QThreadPrivate::start(void*) (arg=0x5596397cf050) at thread/qthread_unix.cpp:329 #8 0x00007f076af493e9 in start_thread () at /lib64/libpthread.so.0 #9 0x00007f076ccdfb73 in clone () at /lib64/libc.so.6 Thread 17 (Thread 0x7f06fa7fc640 (LWP 6954)): #0 0x00007f076af4f6b2 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0 #1 0x00007f076d082dfb in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., deadline=..., this=0x5596394df580) at thread/qwaitcondition_unix.cpp:146 #2 QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x5596394cde30, deadline=...) at thread/qwaitcondition_unix.cpp:225 #3 0x00007f076c111d73 in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #4 0x00007f076c1120a9 in () at /usr/lib64/libKF5ThreadWeaver.so.5 #5 0x00007f076c10ffd2 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #6 0x00007f076c110ac0 in ThreadWeaver::Thread::run() () at /usr/lib64/libKF5ThreadWeaver.so.5 #7 0x00007f076d07cde1 in QThreadPrivate::start(void*) (arg=0x7f06f0003910) at thread/qthread_unix.cpp:329 #8 0x00007f076af493e9 in start_thread () at /lib64/libpthread.so.0 #9 0x00007f076ccdfb73 in clone () at /lib64/libc.so.6 Thread 16 (Thread 0x7f06faffd640 (LWP 6953)): #0 0x00007f076af4f6b2 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0 #1 0x00007f076d082dfb in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., deadline=..., this=0x5596394df580) at thread/qwaitcondition_unix.cpp:146 #2 QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x5596394cde30, deadline=...) at thread/qwaitcondition_unix.cpp:225 #3 0x00007f076c111d73 in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #4 0x00007f076c1120a9 in () at /usr/lib64/libKF5ThreadWeaver.so.5 #5 0x00007f076c10ffd2 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #6 0x00007f076c110ac0 in ThreadWeaver::Thread::run() () at /usr/lib64/libKF5ThreadWeaver.so.5 #7 0x00007f076d07cde1 in QThreadPrivate::start(void*) (arg=0x7f06ec0030e0) at thread/qthread_unix.cpp:329 #8 0x00007f076af493e9 in start_thread () at /lib64/libpthread.so.0 #9 0x00007f076ccdfb73 in clone () at /lib64/libc.so.6 Thread 15 (Thread 0x7f06fb7fe640 (LWP 6952)): #0 0x00007f076af4f6b2 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0 #1 0x00007f076d082dfb in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., deadline=..., this=0x5596394df580) at thread/qwaitcondition_unix.cpp:146 #2 QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x5596394cde30, deadline=...) at thread/qwaitcondition_unix.cpp:225 #3 0x00007f076c111d73 in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #4 0x00007f076c1120a9 in () at /usr/lib64/libKF5ThreadWeaver.so.5 #5 0x00007f076c10ffd2 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #6 0x00007f076c11211e in () at /usr/lib64/libKF5ThreadWeaver.so.5 #7 0x00007f076c10ffd2 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #8 0x00007f076c11211e in () at /usr/lib64/libKF5ThreadWeaver.so.5 #9 0x00007f076c10ffd2 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #10 0x00007f076c11211e in () at /usr/lib64/libKF5ThreadWeaver.so.5 #11 0x00007f076c10ffd2 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #12 0x00007f076c11211e in () at /usr/lib64/libKF5ThreadWeaver.so.5 #13 0x00007f076c10ffd2 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #14 0x00007f076c11211e in () at /usr/lib64/libKF5ThreadWeaver.so.5 #15 0x00007f076c10ffd2 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #16 0x00007f076c110ac0 in ThreadWeaver::Thread::run() () at /usr/lib64/libKF5ThreadWeaver.so.5 #17 0x00007f076d07cde1 in QThreadPrivate::start(void*) (arg=0x7f06f4003910) at thread/qthread_unix.cpp:329 #18 0x00007f076af493e9 in start_thread () at /lib64/libpthread.so.0 #19 0x00007f076ccdfb73 in clone () at /lib64/libc.so.6 Thread 14 (Thread 0x7f06fbfff640 (LWP 6951)): #0 0x00007f076af4f6b2 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0 #1 0x00007f076d082dfb in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., deadline=..., this=0x5596394df580) at thread/qwaitcondition_unix.cpp:146 #2 QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x5596394cde30, deadline=...) at thread/qwaitcondition_unix.cpp:225 #3 0x00007f076c111d73 in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #4 0x00007f076c1120a9 in () at /usr/lib64/libKF5ThreadWeaver.so.5 #5 0x00007f076c10ffd2 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #6 0x00007f076c11211e in () at /usr/lib64/libKF5ThreadWeaver.so.5 #7 0x00007f076c10ffd2 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #8 0x00007f076c11211e in () at /usr/lib64/libKF5ThreadWeaver.so.5 #9 0x00007f076c10ffd2 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #10 0x00007f076c11211e in () at /usr/lib64/libKF5ThreadWeaver.so.5 #11 0x00007f076c10ffd2 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #12 0x00007f076c11211e in () at /usr/lib64/libKF5ThreadWeaver.so.5 #13 0x00007f076c10ffd2 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #14 0x00007f076c11211e in () at /usr/lib64/libKF5ThreadWeaver.so.5 #15 0x00007f076c10ffd2 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #16 0x00007f076c110ac0 in ThreadWeaver::Thread::run() () at /usr/lib64/libKF5ThreadWeaver.so.5 #17 0x00007f076d07cde1 in QThreadPrivate::start(void*) (arg=0x7f07000034e0) at thread/qthread_unix.cpp:329 #18 0x00007f076af493e9 in start_thread () at /lib64/libpthread.so.0 #19 0x00007f076ccdfb73 in clone () at /lib64/libc.so.6 Thread 13 (Thread 0x7f071c853640 (LWP 6950)): #0 0x00007f076af4f6b2 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0 #1 0x00007f076d082dfb in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., deadline=..., this=0x5596394df580) at thread/qwaitcondition_unix.cpp:146 #2 QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x5596394cde30, deadline=...) at thread/qwaitcondition_unix.cpp:225 #3 0x00007f076c111d73 in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #4 0x00007f076c1120a9 in () at /usr/lib64/libKF5ThreadWeaver.so.5 #5 0x00007f076c10ffd2 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #6 0x00007f076c110ac0 in ThreadWeaver::Thread::run() () at /usr/lib64/libKF5ThreadWeaver.so.5 #7 0x00007f076d07cde1 in QThreadPrivate::start(void*) (arg=0x7f06fc0030e0) at thread/qthread_unix.cpp:329 #8 0x00007f076af493e9 in start_thread () at /lib64/libpthread.so.0 #9 0x00007f076ccdfb73 in clone () at /lib64/libc.so.6 Thread 12 (Thread 0x7f071d054640 (LWP 6949)): #0 0x00007f076af4f6b2 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0 #1 0x00007f076d082dfb in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., deadline=..., this=0x5596394df580) at thread/qwaitcondition_unix.cpp:146 #2 QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x5596394cde30, deadline=...) at thread/qwaitcondition_unix.cpp:225 #3 0x00007f076c111d73 in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #4 0x00007f076c1120a9 in () at /usr/lib64/libKF5ThreadWeaver.so.5 #5 0x00007f076c10ffd2 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #6 0x00007f076c110ac0 in ThreadWeaver::Thread::run() () at /usr/lib64/libKF5ThreadWeaver.so.5 #7 0x00007f076d07cde1 in QThreadPrivate::start(void*) (arg=0x7f0708003910) at thread/qthread_unix.cpp:329 #8 0x00007f076af493e9 in start_thread () at /lib64/libpthread.so.0 #9 0x00007f076ccdfb73 in clone () at /lib64/libc.so.6 Thread 11 (Thread 0x7f071d855640 (LWP 6948)): #0 0x00007f076af4f6b2 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0 #1 0x00007f076d082dfb in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., deadline=..., this=0x5596394df580) at thread/qwaitcondition_unix.cpp:146 #2 QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x5596394cde30, deadline=...) at thread/qwaitcondition_unix.cpp:225 #3 0x00007f076c111d73 in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #4 0x00007f076c1120a9 in () at /usr/lib64/libKF5ThreadWeaver.so.5 #5 0x00007f076c10ffd2 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib64/libKF5ThreadWeaver.so.5 #6 0x00007f076c110ac0 in ThreadWeaver::Thread::run() () at /usr/lib64/libKF5ThreadWeaver.so.5 #7 0x00007f076d07cde1 in QThreadPrivate::start(void*) (arg=0x7f0704003910) at thread/qthread_unix.cpp:329 #8 0x00007f076af493e9 in start_thread () at /lib64/libpthread.so.0 #9 0x00007f076ccdfb73 in clone () at /lib64/libc.so.6 Thread 10 (Thread 0x7f071e056640 (LWP 6947)): #0 0x00007f076cccfd3b in statfs64 () at /lib64/libc.so.6 #1 0x00007f076e3e9be2 in KFileSystemType::fileSystemType(QString const&) () at /usr/lib64/libKF5CoreAddons.so.5 #2 0x00007f076e3e9f89 in () at /usr/lib64/libKF5CoreAddons.so.5 #3 0x00007f076e421417 in () at /usr/lib64/libKF5CoreAddons.so.5 #4 0x00007f076e42184c in () at /usr/lib64/libKF5CoreAddons.so.5 #5 0x00007f076e8eeb06 in AbstractDirectoryWatcher::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) (this=0x55963930b250, self=..., thread=<optimized out>) at /usr/include/qt5/QtCore/qflags.h:121 #6 0x00007f076c113857 in ThreadWeaver::Executor::run(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5 #7 0x00007f076c112543 in ThreadWeaver::Job::execute(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) () at /usr/lib64/libKF5ThreadWeaver.so.5 #8 0x00007f076c110b5e in ThreadWeaver::Thread::run() () at /usr/lib64/libKF5ThreadWeaver.so.5 #9 0x00007f076d07cde1 in QThreadPrivate::start(void*) (arg=0x5596394df950) at thread/qthread_unix.cpp:329 #10 0x00007f076af493e9 in start_thread () at /lib64/libpthread.so.0 #11 0x00007f076ccdfb73 in clone () at /lib64/libc.so.6 Thread 9 (Thread 0x7f071e857640 (LWP 6946)): #0 0x00007f076af4f9d8 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0 #1 0x00007f073500be55 in () at /usr/lib64/libmariadbd.so.19 #2 0x00007f0734f40a22 in () at /usr/lib64/libmariadbd.so.19 #3 0x00007f076af493e9 in start_thread () at /lib64/libpthread.so.0 #4 0x00007f076ccdfb73 in clone () at /lib64/libc.so.6 Thread 8 (Thread 0x7f07344a3640 (LWP 6945)): #0 0x00007f076af4f9d8 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0 #1 0x00007f0734b59b8a in () at /usr/lib64/libmariadbd.so.19 #2 0x00007f076af493e9 in start_thread () at /lib64/libpthread.so.0 #3 0x00007f076ccdfb73 in clone () at /lib64/libc.so.6 Thread 7 (Thread 0x7f0737f3f640 (LWP 6939)): #0 0x00007f076ccd4a6f in poll () at /lib64/libc.so.6 #1 0x00007f0762fbc542 in () at /usr/lib64/libpulse.so.0 #2 0x00007f0762fadf89 in pa_mainloop_poll () at /usr/lib64/libpulse.so.0 #3 0x00007f0762fae60f in pa_mainloop_iterate () at /usr/lib64/libpulse.so.0 #4 0x00007f0762fae6c0 in pa_mainloop_run () at /usr/lib64/libpulse.so.0 #5 0x00007f0762fbc619 in () at /usr/lib64/libpulse.so.0 #6 0x00007f075fe8f5e8 in () at /usr/lib64/pulseaudio/libpulsecommon-13.0.so #7 0x00007f076af493e9 in start_thread () at /lib64/libpthread.so.0 #8 0x00007f076ccdfb73 in clone () at /lib64/libc.so.6 Thread 6 (Thread 0x7f0751a5c640 (LWP 6929)): #0 0x00007f076af4f6b2 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0 #1 0x00007f0753780edb in () at /usr/lib64/dri/i965_dri.so #2 0x00007f0753780727 in () at /usr/lib64/dri/i965_dri.so #3 0x00007f076af493e9 in start_thread () at /lib64/libpthread.so.0 #4 0x00007f076ccdfb73 in clone () at /lib64/libc.so.6 Thread 5 (Thread 0x7f075225d640 (LWP 6928)): #0 0x00007f076af4f6b2 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0 #1 0x00007f0753780edb in () at /usr/lib64/dri/i965_dri.so #2 0x00007f0753780727 in () at /usr/lib64/dri/i965_dri.so #3 0x00007f076af493e9 in start_thread () at /lib64/libpthread.so.0 #4 0x00007f076ccdfb73 in clone () at /lib64/libc.so.6 Thread 4 (Thread 0x7f0752a5e640 (LWP 6927)): #0 0x00007f076af4f6b2 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0 #1 0x00007f0753780edb in () at /usr/lib64/dri/i965_dri.so #2 0x00007f0753780727 in () at /usr/lib64/dri/i965_dri.so #3 0x00007f076af493e9 in start_thread () at /lib64/libpthread.so.0 #4 0x00007f076ccdfb73 in clone () at /lib64/libc.so.6 Thread 3 (Thread 0x7f075325f640 (LWP 6926)): #0 0x00007f076af4f6b2 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0 #1 0x00007f0753780edb in () at /usr/lib64/dri/i965_dri.so #2 0x00007f0753780727 in () at /usr/lib64/dri/i965_dri.so #3 0x00007f076af493e9 in start_thread () at /lib64/libpthread.so.0 #4 0x00007f076ccdfb73 in clone () at /lib64/libc.so.6 Thread 2 (Thread 0x7f0759356640 (LWP 6925)): #0 0x00007f076ccd4a6f in poll () at /lib64/libc.so.6 #1 0x00007f0763031fbe in () at /usr/lib64/libglib-2.0.so.0 #2 0x00007f07630320df in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #3 0x00007f076d2b3a9b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f074c000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #4 0x00007f076d25aeeb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f0759355430, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141 #5 0x00007f076d07bc9e in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #6 0x00007f076bb447c7 in () at /usr/lib64/libQt5DBus.so.5 #7 0x00007f076d07cde1 in QThreadPrivate::start(void*) (arg=0x7f076bbb2420) at thread/qthread_unix.cpp:329 #8 0x00007f076af493e9 in start_thread () at /lib64/libpthread.so.0 #9 0x00007f076ccdfb73 in clone () at /lib64/libc.so.6 Thread 1 (Thread 0x7f075bee8080 (LWP 6922)): [KCrash Handler] #4 0x00007f076ea02b08 in QMapNode<AmarokSharedPointer<Meta::Track>, QMap<QString, QVariant> >::leftNode() const (this=<optimized out>, this=<optimized out>) at /usr/include/qt5/QtCore/qmap.h:281 #5 QMapNode<AmarokSharedPointer<Meta::Track>, QMap<QString, QVariant> >::lowerBound(AmarokSharedPointer<Meta::Track> const&) (akey=..., this=<optimized out>) at /usr/include/qt5/QtCore/qmap.h:154 #6 QMapData<AmarokSharedPointer<Meta::Track>, QMap<QString, QVariant> >::findNode(AmarokSharedPointer<Meta::Track> const&) const (this=<optimized out>, this=0x55963aef79a0, akey=...) at /usr/include/qt5/QtCore/qmap.h:284 #7 QMap<AmarokSharedPointer<Meta::Track>, QMap<QString, QVariant> >::value(AmarokSharedPointer<Meta::Track> const&, QMap<QString, QVariant> const&) const (this=<optimized out>, this=0x55963af49fc0, adefaultValue=..., akey=...) at /usr/include/qt5/QtCore/qmap.h:661 #8 TagDialog::checkChanged() (this=0x55963af49f40) at /usr/src/debug/amarok-2.9.70git.20200930T124856~3973278a68-1.1.x86_64/src/dialogs/TagDialog.cpp:406 #9 0x00007f076d292b06 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffe2403a970, r=0x55963af49f40, this=0x55963b073690) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #10 doActivate<false>(QObject*, int, void**) (sender=0x55963aface30, signal_index=7, argv=0x7ffe2403a970) at kernel/qobject.cpp:3886 #11 0x00007f076d292b40 in doActivate<false>(QObject*, int, void**) (sender=0x55963afd4db0, signal_index=3, argv=0x7ffe2403aa50) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:395 #12 0x00007f076dff8543 in QWidgetTextControl::qt_metacall(QMetaObject::Call, int, void**) () at /usr/lib64/libQt5Widgets.so.5 #13 0x00007f076d292850 in doActivate<false>(QObject*, int, void**) (sender=0x55963afd4e00, signal_index=4, argv=0x7ffe2403ab60, argv@entry=0x0) at /usr/include/c++/10/bits/atomic_base.h:741 #14 0x00007f076d28be60 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=<optimized out>, m=m@entry=0x7f076dc4db40 <QTextDocument::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x0) at kernel/qobject.cpp:3946 #15 0x00007f076db3ad73 in QTextDocument::contentsChanged() (this=<optimized out>) at .moc/moc_qtextdocument.cpp:427 #16 0x00007f076d7f7884 in QTextDocumentPrivate::finishEdit() (this=0x55963ae8a800) at text/qtextdocument_p.cpp:1247 #17 0x00007f076d7f7c68 in QTextDocumentPrivate::endEditBlock() (this=<optimized out>) at text/qtextdocument_p.cpp:1203 #18 QTextDocumentPrivate::endEditBlock() (this=<optimized out>) at text/qtextdocument_p.cpp:1186 #19 0x0000000000000000 in () [Inferior 1 (process 6922) detached] Reported using DrKonqi
looks like a typo in the code...
I compiled Amarok from sources to see when the problem was introduced but even with a commit from 2018 (f296b39c89ed78fa58409862517f625d7f782bcc) it crashes... I tried it with Qt 5.15.2 and the crash is not always at the same place but still crashes always when changing lyrics. With valgrind Amarok does not even load a GUI before it gets killed. If you have some ideas that I could try to help, let me know.
Created attachment 135796 [details] New crash information added by DrKonqi amarok (2.9.71) using Qt 5.15.2 This crash looks interesting, as the destructor is called which destroys ui and later it checks for changes in the tags. Could be interesting, but maybe it is OK because I don't know how destructors are processed in C++ Amarok is compiled from current git master -- Backtrace (Reduced): #6 QFragmentMapData<QTextFragmentData>::length(unsigned int) const (this=<optimized out>, this=<optimized out>, field=0) at ../../include/QtGui/5.15.2/QtGui/private/../../../../../src/gui/text/qfragmentmap_p.h:147 #7 QFragmentMap<QTextFragmentData>::length(unsigned int) const (field=0, this=<optimized out>) at ../../include/QtGui/5.15.2/QtGui/private/../../../../../src/gui/text/qfragmentmap_p.h:822 #8 QTextDocumentPrivate::length() const (this=<optimized out>) at text/qtextdocument_p.h:220 #9 QTextDocumentPrivate::plainText() const (this=0x2dec050) at text/qtextdocument_p.cpp:1339 #10 0x00007fdc840f5002 in QTextDocument::toPlainText() const (this=<optimized out>) at text/qtextdocument.cpp:1207
Created attachment 138075 [details] New crash information added by DrKonqi amarok (2.9.71) using Qt 5.15.2 Current Backtrace Seems like the Syntaxhiglighter sets the document during deletion that triggers a signal which causes access to already deleted objects when checking for changes in the objects of the UI -- Backtrace (Reduced): #6 QFragmentMapData<QTextFragmentData>::length(unsigned int) const (this=<optimized out>, this=<optimized out>, field=0) at ../../include/QtGui/5.15.2/QtGui/private/../../../../../src/gui/text/qfragmentmap_p.h:147 #7 QFragmentMap<QTextFragmentData>::length(unsigned int) const (field=0, this=<optimized out>) at ../../include/QtGui/5.15.2/QtGui/private/../../../../../src/gui/text/qfragmentmap_p.h:822 #8 QTextDocumentPrivate::length() const (this=<optimized out>) at text/qtextdocument_p.h:220 #9 QTextDocumentPrivate::plainText() const (this=0x558b83e85dc0) at text/qtextdocument_p.cpp:1339 #10 0x00007f1ef8e887b2 in QTextDocument::toPlainText() const (this=<optimized out>) at text/qtextdocument.cpp:1207
A possibly relevant merge request was started @ https://invent.kde.org/multimedia/amarok/-/merge_requests/27
Git commit 7f800a80dac088461d102580984b6b95cbe468c0 by Pedro Gomes, on behalf of Jürgen Thomann. Committed on 25/06/2021 at 21:20. Pushed by pgomes into branch 'master'. Prevent Signal from kRichTextEdit during deletion When the ui is deleted, the deletion of KRichTextEdit will cause a new signal that will trigger textChanged. As we are already deleting all objects in the ui, the check for changes in textChanged will access already deleted objects which crashes Amarok. FIXED-IN: 2.9.72 M +3 -0 src/dialogs/TagDialog.cpp https://invent.kde.org/multimedia/amarok/commit/7f800a80dac088461d102580984b6b95cbe468c0