Application: amarok (2.3.0) KDE Platform Version: 4.4.2 (KDE 4.4.2) Qt Version: 4.6.2 Operating System: Linux 2.6.32-21-generic i686 Distribution: Ubuntu 10.04 LTS -- Information about the crash: When I started Amarok today, it already showed a strange behaviour. I was sure to have started it a couple of minutes earlier, but when I searched it in the tray, there was no icon. So, I started it again, forgot about it, and again when I looked for it, it wasn't there. I started it again, this time I followed it, played a track, and after some minutes the sound stuttered, and the application crashed with this bug report. -- Backtrace: Application: Amarok (amarok), signal: Segmentation fault [Current thread is 1 (Thread 0xb6707720 (LWP 2020))] Thread 21 (Thread 0xb47c8b70 (LWP 2021)): #0 0x00223422 in __kernel_vsyscall () #1 0x0574e342 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0 #2 0x006d49f4 in pthread_cond_timedwait () from /lib/tls/i686/cmov/libc.so.6 #3 0x01d22ce7 in ?? () from /usr/lib/libxine.so.1 Backtrace stopped: previous frame inner to this frame (corrupt stack?) Thread 20 (Thread 0xb3fc7b70 (LWP 2022)): #0 0x014c5e16 in clock_gettime () from /lib/tls/i686/cmov/librt.so.1 #1 0x034086fb in qt_gettime () at kernel/qcore_unix.cpp:111 #2 0x0340d825 in QTimerInfoList::updateCurrentTime (this=0x8695e44) at kernel/qeventdispatcher_unix.cpp:340 #3 0x0340d86a in QTimerInfoList::timerWait (this=0x8695e44, tm=...) at kernel/qeventdispatcher_unix.cpp:443 #4 0x0340b818 in timerSourcePrepareHelper (src=<value optimized out>, timeout=0xb3fc70ac) at kernel/qeventdispatcher_glib.cpp:136 #5 0x0569daca in g_main_context_prepare () from /lib/libglib-2.0.so.0 #6 0x0569dee9 in ?? () from /lib/libglib-2.0.so.0 #7 0x0569e4b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0 #8 0x0340b60f in QEventDispatcherGlib::processEvents (this=0x870ad50, flags=...) at kernel/qeventdispatcher_glib.cpp:414 #9 0x033de059 in QEventLoop::processEvents (this=0xb3fc7270, flags=) at kernel/qeventloop.cpp:149 #10 0x033de4aa in QEventLoop::exec (this=0xb3fc7270, flags=...) at kernel/qeventloop.cpp:201 #11 0x032da5a8 in QThread::exec (this=0x8695050) at thread/qthread.cpp:487 #12 0x0247d96a in ?? () from /usr/lib/qt4/plugins/phonon_backend/phonon_xine.so #13 0x032dd32e in QThreadPrivate::start (arg=0x8695050) at thread/qthread_unix.cpp:248 #14 0x0574996e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #15 0x006c7a0e in clone () from /lib/tls/i686/cmov/libc.so.6 Thread 19 (Thread 0xb35ffb70 (LWP 2025)): #0 0x00223422 in __kernel_vsyscall () #1 0x006b7e2b in read () from /lib/tls/i686/cmov/libc.so.6 #2 0x01ea0de2 in ?? () from /usr/lib/libasound.so.2 #3 0x01e9db8d in snd_ctl_read () from /usr/lib/libasound.so.2 #4 0x01e99f4f in snd_hctl_handle_events () from /usr/lib/libasound.so.2 #5 0x01ea5dc1 in snd_mixer_handle_events () from /usr/lib/libasound.so.2 #6 0x06faead8 in ?? () from /usr/lib/xine/plugins/1.27/xineplug_ao_out_alsa.so #7 0xb360053c in ?? () Backtrace stopped: previous frame inner to this frame (corrupt stack?) Thread 18 (Thread 0xb2bffb70 (LWP 2026)): #0 0x00223422 in __kernel_vsyscall () #1 0x0574e015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0 #2 0x006d499d in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6 #3 0x01d339ee in ?? () from /usr/lib/libxine.so.1 #4 0x00000000 in ?? () Thread 17 (Thread 0xb1fffb70 (LWP 2027)): #0 0x00223422 in __kernel_vsyscall () #1 0x0574e015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0 #2 0x006d499d in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6 #3 0x01d339ee in ?? () from /usr/lib/libxine.so.1 #4 0x00000000 in ?? () Thread 16 (Thread 0xb17feb70 (LWP 2028)): #0 0x00223422 in __kernel_vsyscall () #1 0x0574e015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0 #2 0x006d499d in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6 #3 0x01d339ee in ?? () from /usr/lib/libxine.so.1 Backtrace stopped: previous frame inner to this frame (corrupt stack?) Thread 15 (Thread 0xb0ffdb70 (LWP 2029)): #0 0x00223422 in __kernel_vsyscall () #1 0x0574e015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0 #2 0x006d499d in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6 #3 0x01d339ee in ?? () from /usr/lib/libxine.so.1 Backtrace stopped: previous frame inner to this frame (corrupt stack?) Thread 14 (Thread 0xb019bb70 (LWP 2031)): #0 0x00223422 in __kernel_vsyscall () #1 0x006b9b86 in poll () from /lib/tls/i686/cmov/libc.so.6 #2 0x056ab4eb in g_poll () from /lib/libglib-2.0.so.0 #3 0x0569e0ac in ?? () from /lib/libglib-2.0.so.0 #4 0x0569e4b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0 #5 0x0340b60f in QEventDispatcherGlib::processEvents (this=0xb36fc680, flags=...) at kernel/qeventdispatcher_glib.cpp:414 #6 0x033de059 in QEventLoop::processEvents (this=0xb019b280, flags=) at kernel/qeventloop.cpp:149 #7 0x033de4aa in QEventLoop::exec (this=0xb019b280, flags=...) at kernel/qeventloop.cpp:201 #8 0x032da5a8 in QThread::exec (this=0x8e284c8) at thread/qthread.cpp:487 #9 0x033bdc1b in QInotifyFileSystemWatcherEngine::run (this=0x8e284c8) at io/qfilesystemwatcher_inotify.cpp:248 #10 0x032dd32e in QThreadPrivate::start (arg=0x8e284c8) at thread/qthread_unix.cpp:248 #11 0x0574996e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #12 0x006c7a0e in clone () from /lib/tls/i686/cmov/libc.so.6 Thread 13 (Thread 0xae6fdb70 (LWP 2032)): #0 0x00223422 in __kernel_vsyscall () #1 0x0574e015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0 #2 0x006d499d in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6 #3 0xb69839d7 in ?? () from /usr/lib/libQtWebKit.so.4 #4 0xb6983a21 in ?? () from /usr/lib/libQtWebKit.so.4 #5 0x0574996e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #6 0x006c7a0e in clone () from /lib/tls/i686/cmov/libc.so.6 Thread 12 (Thread 0xadefcb70 (LWP 2033)): #0 0x00223422 in __kernel_vsyscall () #1 0x0574e015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0 #2 0x006d499d in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6 #3 0x032de287 in QWaitConditionPrivate::wait (this=0x8ec4418, mutex=0x8ec5678, time=4294967295) at thread/qwaitcondition_unix.cpp:87 #4 QWaitCondition::wait (this=0x8ec4418, mutex=0x8ec5678, time=4294967295) at thread/qwaitcondition_unix.cpp:159 #5 0x01211870 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x8ec4400, th=0x8ec5998) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365 #6 0x0121438c in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x8ec5758, th=0x8ec5998) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80 #7 0x0121027b in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x8ec4400, th=0x8ec5998) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356 #8 0x01214482 in ThreadWeaver::WorkingHardState::applyForWork (this=0x8ec5758, th=0x8ec5998) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71 #9 0x012114d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8ec4400, th=0x8ec5998, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351 #10 0x012144a1 in ThreadWeaver::WorkingHardState::applyForWork (this=0x8ec5758, th=0x8ec5998) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74 #11 0x012114d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8ec4400, th=0x8ec5998, previous=0x8d80188) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351 #12 0x0121251e in ThreadWeaver::ThreadRunHelper::run (this=0xadefc2e4, parent=0x8ec4400, th=0x8ec5998) at ../../../threadweaver/Weaver/Thread.cpp:87 #13 0x01212c3b in ThreadWeaver::Thread::run (this=0x8ec5998) at ../../../threadweaver/Weaver/Thread.cpp:142 #14 0x032dd32e in QThreadPrivate::start (arg=0x8ec5998) at thread/qthread_unix.cpp:248 #15 0x0574996e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #16 0x006c7a0e in clone () from /lib/tls/i686/cmov/libc.so.6 Thread 11 (Thread 0xad6fbb70 (LWP 2034)): #0 0x00223422 in __kernel_vsyscall () #1 0x0574e015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0 #2 0x006d499d in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6 #3 0x032de287 in QWaitConditionPrivate::wait (this=0x8ec4418, mutex=0x8ec5678, time=4294967295) at thread/qwaitcondition_unix.cpp:87 #4 QWaitCondition::wait (this=0x8ec4418, mutex=0x8ec5678, time=4294967295) at thread/qwaitcondition_unix.cpp:159 #5 0x01211870 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x8ec4400, th=0x8ec69f8) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365 #6 0x0121438c in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x8ec5758, th=0x8ec69f8) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80 #7 0x0121027b in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x8ec4400, th=0x8ec69f8) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356 #8 0x01214482 in ThreadWeaver::WorkingHardState::applyForWork (this=0x8ec5758, th=0x8ec69f8) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71 #9 0x012114d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8ec4400, th=0x8ec69f8, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351 #10 0x012144a1 in ThreadWeaver::WorkingHardState::applyForWork (this=0x8ec5758, th=0x8ec69f8) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74 #11 0x012114d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8ec4400, th=0x8ec69f8, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351 #12 0x012144a1 in ThreadWeaver::WorkingHardState::applyForWork (this=0x8ec5758, th=0x8ec69f8) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74 #13 0x012114d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8ec4400, th=0x8ec69f8, previous=0xaa81ec8) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351 #14 0x0121251e in ThreadWeaver::ThreadRunHelper::run (this=0xad6fb2e4, parent=0x8ec4400, th=0x8ec69f8) at ../../../threadweaver/Weaver/Thread.cpp:87 #15 0x01212c3b in ThreadWeaver::Thread::run (this=0x8ec69f8) at ../../../threadweaver/Weaver/Thread.cpp:142 #16 0x032dd32e in QThreadPrivate::start (arg=0x8ec69f8) at thread/qthread_unix.cpp:248 #17 0x0574996e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #18 0x006c7a0e in clone () from /lib/tls/i686/cmov/libc.so.6 Thread 10 (Thread 0xaccffb70 (LWP 2035)): #0 0x00223422 in __kernel_vsyscall () #1 0x0574e015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0 #2 0x006d499d in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6 #3 0x032de287 in QWaitConditionPrivate::wait (this=0x8ec4418, mutex=0x8ec5678, time=4294967295) at thread/qwaitcondition_unix.cpp:87 #4 QWaitCondition::wait (this=0x8ec4418, mutex=0x8ec5678, time=4294967295) at thread/qwaitcondition_unix.cpp:159 #5 0x01211870 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x8ec4400, th=0x8e85e70) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365 #6 0x0121438c in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x8ec5758, th=0x8e85e70) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80 #7 0x0121027b in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x8ec4400, th=0x8e85e70) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356 #8 0x01214482 in ThreadWeaver::WorkingHardState::applyForWork (this=0x8ec5758, th=0x8e85e70) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71 #9 0x012114d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8ec4400, th=0x8e85e70, previous=0x93a3ea0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351 #10 0x0121251e in ThreadWeaver::ThreadRunHelper::run (this=0xaccff2e4, parent=0x8ec4400, th=0x8e85e70) at ../../../threadweaver/Weaver/Thread.cpp:87 #11 0x01212c3b in ThreadWeaver::Thread::run (this=0x8e85e70) at ../../../threadweaver/Weaver/Thread.cpp:142 #12 0x032dd32e in QThreadPrivate::start (arg=0x8e85e70) at thread/qthread_unix.cpp:248 #13 0x0574996e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #14 0x006c7a0e in clone () from /lib/tls/i686/cmov/libc.so.6 Thread 9 (Thread 0xac4feb70 (LWP 2036)): #0 0x00223422 in __kernel_vsyscall () #1 0x0574e015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0 #2 0x006d499d in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6 #3 0x032de287 in QWaitConditionPrivate::wait (this=0x8ec4418, mutex=0x8ec5678, time=4294967295) at thread/qwaitcondition_unix.cpp:87 #4 QWaitCondition::wait (this=0x8ec4418, mutex=0x8ec5678, time=4294967295) at thread/qwaitcondition_unix.cpp:159 #5 0x01211870 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x8ec4400, th=0x8d89880) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365 #6 0x0121438c in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x8ec5758, th=0x8d89880) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80 #7 0x0121027b in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x8ec4400, th=0x8d89880) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356 #8 0x01214482 in ThreadWeaver::WorkingHardState::applyForWork (this=0x8ec5758, th=0x8d89880) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71 #9 0x012114d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8ec4400, th=0x8d89880, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351 #10 0x012144a1 in ThreadWeaver::WorkingHardState::applyForWork (this=0x8ec5758, th=0x8d89880) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74 #11 0x012114d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8ec4400, th=0x8d89880, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351 #12 0x012144a1 in ThreadWeaver::WorkingHardState::applyForWork (this=0x8ec5758, th=0x8d89880) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74 #13 0x012114d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8ec4400, th=0x8d89880, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351 #14 0x012144a1 in ThreadWeaver::WorkingHardState::applyForWork (this=0x8ec5758, th=0x8d89880) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74 #15 0x012114d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8ec4400, th=0x8d89880, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351 #16 0x012144a1 in ThreadWeaver::WorkingHardState::applyForWork (this=0x8ec5758, th=0x8d89880) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74 #17 0x012114d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8ec4400, th=0x8d89880, previous=0xafbb8f8) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351 #18 0x0121251e in ThreadWeaver::ThreadRunHelper::run (this=0xac4fe2e4, parent=0x8ec4400, th=0x8d89880) at ../../../threadweaver/Weaver/Thread.cpp:87 #19 0x01212c3b in ThreadWeaver::Thread::run (this=0x8d89880) at ../../../threadweaver/Weaver/Thread.cpp:142 #20 0x032dd32e in QThreadPrivate::start (arg=0x8d89880) at thread/qthread_unix.cpp:248 #21 0x0574996e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #22 0x006c7a0e in clone () from /lib/tls/i686/cmov/libc.so.6 Thread 8 (Thread 0xa92e5b70 (LWP 2039)): #0 0x00223422 in __kernel_vsyscall () #1 0x0574e015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0 #2 0x006d499d in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6 #3 0x013a2c97 in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0x147c1a0) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2304 #4 0x013a2ce1 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=0x147c1a0) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1438 #5 0x0574996e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #6 0x006c7a0e in clone () from /lib/tls/i686/cmov/libc.so.6 Thread 7 (Thread 0xa6652b70 (LWP 2061)): #0 0x00223422 in __kernel_vsyscall () #1 0x006c0971 in select () from /lib/tls/i686/cmov/libc.so.6 #2 0x01d4c5cc in xine_usec_sleep () from /usr/lib/libxine.so.1 #3 0x00000000 in ?? () Thread 6 (Thread 0xa5e51b70 (LWP 2062)): #0 0x00223422 in __kernel_vsyscall () #1 0x0574e015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0 #2 0x006d499d in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6 #3 0x01d262aa in ?? () from /usr/lib/libxine.so.1 Backtrace stopped: previous frame inner to this frame (corrupt stack?) Thread 5 (Thread 0x9c6a4b70 (LWP 2063)): #0 0x00223422 in __kernel_vsyscall () #1 0x0574e015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0 #2 0x006d499d in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6 #3 0x01d262aa in ?? () from /usr/lib/libxine.so.1 Backtrace stopped: previous frame inner to this frame (corrupt stack?) Thread 4 (Thread 0x9bea3b70 (LWP 2064)): #0 0x00223422 in __kernel_vsyscall () #1 0x0574e015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0 #2 0x006d499d in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6 #3 0x01d369da in ?? () from /usr/lib/libxine.so.1 Backtrace stopped: previous frame inner to this frame (corrupt stack?) Thread 3 (Thread 0x99e59b70 (LWP 2071)): #0 0x00223422 in __kernel_vsyscall () #1 0x0574e015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0 #2 0x006d499d in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6 #3 0x032de287 in QWaitConditionPrivate::wait (this=0x90b14d8, mutex=0x90b14d4, time=4294967295) at thread/qwaitcondition_unix.cpp:87 #4 QWaitCondition::wait (this=0x90b14d8, mutex=0x90b14d4, time=4294967295) at thread/qwaitcondition_unix.cpp:159 #5 0x05fa2d52 in QFileInfoGatherer::run (this=0x90b14cc) at dialogs/qfileinfogatherer.cpp:203 #6 0x032dd32e in QThreadPrivate::start (arg=0x90b14cc) at thread/qthread_unix.cpp:248 #7 0x0574996e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #8 0x006c7a0e in clone () from /lib/tls/i686/cmov/libc.so.6 Thread 2 (Thread 0x99658b70 (LWP 2072)): #0 0x00223422 in __kernel_vsyscall () #1 0x006b9b86 in poll () from /lib/tls/i686/cmov/libc.so.6 #2 0x056ab4eb in g_poll () from /lib/libglib-2.0.so.0 #3 0x0569e0ac in ?? () from /lib/libglib-2.0.so.0 #4 0x0569e4b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0 #5 0x0340b60f in QEventDispatcherGlib::processEvents (this=0x9bb6398, flags=...) at kernel/qeventdispatcher_glib.cpp:414 #6 0x033de059 in QEventLoop::processEvents (this=0x99658280, flags=) at kernel/qeventloop.cpp:149 #7 0x033de4aa in QEventLoop::exec (this=0x99658280, flags=...) at kernel/qeventloop.cpp:201 #8 0x032da5a8 in QThread::exec (this=0x9099c18) at thread/qthread.cpp:487 #9 0x033bdc1b in QInotifyFileSystemWatcherEngine::run (this=0x9099c18) at io/qfilesystemwatcher_inotify.cpp:248 #10 0x032dd32e in QThreadPrivate::start (arg=0x9099c18) at thread/qthread_unix.cpp:248 #11 0x0574996e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #12 0x006c7a0e in clone () from /lib/tls/i686/cmov/libc.so.6 Thread 1 (Thread 0xb6707720 (LWP 2020)): [KCrash Handler] #6 QMap<QObject const*, ProgressBar*>::findNode (this=0xaf4c4d0, owner=0x634e288) at /usr/include/qt4/QtCore/qmap.h:461 #7 QMap<QObject const*, ProgressBar*>::contains (this=0xaf4c4d0, owner=0x634e288) at /usr/include/qt4/QtCore/qmap.h:530 #8 CompoundProgressBar::endProgressOperation (this=0xaf4c4d0, owner=0x634e288) at ../../src/statusbar/CompoundProgressBar.cpp:79 #9 0x00d77a15 in CoverManager::slotArtistQueryDone (this=0x986be88) at ../../src/covermanager/CoverManager.cpp:455 #10 0x00d780c0 in CoverManager::qt_metacall (this=0x986be88, _c=QMetaObject::InvokeMetaMethod, _id=7, _a=0xbfea28fc) at ./CoverManager.moc:118 #11 0x033e4c9a in QMetaObject::metacall (object=0x986be88, cl=64, idx=35, argv=0xbfea28fc) at kernel/qmetaobject.cpp:237 #12 0x033f33d5 in QMetaObject::activate (sender=0x920aff0, m=0x10ab378, local_signal_index=8, argv=0x0) at kernel/qobject.cpp:3293 #13 0x00b93ab7 in QueryMaker::queryDone (this=0x920aff0) at ./QueryMaker.moc:164 #14 0x0537357b in SqlQueryMaker::done (this=0x920aff0, job=0x93a3ea0) at ../../../../src/collection/sqlcollection/SqlQueryMaker.cpp:241 #15 0x053742af in SqlQueryMaker::qt_metacall (this=0x920aff0, _c=QMetaObject::InvokeMetaMethod, _id=13, _a=0xbfea2a98) at ./SqlQueryMaker.moc:89 #16 0x033e4c9a in QMetaObject::metacall (object=0x920aff0, cl=64, idx=13, argv=0xbfea2a98) at kernel/qmetaobject.cpp:237 #17 0x033f33d5 in QMetaObject::activate (sender=0x93a3ea0, m=0x121a8f4, local_signal_index=1, argv=0xbfea2a98) at kernel/qobject.cpp:3293 #18 0x012130a3 in ThreadWeaver::Job::done (this=0x93a3ea0, _t1=0x93a3ea0) at ./Job.moc:97 #19 0x01213277 in ThreadWeaver::Job::qt_metacall (this=0x93a3ea0, _c=QMetaObject::InvokeMetaMethod, _id=5, _a=0xae902c38) at ./Job.moc:77 #20 0x033e4c9a in QMetaObject::metacall (object=0x93a3ea0, cl=64, idx=5, argv=0xae902c38) at kernel/qmetaobject.cpp:237 #21 0x033ef336 in QMetaCallEvent::placeMetaCall (this=0xaebae0a8, object=0x93a3ea0) at kernel/qobject.cpp:561 #22 0x033f03fe in QObject::event (this=0x93a3ea0, e=0xaebae0a8) at kernel/qobject.cpp:1248 #23 0x05a234dc in QApplicationPrivate::notify_helper (this=0x85ef7a0, receiver=0x93a3ea0, e=0xaebae0a8) at kernel/qapplication.cpp:4300 #24 0x05a2a05e in QApplication::notify (this=0xbfea33b8, receiver=0x93a3ea0, e=0xaebae0a8) at kernel/qapplication.cpp:3704 #25 0x00d07276 in App::notify (this=0xbfea33b8, receiver=0x93a3ea0, event=0xaebae0a8) at ../../src/App.cpp:927 #26 0x033dfa3b in QCoreApplication::notifyInternal (this=0xbfea33b8, receiver=0x93a3ea0, event=0xaebae0a8) at kernel/qcoreapplication.cpp:704 #27 0x033e2473 in QCoreApplication::sendEvent (receiver=0x0, event_type=0, data=0x850e928) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215 #28 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x850e928) at kernel/qcoreapplication.cpp:1345 #29 0x033e25dd in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1238 #30 0x0340badf in QCoreApplication::sendPostedEvents (s=0x85f2310) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220 #31 postEventSourceDispatch (s=0x85f2310) at kernel/qeventdispatcher_glib.cpp:276 #32 0x0569a5e5 in g_main_context_dispatch () from /lib/libglib-2.0.so.0 #33 0x0569e2d8 in ?? () from /lib/libglib-2.0.so.0 #34 0x0569e4b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0 #35 0x0340b5d5 in QEventDispatcherGlib::processEvents (this=0x850e4c0, flags=...) at kernel/qeventdispatcher_glib.cpp:412 #36 0x05ae3135 in QGuiEventDispatcherGlib::processEvents (this=0x850e4c0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204 #37 0x033de059 in QEventLoop::processEvents (this=0xbfea3324, flags=) at kernel/qeventloop.cpp:149 #38 0x033de4aa in QEventLoop::exec (this=0xbfea3324, flags=...) at kernel/qeventloop.cpp:201 #39 0x033e269f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981 #40 0x05a23577 in QApplication::exec () at kernel/qapplication.cpp:3579 #41 0x08050009 in main (argc=1, argv=0xbfea3c34) at ../../src/main.cpp:237 Reported using DrKonqi
That's somewhere in cover management, when using the statusbar. Can you reproduce the crash? Is it maybe solved in 2.3.1 beta 1?
> --- Comment #1 from Sven Krohlas <sven asbest-online de> 2010-04-30 > 13:01:49 --- That's somewhere in cover management, when using the > statusbar. > > Can you reproduce the crash? Is it maybe solved in 2.3.1 beta 1? Hi, I cannot reproduce it. I've logged out, then back in, started Amarok, which is playing fine so far. I mean, apart from switching it off, then back on, I don't know what else to do. Anyway, I'll try your suggestion. If the issue occurs again, then I'll report back here. Thanks!
*** Bug 237232 has been marked as a duplicate of this bug. ***
Confirmed by duplicate.
I can produce it. I'm working on it.
commit dd056c21a44ca7b06cfe705d29cca6283d3c355d Author: Rick W. Chen <stuffcorpse@archlinux.us> Date: Mon May 10 00:20:51 2010 +1200 Fix cover manager crashing if closed shortly after opening and with lots of cleanups BUG:235796 diff --git a/src/covermanager/CoverManager.cpp b/src/covermanager/CoverManager.cpp index e864b8f..1322bf1 100644 --- a/src/covermanager/CoverManager.cpp +++ b/src/covermanager/CoverManager.cpp @@ -17,6 +17,8 @@ * this program. If not, see <http://www.gnu.org/licenses/>. * ****************************************************************************************/ +#define DEBUG_PREFIX "CoverManager" + #include "CoverManager.h" #include "CoverViewDialog.h" @@ -47,14 +49,13 @@ #include <QAction> #include <QDesktopWidget> #include <QProgressBar> +#include <QSplitter> #include <QStringList> #include <QTimer> //search filter timer #include <QToolButton> #include <QTreeWidget> #include <QTreeWidgetItem> -#define DEBUG_PREFIX "CoverManager" - static QString artistToSelectInInitFunction; CoverManager *CoverManager::s_instance = 0; @@ -82,14 +83,13 @@ class ArtistItem : public QTreeWidgetItem }; -CoverManager::CoverManager() - : QSplitter( 0 ) +CoverManager::CoverManager( QWidget *parent ) + : KDialog( parent ) , m_currentView( AllAlbums ) , m_timer( new QTimer( this ) ) //search filter timer , m_fetchingCovers( false ) , m_coversFetched( 0 ) , m_coverErrors( 0 ) - , m_isClosing( false ) , m_isLoadingCancelled( false ) { DEBUG_BLOCK @@ -100,12 +100,17 @@ CoverManager::CoverManager() // Sets caption and icon correctly (needed e.g. for GNOME) kapp->setTopWidget( this ); - setWindowTitle( KDialog::makeStandardCaption( i18n("Cover Manager") ) ); - setAttribute( Qt::WA_DeleteOnClose ); - setContentsMargins( 4, 4, 4, 4 ); + setButtons( 0 ); + setCaption( i18n("Cover Manager") ); + + connect( this, SIGNAL(hidden()), SLOT(delayedDestruct()) ); + connect( this, SIGNAL(closeClicked()), SLOT(delayedDestruct()) ); + + m_splitter = new QSplitter( this ); + setMainWidget( m_splitter ); //artist listview - m_artistView = new QTreeWidget( this ); + m_artistView = new QTreeWidget( m_splitter ); m_artistView->setHeaderLabel( i18n( "Albums By" ) ); m_artistView->setSortingEnabled( false ); m_artistView->setTextElideMode( Qt::ElideRight ); @@ -156,7 +161,7 @@ CoverManager::slotContinueConstruction() //SLOT } m_artistView->insertTopLevelItems( 0, m_items ); - KVBox *vbox = new KVBox( this ); + KVBox *vbox = new KVBox( m_splitter ); KHBox *hbox = new KHBox( vbox ); vbox->setSpacing( 4 ); @@ -219,37 +224,12 @@ CoverManager::slotContinueConstruction() //SLOT QSize sz = Amarok::config( "Cover Manager" ).readEntry( "Window Size", size ); resize( sz.width(), sz.height() ); - setStretchFactor( indexOf( m_artistView ), 1 ); - setStretchFactor( indexOf( vbox ), 4 ); - - show(); + m_splitter->setStretchFactor( m_splitter->indexOf( m_artistView ), 1 ); + m_splitter->setStretchFactor( m_splitter->indexOf( vbox ), 4 ); m_fetcher = The::coverFetcher(); - QTimer::singleShot( 0, this, SLOT(init()) ); -} - -CoverManager::~CoverManager() -{ - DEBUG_BLOCK - - Amarok::config( "Cover Manager" ).writeEntry( "Window Size", size() ); - s_instance = 0; - - m_isClosing = true; - m_isLoadingCancelled = true; - qDeleteAll( m_coverItems ); - delete m_coverView; - m_coverView = 0; -} - -void -CoverManager::init() -{ - DEBUG_BLOCK - QTreeWidgetItem *item = 0; - int i = 0; if ( !artistToSelectInInitFunction.isEmpty() ) { @@ -276,8 +256,17 @@ CoverManager::init() item = m_artistView->invisibleRootItem()->child( 0 ); item->setSelected( true ); + show(); } +CoverManager::~CoverManager() +{ + Amarok::config( "Cover Manager" ).writeEntry( "Window Size", size() ); + qDeleteAll( m_coverItems ); + delete m_coverView; + m_coverView = 0; + s_instance = 0; +} void CoverManager::viewCover( Meta::AlbumPtr album, QWidget *parent ) //static @@ -302,8 +291,6 @@ CoverManager::metadataChanged( Meta::AlbumPtr album ) void CoverManager::fetchMissingCovers() //SLOT { - DEBUG_BLOCK - m_fetchCovers.clear(); for( int i = 0, coverCount = m_coverView->count(); i < coverCount; ++i ) { @@ -313,6 +300,8 @@ CoverManager::fetchMissingCovers() //SLOT m_fetchCovers += coverItem->albumPtr(); } + debug() << QString( "Fetching %1 missing covers" ).arg( m_fetchCovers.size() ); + ProgressBar *fetchProgressBar = new ProgressBar( this ); fetchProgressBar->setDescription( i18n( "Fetching" ) ); fetchProgressBar->setMaximum( m_fetchCovers.size() ); @@ -325,7 +314,6 @@ CoverManager::fetchMissingCovers() //SLOT updateStatusBar(); m_fetchButton->setEnabled( false ); connect( m_fetcher, SIGNAL(finishedSingle(int)), SLOT(updateFetchingProgress(int)) ); - } void @@ -380,8 +368,6 @@ CoverManager::slotArtistSelected() //SLOT qm->excludeFilter( Meta::valAlbum, QString(), true, true ); qm->endAndOr(); - m_albumList.clear(); - connect( qm, SIGNAL( newResultReady( QString, Meta::AlbumList ) ), this, SLOT( slotAlbumQueryResult( QString, Meta::AlbumList ) ) ); @@ -393,12 +379,10 @@ CoverManager::slotArtistSelected() //SLOT void CoverManager::slotAlbumQueryResult( QString collectionId, Meta::AlbumList albums ) //SLOT { - DEBUG_BLOCK Q_UNUSED( collectionId ); - m_albumList += albums; + m_albumList = albums; } - void CoverManager::slotAlbumFilterTriggered( QAction *action ) //SLOT { @@ -423,15 +407,21 @@ CoverManager::slotArtistQueryDone() //SLOT m_progress->show(); uint x = 0; + debug() << "Loading covers for selected artist(s)"; //the process events calls below causes massive flickering in the m_albumList //so we hide this view and only show it when all items has been inserted. This //also provides quite a massive speed improvement when loading covers. m_coverView->hide(); m_coverViewSpacer->show(); - foreach( Meta::AlbumPtr album, m_albumList ) + foreach( const Meta::AlbumPtr &album, m_albumList ) { - kapp->processEvents(); + kapp->processEvents( QEventLoop::ExcludeSocketNotifiers ); + if( isHidden() ) + { + m_progress->endProgressOperation( m_coverView ); + return; + } /* * Loading is stopped if cancelled by the user, or the number of albums * has changed. The latter occurs when the artist selection changes. @@ -450,12 +440,8 @@ CoverManager::slotArtistQueryDone() //SLOT m_progress->setProgress( m_coverView, x ); } } - m_progress->endProgressOperation( m_coverView ); - if( m_isClosing ) - return; - // makes sure View is retained when artist selection changes changeView( m_currentView, true ); @@ -527,15 +513,13 @@ CoverManager::slotSetFilterTimeout() //SLOT void CoverManager::changeView( CoverManager::View id, bool force ) //SLOT { - DEBUG_BLOCK - if( !force && m_currentView == id ) return; //clear the iconview without deleting items m_coverView->clearSelection(); - - while ( m_coverView->count() > 0 ) + int itemsCount = m_coverView->count(); + while( itemsCount-- > 0 ) m_coverView->takeItem( 0 ); foreach( QListWidgetItem *item, m_coverItems ) diff --git a/src/covermanager/CoverManager.h b/src/covermanager/CoverManager.h index aeb7910..df2c634 100644 --- a/src/covermanager/CoverManager.h +++ b/src/covermanager/CoverManager.h @@ -20,7 +20,8 @@ #include "CoverFetcher.h" -#include <QSplitter> +#include <KDialog> + #include <QDropEvent> #include <QLabel> #include <QListWidget> @@ -42,8 +43,9 @@ class KHBox; class QProgressBar; class QHBoxLayout; class QColorGroup; +class QSplitter; -class CoverManager : public QSplitter, public Meta::Observer +class CoverManager : public KDialog, public Meta::Observer { Q_OBJECT @@ -51,7 +53,7 @@ class CoverManager : public QSplitter, public Meta::Observer static bool s_constructed; public: - CoverManager(); + CoverManager( QWidget *parent = 0 ); ~CoverManager(); static bool isConstructed() { return s_constructed; } @@ -75,7 +77,6 @@ class CoverManager : public QSplitter, public Meta::Observer private slots: void slotArtistQueryResult( QString collectionId, Meta::ArtistList artists ); void slotContinueConstruction(); - void init(); void slotArtistSelected(); void slotAlbumQueryResult( QString collectionId, Meta::AlbumList albums ); @@ -102,6 +103,7 @@ class CoverManager : public QSplitter, public Meta::Observer void loadCover( const QString &, const QString & ); QList<CoverViewItem*> selectedItems(); + QSplitter *m_splitter; QTreeWidget *m_artistView; CoverView *m_coverView; @@ -141,7 +143,6 @@ class CoverManager : public QSplitter, public Meta::Observer int m_coversFetched; int m_coverErrors; - bool m_isClosing; bool m_isLoadingCancelled; };