Bug 246756 - Crash when pressing stop from the tray [@ TextScrollingWidget::requirePlainText]
Summary: Crash when pressing stop from the tray [@ TextScrollingWidget::requirePlainText]
Status: RESOLVED FIXED
Alias: None
Product: amarok
Classification: Unclassified
Component: Context View (show other bugs)
Version: 2.3.1-GIT
Platform: openSUSE RPMs Linux
: NOR crash (vote)
Target Milestone: 2.3.2
Assignee: Amarok Developers
URL:
Keywords:
: 246779 247042 248199 248477 248724 249053 249494 249654 251187 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-08-05 03:02 UTC by Cyrille Dunant
Modified: 2010-09-15 21:46 UTC (History)
12 users (show)

See Also:
Latest Commit:
Version Fixed In: 2.3.2


Attachments
New crash information added by DrKonqi (18.31 KB, text/plain)
2010-08-11 15:48 UTC, Sascha Peilicke
Details
New crash information added by DrKonqi (20.94 KB, text/plain)
2010-08-13 10:35 UTC, Sascha Peilicke
Details
New crash information added by DrKonqi (13.73 KB, text/plain)
2010-09-09 11:21 UTC, Myriam Schweingruber
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Cyrille Dunant 2010-08-05 03:02:26 UTC
Application: amarok (2.3-GIT)
KDE Platform Version: 4.5.62 (KDE 4.5.62 (KDE 4.6 >= 20100729)) "release 3"
Qt Version: 4.6.3
Operating System: Linux 2.6.31.12-0.2-desktop x86_64
Distribution: "openSUSE 11.2 (x86_64)"

-- Information about the crash:
- What I was doing when the application crashed:

I stopped the playback (stop function) from the systray and got this crash. I could not reproduce it when I relaunched amarok.

The crash can be reproduced some of the time.

-- Backtrace:
Application: Amarok (amarok), signal: Segmentation fault
[Current thread is 1 (Thread 0x7f9de93d0780 (LWP 10210))]

Thread 18 (Thread 0x7f9dc9f63910 (LWP 10215)):
#0  0x00007f9de46fc2cd in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f9dd0096671 in metronom_sync_loop () from /usr/lib64/libxine.so.1
#2  0x00007f9de46f765d in start_thread () from /lib64/libpthread.so.0
#3  0x00007f9de62a0e1d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 17 (Thread 0x7f9dc912b910 (LWP 10216)):
#0  0x00007f9dde931ea3 in g_main_context_prepare () from /usr/lib64/libglib-2.0.so.0
#1  0x00007f9dde932d79 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f9dde933420 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f9de78751e6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#4  0x00007f9de784a432 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#5  0x00007f9de784a80c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#6  0x00007f9de775949b in QThread::exec() () from /usr/lib64/libQtCore.so.4
#7  0x00007f9dd02f2326 in Phonon::MediaSource::type() const () from /usr/lib64/kde4/plugins/phonon_backend/phonon_xine.so
#8  0x00007f9de775bf95 in ?? () from /usr/lib64/libQtCore.so.4
#9  0x00007f9de46f765d in start_thread () from /lib64/libpthread.so.0
#10 0x00007f9de62a0e1d in clone () from /lib64/libc.so.6
#11 0x0000000000000000 in ?? ()

Thread 16 (Thread 0x7f9dc8720910 (LWP 10220)):
#0  0x00007f9de6297d03 in poll () from /lib64/libc.so.6
#1  0x00007f9dc8726c4e in ao_alsa_handle_event_thread () from /usr/lib64/xine/plugins/1.28/xineplug_ao_out_alsa.so
#2  0x00007f9de46f765d in start_thread () from /lib64/libpthread.so.0
#3  0x00007f9de62a0e1d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 15 (Thread 0x7f9dc7f1f910 (LWP 10221)):
#0  0x00007f9de46fc049 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f9dd00a7713 in ao_loop () from /usr/lib64/libxine.so.1
#2  0x00007f9de46f765d in start_thread () from /lib64/libpthread.so.0
#3  0x00007f9de62a0e1d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 14 (Thread 0x7f9dc70c5910 (LWP 10222)):
#0  0x00007f9de46fc049 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f9dd00a7713 in ao_loop () from /usr/lib64/libxine.so.1
#2  0x00007f9de46f765d in start_thread () from /lib64/libpthread.so.0
#3  0x00007f9de62a0e1d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 13 (Thread 0x7f9dc6882910 (LWP 10223)):
#0  0x00007f9de46fc049 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f9dd00a7713 in ao_loop () from /usr/lib64/libxine.so.1
#2  0x00007f9de46f765d in start_thread () from /lib64/libpthread.so.0
#3  0x00007f9de62a0e1d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 12 (Thread 0x7f9dc603f910 (LWP 10224)):
#0  0x00007f9de46fc049 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f9dd00a7713 in ao_loop () from /usr/lib64/libxine.so.1
#2  0x00007f9de46f765d in start_thread () from /lib64/libpthread.so.0
#3  0x00007f9de62a0e1d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 11 (Thread 0x7f9dc3f4d910 (LWP 10240)):
#0  0x00007f9de46fc049 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f9de775cfdb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2  0x00007f9de3359be6 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1449570, th=0x1449d50)
    at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/WeaverImpl.cpp:365
#3  0x00007f9de335bf5b in ThreadWeaver::WorkingHardState::applyForWork (this=0x1440ec0, th=0x1449d50) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/WorkingHardState.cpp:71
#4  0x00007f9de335bf74 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1440ec0, th=0x1449d50) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/WorkingHardState.cpp:74
#5  0x00007f9de335a44f in ThreadWeaver::ThreadRunHelper::run (this=0x7f9dc3f4d020, parent=0x1449570, th=0x1449d50) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/Thread.cpp:87
#6  0x00007f9de335a8a8 in ThreadWeaver::Thread::run (this=0x1449d50) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/Thread.cpp:142
#7  0x00007f9de775bf95 in ?? () from /usr/lib64/libQtCore.so.4
#8  0x00007f9de46f765d in start_thread () from /lib64/libpthread.so.0
#9  0x00007f9de62a0e1d in clone () from /lib64/libc.so.6
#10 0x0000000000000000 in ?? ()

Thread 10 (Thread 0x7f9dbd28b910 (LWP 10241)):
#0  0x00007f9de46fc049 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f9de775cfdb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2  0x00007f9de3359be6 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1449570, th=0x1455370)
    at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/WeaverImpl.cpp:365
#3  0x00007f9de335bf5b in ThreadWeaver::WorkingHardState::applyForWork (this=0x1440ec0, th=0x1455370) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/WorkingHardState.cpp:71
#4  0x00007f9de335a44f in ThreadWeaver::ThreadRunHelper::run (this=0x7f9dbd28b020, parent=0x1449570, th=0x1455370) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/Thread.cpp:87
#5  0x00007f9de335a8a8 in ThreadWeaver::Thread::run (this=0x1455370) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/Thread.cpp:142
#6  0x00007f9de775bf95 in ?? () from /usr/lib64/libQtCore.so.4
#7  0x00007f9de46f765d in start_thread () from /lib64/libpthread.so.0
#8  0x00007f9de62a0e1d in clone () from /lib64/libc.so.6
#9  0x0000000000000000 in ?? ()

Thread 9 (Thread 0x7f9dbca8a910 (LWP 10242)):
#0  0x00007f9de46fc049 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f9de775cfdb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2  0x00007f9de3359be6 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1449570, th=0x145fd90)
    at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/WeaverImpl.cpp:365
#3  0x00007f9de335bf5b in ThreadWeaver::WorkingHardState::applyForWork (this=0x1440ec0, th=0x145fd90) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/WorkingHardState.cpp:71
#4  0x00007f9de335bf74 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1440ec0, th=0x145fd90) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/WorkingHardState.cpp:74
#5  0x00007f9de335bf74 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1440ec0, th=0x145fd90) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007f9de335bf74 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1440ec0, th=0x145fd90) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/WorkingHardState.cpp:74
#7  0x00007f9de335bf74 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1440ec0, th=0x145fd90) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/WorkingHardState.cpp:74
#8  0x00007f9de335bf74 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1440ec0, th=0x145fd90) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/WorkingHardState.cpp:74
#9  0x00007f9de335a44f in ThreadWeaver::ThreadRunHelper::run (this=0x7f9dbca8a020, parent=0x1449570, th=0x145fd90) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/Thread.cpp:87
#10 0x00007f9de335a8a8 in ThreadWeaver::Thread::run (this=0x145fd90) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/Thread.cpp:142
#11 0x00007f9de775bf95 in ?? () from /usr/lib64/libQtCore.so.4
#12 0x00007f9de46f765d in start_thread () from /lib64/libpthread.so.0
#13 0x00007f9de62a0e1d in clone () from /lib64/libc.so.6
#14 0x0000000000000000 in ?? ()

Thread 8 (Thread 0x7f9dbc289910 (LWP 10243)):
#0  0x00007f9de46fc049 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f9de775cfdb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2  0x00007f9de3359be6 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1449570, th=0x146a790)
    at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/WeaverImpl.cpp:365
#3  0x00007f9de335bf5b in ThreadWeaver::WorkingHardState::applyForWork (this=0x1440ec0, th=0x146a790) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/WorkingHardState.cpp:71
#4  0x00007f9de335bf74 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1440ec0, th=0x146a790) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/WorkingHardState.cpp:74
#5  0x00007f9de335bf74 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1440ec0, th=0x146a790) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007f9de335bf74 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1440ec0, th=0x146a790) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/WorkingHardState.cpp:74
#7  0x00007f9de335bf74 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1440ec0, th=0x146a790) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/WorkingHardState.cpp:74
#8  0x00007f9de335a44f in ThreadWeaver::ThreadRunHelper::run (this=0x7f9dbc289020, parent=0x1449570, th=0x146a790) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/Thread.cpp:87
#9  0x00007f9de335a8a8 in ThreadWeaver::Thread::run (this=0x146a790) at /usr/src/debug/kdelibs-4.5.62svn1156592/threadweaver/Weaver/Thread.cpp:142
#10 0x00007f9de775bf95 in ?? () from /usr/lib64/libQtCore.so.4
#11 0x00007f9de46f765d in start_thread () from /lib64/libpthread.so.0
#12 0x00007f9de62a0e1d in clone () from /lib64/libc.so.6
#13 0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7f9db6575910 (LWP 10249)):
#0  0x00007f9de46fc049 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f9de1783766 in WTF::TCMalloc_PageHeap::scavengerThread() () from /usr/lib64/libQtWebKit.so.4
#2  0x00007f9de17837a9 in WTF::TCMalloc_PageHeap::runScavengerThread(void*) () from /usr/lib64/libQtWebKit.so.4
#3  0x00007f9de46f765d in start_thread () from /lib64/libpthread.so.0
#4  0x00007f9de62a0e1d in clone () from /lib64/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7f9dae79f910 (LWP 10256)):
#0  0x00007f9de46fc049 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f9de2bb46a6 in ?? () from /usr/lib64/libQtScript.so.4
#2  0x00007f9de2bb46e9 in ?? () from /usr/lib64/libQtScript.so.4
#3  0x00007f9de46f765d in start_thread () from /lib64/libpthread.so.0
#4  0x00007f9de62a0e1d in clone () from /lib64/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f9db481a910 (LWP 10362)):
#0  0x00007f9de46fc2cd in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f9dd00a1e69 in interruptable_sleep () from /usr/lib64/libxine.so.1
#2  0x00007f9dd00a4621 in video_out_loop () from /usr/lib64/libxine.so.1
#3  0x00007f9de46f765d in start_thread () from /lib64/libpthread.so.0
#4  0x00007f9de62a0e1d in clone () from /lib64/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f9db4019910 (LWP 10363)):
#0  0x00007f9de46fc049 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f9dd0099f3b in fifo_buffer_get () from /usr/lib64/libxine.so.1
#2  0x00007f9dd009ffcd in video_decoder_loop () from /usr/lib64/libxine.so.1
#3  0x00007f9de46f765d in start_thread () from /lib64/libpthread.so.0
#4  0x00007f9de62a0e1d in clone () from /lib64/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f9db7e5e910 (LWP 10364)):
#0  0x00007f9de46fc049 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f9dd0099f3b in fifo_buffer_get () from /usr/lib64/libxine.so.1
#2  0x00007f9dd00a1055 in audio_decoder_loop () from /usr/lib64/libxine.so.1
#3  0x00007f9de46f765d in start_thread () from /lib64/libpthread.so.0
#4  0x00007f9de62a0e1d in clone () from /lib64/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f9da9506910 (LWP 10365)):
#0  0x00007f9de46fc049 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f9dd00aa83b in xine_event_wait () from /usr/lib64/libxine.so.1
#2  0x00007f9dd00aa8ae in listener_loop () from /usr/lib64/libxine.so.1
#3  0x00007f9de46f765d in start_thread () from /lib64/libpthread.so.0
#4  0x00007f9de62a0e1d in clone () from /lib64/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f9de93d0780 (LWP 10210)):
[KCrash Handler]
#6  TextScrollingWidget::requirePlainText (this=0x0) at /usr/src/debug/amarok/src/context/widgets/TextScrollingWidget.cpp:109
#7  0x00007f9de8216699 in TextScrollingWidget::setText (this=0x0, text=...) at /usr/src/debug/amarok/src/context/widgets/TextScrollingWidget.cpp:84
#8  0x00007f9db6c129bc in SimilarArtistsApplet::enginePlaybackEnded (this=0x1c96540, finalPosition=<value optimized out>, trackLength=<value optimized out>)
    at /usr/src/debug/amarok/src/context/applets/similarartists/SimilarArtistsApplet.cpp:262
#9  0x00007f9de0976bf3 in Engine::EngineSubject::playbackEnded (this=<value optimized out>, finalPosition=63939, trackLength=198000, reason=EndedStopped)
    at /usr/src/debug/amarok/src/core/engine/EngineObserver.cpp:149
#10 0x00007f9de860a4e3 in EngineController::stop (this=0x89cd50, forceInstant=false) at /usr/src/debug/amarok/src/EngineController.cpp:539
#11 0x00007f9de85de770 in Amarok::StopAction::qt_metacall (this=0x120bc60, _c=InvokeMetaMethod, _id=<value optimized out>, _a=<value optimized out>)
    at /usr/src/debug/amarok/build/src/ActionClasses.moc:309
#12 0x00007f9de785edd6 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4
#13 0x00007f9de6c036f2 in QAction::triggered(bool) () from /usr/lib64/libQtGui.so.4
#14 0x00007f9de6c0576b in QAction::activate(QAction::ActionEvent) () from /usr/lib64/libQtGui.so.4
#15 0x00007f9de53b4c06 in ?? () from /usr/lib64/libdbusmenu-qt.so.2
#16 0x00007f9de53b766d in ?? () from /usr/lib64/libdbusmenu-qt.so.2
#17 0x00007f9de493146e in ?? () from /usr/lib64/libQtDBus.so.4
#18 0x00007f9de493222f in ?? () from /usr/lib64/libQtDBus.so.4
#19 0x00007f9de4932a4e in ?? () from /usr/lib64/libQtDBus.so.4
#20 0x00007f9de4932fa8 in ?? () from /usr/lib64/libQtDBus.so.4
#21 0x00007f9de785b949 in QObject::event(QEvent*) () from /usr/lib64/libQtCore.so.4
#22 0x00007f9de6c097fc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#23 0x00007f9de6c0fddb in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#24 0x00007f9de8e16c06 in KApplication::notify (this=0x7fffc9180370, receiver=0x1759cd0, event=0x1981450) at /usr/src/debug/kdelibs-4.5.62svn1156592/kdeui/kernel/kapplication.cpp:309
#25 0x00007f9de784bb1c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/libQtCore.so.4
#26 0x00007f9de784f1d4 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib64/libQtCore.so.4
#27 0x00007f9de7875653 in ?? () from /usr/lib64/libQtCore.so.4
#28 0x00007f9dde9329a3 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#29 0x00007f9dde933180 in ?? () from /usr/lib64/libglib-2.0.so.0
#30 0x00007f9dde933420 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#31 0x00007f9de7875193 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#32 0x00007f9de6cb821e in ?? () from /usr/lib64/libQtGui.so.4
#33 0x00007f9de784a432 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#34 0x00007f9de784a80c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#35 0x00007f9de784f4bb in QCoreApplication::exec() () from /usr/lib64/libQtCore.so.4
#36 0x0000000000408732 in main (argc=1, argv=0x7fffc91822e8) at /usr/src/debug/amarok/src/main.cpp:237

Reported using DrKonqi
Comment 1 Kevin Funk 2010-08-05 10:37:29 UTC
*** Bug 246779 has been marked as a duplicate of this bug. ***
Comment 2 Myriam Schweingruber 2010-08-05 12:09:41 UTC
Also happens with other applets...
Comment 3 Sascha Peilicke 2010-08-11 15:48:58 UTC
Created attachment 50010 [details]
New crash information added by DrKonqi

amarok (2.3-GIT) on KDE Platform 4.5.00 (KDE 4.5.0) using Qt 4.6.3

- What I was doing when the application crashed:
erased several tracks from a dynamic playlist

-- Backtrace (Reduced):
#6  TextScrollingWidget::requirePlainText (this=0x0) at /usr/src/debug/amarok/src/context/widgets/TextScrollingWidget.cpp:109
#7  0x00007fc04b0d2d69 in TextScrollingWidget::setText (this=0x0, text=...) at /usr/src/debug/amarok/src/context/widgets/TextScrollingWidget.cpp:84
#8  0x00007fc01667f9c4 in SimilarArtistsApplet::enginePlaybackEnded (this=0x1bb7860, finalPosition=<value optimized out>, trackLength=<value optimized out>)
    at /usr/src/debug/amarok/src/context/applets/similarartists/SimilarArtistsApplet.cpp:264
#9  0x00007fc043962ec3 in Engine::EngineSubject::playbackEnded (this=<value optimized out>, finalPosition=1648, trackLength=292000, reason=Engine::EngineObserver::EndedStopped)
    at /usr/src/debug/amarok/src/core/engine/EngineObserver.cpp:149
#10 0x00007fc04b71bee6 in EngineController::stop (this=0x97f360, forceInstant=false) at /usr/src/debug/amarok/src/EngineController.cpp:539
Comment 4 Sascha Peilicke 2010-08-13 10:35:18 UTC
Created attachment 50118 [details]
New crash information added by DrKonqi

amarok (2.3-GIT) on KDE Platform 4.5.00 (KDE 4.5.0) using Qt 4.6.3

- What I was doing when the application crashed:
starting an internet radio station and resizing the (mis-painted) plasma dock widget

-- Backtrace (Reduced):
#6  TextScrollingWidget::requirePlainText (this=0x0) at /usr/src/debug/amarok/src/context/widgets/TextScrollingWidget.cpp:109
#7  0x00007f084237ed69 in TextScrollingWidget::setText (this=0x0, text=...) at /usr/src/debug/amarok/src/context/widgets/TextScrollingWidget.cpp:84
#8  0x00007f080deea9c4 in SimilarArtistsApplet::enginePlaybackEnded (this=0x1b64840, finalPosition=<value optimized out>, trackLength=<value optimized out>)
    at /usr/src/debug/amarok/src/context/applets/similarartists/SimilarArtistsApplet.cpp:264
#9  0x00007f083ac0eec3 in Engine::EngineSubject::playbackEnded (this=<value optimized out>, finalPosition=4401, trackLength=0, reason=Engine::EngineObserver::EndedStopped)
    at /usr/src/debug/amarok/src/core/engine/EngineObserver.cpp:149
#10 0x00007f08429c7ee6 in EngineController::stop (this=0x9853b0, forceInstant=false) at /usr/src/debug/amarok/src/EngineController.cpp:539
Comment 5 Myriam Schweingruber 2010-08-13 12:02:50 UTC
Sascha, thank you for the feedback. We don't need more backtraces, these are all the same anyway and the bug is already confirmed.
Comment 6 Marius 2010-08-19 22:40:20 UTC
The crash happens because the SimilarArtistsApplet is instantiated twice for some reason, but init() is only called once (and only one applet is shown). m_headerLabel is initialized in init(), so if init() is not called, m_headerLabel becomes the Null pointer which causes the crash.
I did not find out yet why the applet is instantiated twice.
Comment 7 Myriam Schweingruber 2010-08-19 22:51:18 UTC
(In reply to comment #6)
> The crash happens because the SimilarArtistsApplet is instantiated twice for
> some reason, but init() is only called once (and only one applet is shown).
> m_headerLabel is initialized in init(), so if init() is not called,
> m_headerLabel becomes the Null pointer which causes the crash.
> I did not find out yet why the applet is instantiated twice.

Could this be related to bug 245513? I think I remember the problem was the same...
Comment 8 Myriam Schweingruber 2010-08-20 10:22:59 UTC
*** Bug 248477 has been marked as a duplicate of this bug. ***
Comment 9 Nicolas L. 2010-08-22 21:06:24 UTC
*** Bug 248724 has been marked as a duplicate of this bug. ***
Comment 10 Mark Kretschmann 2010-08-24 12:20:17 UTC
Here's some debug output showing how sometimes applets are loaded twice on startup, once by the Plasma::Corona (implicitly, we don't want that), and once by loadConfig (explicitly, what we want).


amarok:       BEGIN: virtual void ContextDock::polish() 
amarok:         BEGIN: Context::VerticalToolbarContainment::VerticalToolbarContainment(QObject*, const QVariantList&) 
amarok:            applet containment has corona: QObject(0x0)  
amarok:         END__: Context::VerticalToolbarContainment::VerticalToolbarContainment(QObject*, const QVariantList&) - Took 0.0002s 
amarok:          setting applets geom to QRectF(0,0 591x842) 
amarok:         BEGIN: CurrentTrack::CurrentTrack(QObject*, const QVariantList&) 
amarok:         END__: CurrentTrack::CurrentTrack(QObject*, const QVariantList&) - Took 0.00012s 
amarok:         BEGIN: CurrentTrack::CurrentTrack(QObject*, const QVariantList&) 
amarok:         END__: CurrentTrack::CurrentTrack(QObject*, const QVariantList&) - Took 7.1e-05s 
amarok:          setting applets geom to QRectF(0,0 591x842) 
amarok:         BEGIN: void ContextDock::createContextView(Plasma::Containment*) 
amarok:           BEGIN: ContextSubject::ContextSubject() 
amarok:           END__: ContextSubject::ContextSubject() - Took 8.8e-05s 
amarok:           BEGIN: Context::ContextView::ContextView(Plasma::Containment*, Plasma::Corona*, QWidget*) 
amarok:             BEGIN: virtual void Context::VerticalToolbarContainment::setView(Context::ContextView*) 
amarok:             END__: virtual void Context::VerticalToolbarContainment::setView(Context::ContextView*) - Took 7.2e-05s 
amarok:             BEGIN: void Context::AppletsListWidget::updateList() 
amarok:               BEGIN: int Context::AppletsListWidget::maximumVisibleAppletsOnList() const 
amarok:                  model row count:  12 
amarok:                  icon average size:  87.1667 
amarok:                  visible rect size:  0 
amarok:                  listTotalSize:  926 
amarok:               END__: int Context::AppletsListWidget::maximumVisibleAppletsOnList() const - Took 0.00018s 
amarok:                visible icons: 0 
amarok:             END__: void Context::AppletsListWidget::updateList() - Took 0.00041s 
amarok:             BEGIN: virtual void Context::AppletExplorer::resizeEvent(QGraphicsSceneResizeEvent*) 
amarok:               BEGIN: virtual void Context::AppletsListWidget::resizeEvent(QGraphicsSceneResizeEvent*) 
amarok:                 BEGIN: int Context::AppletsListWidget::maximumVisibleAppletsOnList() const 
amarok:                    model row count:  12 
amarok:                    icon average size:  87.1667 
amarok:                    visible rect size:  46 
amarok:                    listTotalSize:  926 
amarok:                 END__: int Context::AppletsListWidget::maximumVisibleAppletsOnList() const - Took 0.00011s 
amarok:               END__: virtual void Context::AppletsListWidget::resizeEvent(QGraphicsSceneResizeEvent*) - Took 0.00017s 
amarok:             END__: virtual void Context::AppletExplorer::resizeEvent(QGraphicsSceneResizeEvent*) - Took 0.00031s 
amarok:           END__: Context::ContextView::ContextView(Plasma::Containment*, Plasma::Corona*, QWidget*) - Took 0.49s 
amarok:            applettoolbar created with a real containment 
amarok:           BEGIN: void Context::ContextView::showHome() 
amarok:             BEGIN: virtual void Context::VerticalToolbarContainment::loadConfig(const KConfigGroup&) 
amarok:                plugins.size():  5 
amarok:                Adding applet:  "currenttrack" 
amarok:               BEGIN: virtual Plasma::Applet* Context::VerticalToolbarContainment::addApplet(const QString&, int) 
amarok:                 BEGIN: CurrentTrack::CurrentTrack(QObject*, const QVariantList&) 
amarok:                 END__: CurrentTrack::CurrentTrack(QObject*, const QVariantList&) - Took 8.5e-05s 
amarok:                 BEGIN: virtual void CurrentTrack::init() 
QGraphicsLinearLayout::removeAt: invalid index 1
amarok:                   BEGIN: CurrentEngine::CurrentEngine(QObject*, const QList<QVariant>&) 
amarok:                     BEGIN: void CurrentEngine::update() 
amarok:                     END__: void CurrentEngine::update() - Took 3.5e-05s 
amarok:                   END__: CurrentEngine::CurrentEngine(QObject*, const QList<QVariant>&) - Took 0.0002s 
amarok:                   BEGIN: virtual bool CurrentEngine::sourceRequestEvent(const QString&) 
amarok:                   END__: virtual bool CurrentEngine::sourceRequestEvent(const QString&) - Took 9e-05s 
amarok:                   BEGIN: void CurrentTrack::dataUpdated(const QString&, const QHash<QString, QVariant>&) 
amarok:                   END__: void CurrentTrack::dataUpdated(const QString&, const QHash<QString, QVariant>&) - Took 3.7e-05s 
amarok:                 END__: virtual void CurrentTrack::init() - Took 0.1s 
amarok:                  layout told to add applet at -1 
amarok:                 BEGIN: int Context::VerticalAppletLayout::minIndexWithAppletOnScreen(int) 
amarok:                 END__: int Context::VerticalAppletLayout::minIndexWithAppletOnScreen(int) - Took 3.9e-05s 
amarok:                  emitting addApplet with location 0 
amarok:                 BEGIN: void Context::AppletToolbar::appletAdded(Plasma::Applet*, int) 
amarok:                    inserting applet icon in position 0 
amarok:                   BEGIN: void Context::ToolbarView::appletAdded(Plasma::Applet*, int) 
amarok:                   END__: void Context::ToolbarView::appletAdded(Plasma::Applet*, int) - Took 7.3e-05s 
amarok:                 END__: void Context::AppletToolbar::appletAdded(Plasma::Applet*, int) - Took 0.0022s 
amarok:               END__: virtual Plasma::Applet* Context::VerticalToolbarContainment::addApplet(const QString&, int) - Took 0.12s
Comment 11 Mark Kretschmann 2010-08-25 19:41:36 UTC
commit f7221fc674ec3fde1671954b989c12999ee3bd1c
Author: Mark Kretschmann <kretschmann@kde.org>
Date:   Wed Aug 25 19:38:14 2010 +0200

    Fix crash caused by applets being loaded twice.
    
    Behind our backs Plasma always stores the containment state in
    "amarok-appletsrc", including loaded applets. When Amarok crashes
    then the applet list will remain, and on next startup Plasma tries to load
    the applets in addition to our own loading, which again crashes.
    
    BUG: 246756

diff --git a/ChangeLog b/ChangeLog
index 8cae766..53afc74 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,6 +11,7 @@ VERSION 2.3.2
     * Use system date/time format for default name when saving user playlists.
 
   BUGFIXES:
+    * Fixed potential crashes related to Applet loading. (BR 246756)
     * Fixed incorrect layout of applets on startup.
     * Fixed Collection Browser not properly updating after a full rescan,
       necessitating Amarok to be closed and reopened. Fixes various bugs. 
diff --git a/src/context/ContextScene.cpp b/src/context/ContextScene.cpp
index adaff4e..f35e20b 100644
--- a/src/context/ContextScene.cpp
+++ b/src/context/ContextScene.cpp
@@ -20,6 +20,7 @@
 #include "amarokconfig.h"
 #include "core/support/Debug.h"
 
+#include <KStandardDirs>
 #include <plasma/containment.h>
 #include <plasma/theme.h>
 
@@ -42,6 +43,12 @@ ContextScene::~ContextScene()
 
 void ContextScene::loadDefaultSetup()
 {
+    // Delete amarok-appletsrc config file (created by Plasma), because Plasma tries
+    // to load all applets listed in there, which can lead to duplicated applets which are
+    // not correctly initialized, and all sorts of crashes.
+    // See: BUG 246756
+    QFile::remove( KStandardDirs::locateLocal( "config", "amarok-appletsrc", false ) );
+
     Plasma::Containment* c = addContainment( "amarok_containment_vertical" );
     c->setScreen( -1 );
     c->setFormFactor( Plasma::Planar );
Comment 12 Myriam Schweingruber 2010-08-26 10:50:12 UTC
*** Bug 249053 has been marked as a duplicate of this bug. ***
Comment 13 Mark Kretschmann 2010-08-28 09:14:06 UTC
*** Bug 248199 has been marked as a duplicate of this bug. ***
Comment 14 Mark Kretschmann 2010-08-28 09:15:38 UTC
*** Bug 247042 has been marked as a duplicate of this bug. ***
Comment 15 Myriam Schweingruber 2010-08-30 21:49:59 UTC
*** Bug 249494 has been marked as a duplicate of this bug. ***
Comment 16 Myriam Schweingruber 2010-08-31 19:44:52 UTC
*** Bug 249654 has been marked as a duplicate of this bug. ***
Comment 17 Mark Kretschmann 2010-09-07 11:43:10 UTC
commit a9c47b78a37b1c846495f759be3f3924a7ad7741
Author: Mark Kretschmann <kretschmann@kde.org>
Date:   Tue Sep 7 11:29:25 2010 +0200

    Revert "Fix crash caused by applets being loaded twice."
    
    This reverts commit 5cf4947428c2b8e60c0e2ad6822c996676c71603.
    This reverts commit 330dbaebf6097320672ebfa80a91f92a6112ac75.
    This reverts commit f7221fc674ec3fde1671954b989c12999ee3bd1c.
    
    I seem to have fewer layout issues in the Context View without this patch,
    so it's probably better to remove it. However, some applets still show with
    wrong size, e.g. the VideoClip applet. We'll have to wait for the Plasma fixes
    in KDE 4.5.2.
    
    CCBUG: 246756

diff --git a/src/context/ContextScene.cpp b/src/context/ContextScene.cpp
index 3ecf6f9..adaff4e 100644
--- a/src/context/ContextScene.cpp
+++ b/src/context/ContextScene.cpp
@@ -20,7 +20,6 @@
 #include "amarokconfig.h"
 #include "core/support/Debug.h"
 
-#include <KStandardDirs>
 #include <plasma/containment.h>
 #include <plasma/theme.h>
 
@@ -43,17 +42,6 @@ ContextScene::~ContextScene()
 
 void ContextScene::loadDefaultSetup()
 {
-    // WORKAROUND for a bug in KDE 4.5.0 and 4.5.1:
-    // Delete amarok-appletsrc config file (created by Plasma), because Plasma tries
-    // to load all applets listed in there, which can lead to crashes due to applets
-    // being loaded twice.
-    // See: BUG 246756
-    if( ( KDE::versionMajor() == 4 && KDE::versionMinor() == 5 && KDE::versionRelease() == 0 ) ||
-        ( KDE::versionMajor() == 4 && KDE::versionMinor() == 5 && KDE::versionRelease() == 1 ) )
-    {
-        QFile::remove( KStandardDirs::locateLocal( "config", "amarok-appletsrc", false ) );
-    }
-
     Plasma::Containment* c = addContainment( "amarok_containment_vertical" );
     c->setScreen( -1 );
     c->setFormFactor( Plasma::Planar );
Comment 18 Myriam Schweingruber 2010-09-09 11:18:59 UTC
Reopening, as the fix had to be reverted.
Comment 19 Myriam Schweingruber 2010-09-09 11:21:59 UTC
Created attachment 51456 [details]
New crash information added by DrKonqi

amarok (2.3-GIT) on KDE Platform 4.5.1 (KDE 4.5.1) using Qt 4.7.0

- What I was doing when the application crashed:

Played a podcast, when the podcast ended, tha crash happend

Reproducible every time.

-- Backtrace (Reduced):
#6  0x00007f2553708322 in TextScrollingWidget::requirePlainText (this=0x0) at /home/myriam/kde/src/amarok/src/context/widgets/TextScrollingWidget.cpp:109
#7  0x00007f2553708278 in TextScrollingWidget::setText (this=0x0, text=...) at /home/myriam/kde/src/amarok/src/context/widgets/TextScrollingWidget.cpp:84
#8  0x00007f24fd164812 in SimilarArtistsApplet::enginePlaybackEnded (this=0x2b96540, finalPosition=0, trackLength=0)
    at /home/myriam/kde/src/amarok/src/context/applets/similarartists/SimilarArtistsApplet.cpp:264
#9  0x00007f255476b2c4 in Engine::EngineSubject::playbackEnded (this=0x1103990, finalPosition=0, trackLength=0, reason=Engine::EngineObserver::EndedStopped)
    at /home/myriam/kde/src/amarok/src/core/engine/EngineObserver.cpp:149
#10 0x00007f2553b0be02 in EngineController::slotQueueEnded (this=0x1103990) at /home/myriam/kde/src/amarok/src/EngineController.cpp:992
Comment 20 Myriam Schweingruber 2010-09-14 10:34:28 UTC
*** Bug 251187 has been marked as a duplicate of this bug. ***
Comment 21 Mark Kretschmann 2010-09-15 18:39:28 UTC
For reference, the Plasma patch for this issue is here:

http://websvn.kde.org/?view=revision&revision=1169026
Comment 22 Mark Kretschmann 2010-09-15 21:46:06 UTC
commit b73baeadaca62251be5c38d9f26e1779b0600a84
Author: Mark Kretschmann <kretschmann@kde.org>
Date:   Sun Sep 12 18:47:54 2010 +0200

    Fix crash caused by applets being loaded twice.
    
    Behind our backs Plasma always stores the containment state in
    "amarok-appletsrc", including loaded applets. When Amarok crashes
    then the applet list will remain, and on next startup Plasma tries to load
    the applets in addition to our own loading, which again crashes.
    NOTE: This is a re-commit of a reverted patch. We can use this now since
    the layout issues have also been worked around.
    
    BUG: 246756

diff --git a/src/context/ContextScene.cpp b/src/context/ContextScene.cpp
index adaff4e..3ecf6f9 100644
--- a/src/context/ContextScene.cpp
+++ b/src/context/ContextScene.cpp
@@ -20,6 +20,7 @@
 #include "amarokconfig.h"
 #include "core/support/Debug.h"
 
+#include <KStandardDirs>
 #include <plasma/containment.h>
 #include <plasma/theme.h>
 
@@ -42,6 +43,17 @@ ContextScene::~ContextScene()
 
 void ContextScene::loadDefaultSetup()
 {
+    // WORKAROUND for a bug in KDE 4.5.0 and 4.5.1:
+    // Delete amarok-appletsrc config file (created by Plasma), because Plasma tries
+    // to load all applets listed in there, which can lead to crashes due to applets
+    // being loaded twice.
+    // See: BUG 246756
+    if( ( KDE::versionMajor() == 4 && KDE::versionMinor() == 5 && KDE::versionRelease() == 0 ) ||
+        ( KDE::versionMajor() == 4 && KDE::versionMinor() == 5 && KDE::versionRelease() == 1 ) )
+    {
+        QFile::remove( KStandardDirs::locateLocal( "config", "amarok-appletsrc", false ) );
+    }
+
     Plasma::Containment* c = addContainment( "amarok_containment_vertical" );
     c->setScreen( -1 );
     c->setFormFactor( Plasma::Planar );