Bug 224673 - Amarok 2 suddenly crashed
Summary: Amarok 2 suddenly crashed
Status: RESOLVED FIXED
Alias: None
Product: kdelibs
Classification: Frameworks and Libraries
Component: knotify (show other bugs)
Version: 4.3
Platform: Unlisted Binaries Linux
: NOR crash
Target Milestone: ---
Assignee: Amarok Developers
URL:
Keywords:
: 225674 225901 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-01-28 22:19 UTC by Sergei Andreev
Modified: 2010-02-08 12:34 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sergei Andreev 2010-01-28 22:19:07 UTC
Application that crashed: amarok
Version of the application: 2.2-GIT
KDE Version: 4.3.5 (KDE 4.3.5)
Qt Version: 4.5.2
Operating System: Linux 2.6.31-18-generic x86_64
Distribution: Ubuntu 9.10

What I was doing when the application crashed:
Amarok suddenly crashed when there was high CPU and IO activity - KTorrent was allocating 11 GiB of harddrive space. But I am not sure this was the reason.

 -- Backtrace:
Application: Amarok (amarok), signal: Segmentation fault
The current source language is "auto; currently c".
[Current thread is 1 (Thread 0x7f874bd1e770 (LWP 8855))]

Thread 17 (Thread 0x7f8732621910 (LWP 8859)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:220
#1  0x00007f873811dc91 in ?? () from /usr/lib/libxine.so.1
#2  0x00007f8743d4da04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#3  0x00007f8748ea880d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 16 (Thread 0x7f87310d8910 (LWP 8860)):
#0  0x00007f8748e9c3c3 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=29) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f874221237c in ?? () from /lib/libglib-2.0.so.0
#2  0x00007f87422126c0 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0x00007f87497cc1fe in QEventDispatcherGlib::processEvents (this=0x8bdb00, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:329
#4  0x00007f87497a2532 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#5  0x00007f87497a2904 in QEventLoop::exec (this=0x7f87310d7fe0, flags=) at kernel/qeventloop.cpp:201
#6  0x00007f87496ba6cb in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#7  0x00007f87383791ce in ?? () from /usr/lib/qt4/plugins/phonon_backend/phonon_xine.so
#8  0x00007f87496bd445 in QThreadPrivate::start (arg=0x9a5d90) at thread/qthread_unix.cpp:188
#9  0x00007f8743d4da04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#10 0x00007f8748ea880d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()
The current source language is "auto; currently asm".

Thread 15 (Thread 0x7f872bfff910 (LWP 8862)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f873812e983 in ?? () from /usr/lib/libxine.so.1
#2  0x00007f8743d4da04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#3  0x00007f8748ea880d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()
The current source language is "auto; currently c".

Thread 14 (Thread 0x7f872b7fe910 (LWP 8863)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f873812e983 in ?? () from /usr/lib/libxine.so.1
#2  0x00007f8743d4da04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#3  0x00007f8748ea880d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()
The current source language is "auto; currently asm".

Thread 13 (Thread 0x7f872affd910 (LWP 8864)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f873812e983 in ?? () from /usr/lib/libxine.so.1
#2  0x00007f8743d4da04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#3  0x00007f8748ea880d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 12 (Thread 0x7f872a7fc910 (LWP 8865)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f873812e983 in ?? () from /usr/lib/libxine.so.1
#2  0x00007f8743d4da04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#3  0x00007f8748ea880d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 11 (Thread 0x7f87291bb910 (LWP 8867)):
#0  0x00007f8748ea1412 in select () from /lib/libc.so.6
#1  0x00007f8738146725 in xine_usec_sleep () from /usr/lib/libxine.so.1
#2  0x00007f873812b7e9 in ?? () from /usr/lib/libxine.so.1
#3  0x00007f8743d4da04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#4  0x00007f8748ea880d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 10 (Thread 0x7f8721197910 (LWP 8868)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f87496be4fb in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x18feeb0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x18feeb0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f874a57e43e in QFileInfoGatherer::run (this=<value optimized out>) at dialogs/qfileinfogatherer.cpp:207
#4  0x00007f87496bd445 in QThreadPrivate::start (arg=0x18feea0) at thread/qthread_unix.cpp:188
#5  0x00007f8743d4da04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#6  0x00007f8748ea880d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()
The current source language is "auto; currently c".

Thread 9 (Thread 0x7f8720996910 (LWP 8869)):
#0  0x00007f8748e9c3c3 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f874221237c in ?? () from /lib/libglib-2.0.so.0
#2  0x00007f87422126c0 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0x00007f87497cc1fe in QEventDispatcherGlib::processEvents (this=0x1921cb0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:329
#4  0x00007f87497a2532 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#5  0x00007f87497a2904 in QEventLoop::exec (this=0x7f8720995ff0, flags=) at kernel/qeventloop.cpp:201
#6  0x00007f87496ba6cb in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#7  0x00007f8749785b78 in QInotifyFileSystemWatcherEngine::run (this=0x1900ae0) at io/qfilesystemwatcher_inotify.cpp:214
#8  0x00007f87496bd445 in QThreadPrivate::start (arg=0x1900ae0) at thread/qthread_unix.cpp:188
#9  0x00007f8743d4da04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#10 0x00007f8748ea880d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()
The current source language is "auto; currently asm".

Thread 8 (Thread 0x7f8720195910 (LWP 8870)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f87496be4fb in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0xb3984d8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0xb3984d8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f872942fb93 in XmlParseJob::run (this=0xb398490) at /home/seajey/myRepo/Amarok/src/amarok/src/collection/sqlcollection/ScanManager.cpp:692
#4  0x00007f8745f2675d in ThreadWeaver::JobRunHelper::runTheJob (this=0x7f8720194fa0, th=0x1352c50, job=0xb398490) at ../../../threadweaver/Weaver/Job.cpp:106
#5  0x00007f8745f26a5e in ThreadWeaver::Job::execute (this=0xb398490, th=0x1352c50) at ../../../threadweaver/Weaver/Job.cpp:135
#6  0x00007f8745f25a2f in ThreadWeaver::ThreadRunHelper::run (this=0x7f8720195030, parent=0x1099700, th=0x1352c50) at ../../../threadweaver/Weaver/Thread.cpp:95
#7  0x00007f8745f25eb8 in ThreadWeaver::Thread::run (this=0x1352c50) at ../../../threadweaver/Weaver/Thread.cpp:142
#8  0x00007f87496bd445 in QThreadPrivate::start (arg=0x1352c50) at thread/qthread_unix.cpp:188
#9  0x00007f8743d4da04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#10 0x00007f8748ea880d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()
The current source language is "auto; currently c".

Thread 7 (Thread 0x7f871f994910 (LWP 8871)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f87496be4fb in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x13acb80, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x13acb80, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f8745f25326 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1099700, th=0x18f7fb0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007f8745f2745b in ThreadWeaver::WorkingHardState::applyForWork (this=0x11a18a0, th=0x18f7fb0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007f8745f27474 in ThreadWeaver::WorkingHardState::applyForWork (this=0x11a18a0, th=0x18f7fb0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007f8745f25a5f in ThreadWeaver::ThreadRunHelper::run (this=0x7f871f994030, parent=0x1099700, th=0x18f7fb0) at ../../../threadweaver/Weaver/Thread.cpp:87
#7  0x00007f8745f25eb8 in ThreadWeaver::Thread::run (this=0x18f7fb0) at ../../../threadweaver/Weaver/Thread.cpp:142
#8  0x00007f87496bd445 in QThreadPrivate::start (arg=0x18f7fb0) at thread/qthread_unix.cpp:188
#9  0x00007f8743d4da04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#10 0x00007f8748ea880d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()
The current source language is "auto; currently asm".

Thread 6 (Thread 0x7f871f193910 (LWP 8872)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f87496be4fb in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x13acb80, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x13acb80, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f8745f25326 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1099700, th=0x10c4cc0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007f8745f2745b in ThreadWeaver::WorkingHardState::applyForWork (this=0x11a18a0, th=0x10c4cc0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007f8745f27474 in ThreadWeaver::WorkingHardState::applyForWork (this=0x11a18a0, th=0x10c4cc0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007f8745f27474 in ThreadWeaver::WorkingHardState::applyForWork (this=0x11a18a0, th=0x10c4cc0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#7  0x00007f8745f27474 in ThreadWeaver::WorkingHardState::applyForWork (this=0x11a18a0, th=0x10c4cc0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#8  0x00007f8745f27474 in ThreadWeaver::WorkingHardState::applyForWork (this=0x11a18a0, th=0x10c4cc0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#9  0x00007f8745f27474 in ThreadWeaver::WorkingHardState::applyForWork (this=0x11a18a0, th=0x10c4cc0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#10 0x00007f8745f25a5f in ThreadWeaver::ThreadRunHelper::run (this=0x7f871f193030, parent=0x1099700, th=0x10c4cc0) at ../../../threadweaver/Weaver/Thread.cpp:87
#11 0x00007f8745f25eb8 in ThreadWeaver::Thread::run (this=0x10c4cc0) at ../../../threadweaver/Weaver/Thread.cpp:142
#12 0x00007f87496bd445 in QThreadPrivate::start (arg=0x10c4cc0) at thread/qthread_unix.cpp:188
#13 0x00007f8743d4da04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#14 0x00007f8748ea880d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#15 0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f871e992910 (LWP 8873)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f87496be4fb in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x13acb80, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x13acb80, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f8745f25326 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1099700, th=0x7f872c184a90) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007f8745f2745b in ThreadWeaver::WorkingHardState::applyForWork (this=0x11a18a0, th=0x7f872c184a90) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007f8745f27474 in ThreadWeaver::WorkingHardState::applyForWork (this=0x11a18a0, th=0x7f872c184a90) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007f8745f27474 in ThreadWeaver::WorkingHardState::applyForWork (this=0x11a18a0, th=0x7f872c184a90) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#7  0x00007f8745f25a5f in ThreadWeaver::ThreadRunHelper::run (this=0x7f871e992030, parent=0x1099700, th=0x7f872c184a90) at ../../../threadweaver/Weaver/Thread.cpp:87
#8  0x00007f8745f25eb8 in ThreadWeaver::Thread::run (this=0x7f872c184a90) at ../../../threadweaver/Weaver/Thread.cpp:142
#9  0x00007f87496bd445 in QThreadPrivate::start (arg=0x7f872c184a90) at thread/qthread_unix.cpp:188
#10 0x00007f8743d4da04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#11 0x00007f8748ea880d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f8705c6c910 (LWP 9584)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f873812154b in ?? () from /usr/lib/libxine.so.1
#2  0x00007f873812751d in ?? () from /usr/lib/libxine.so.1
#3  0x00007f8743d4da04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#4  0x00007f8748ea880d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f870546b910 (LWP 9585)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f873812154b in ?? () from /usr/lib/libxine.so.1
#2  0x00007f8738128555 in ?? () from /usr/lib/libxine.so.1
#3  0x00007f8743d4da04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#4  0x00007f8748ea880d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f8704c6a910 (LWP 9586)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f8738131a0b in xine_event_wait () from /usr/lib/libxine.so.1
#2  0x00007f8738131a7e in ?? () from /usr/lib/libxine.so.1
#3  0x00007f8743d4da04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#4  0x00007f8748ea880d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f874bd1e770 (LWP 8855)):
[KCrash Handler]
#5  KNotification::close (this=0xaf5ca40) at ../../kdeui/util/knotification.cpp:229
#6  0x00007f874b0b72e3 in Amarok::KNotificationBackend::showCurrentTrack (this=0x19dea70) at /home/seajey/myRepo/Amarok/src/amarok/src/KNotificationBackend.cpp:103
#7  0x00007f874b0b769c in Amarok::KNotificationBackend::qt_metacall (this=0x19dea70, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fffb79b1af0)
    at /home/seajey/myRepo/Amarok/src/amarok/src/KNotificationBackend.moc:69
#8  0x00007f87497b8ddc in QMetaObject::activate (sender=0x19183c0, from_signal_index=<value optimized out>, to_signal_index=<value optimized out>, argv=0x7f874ba699b8) at kernel/qobject.cpp:3113
#9  0x00007f87497b2d83 in QObject::event (this=0x19183c0, e=0x0) at kernel/qobject.cpp:1075
#10 0x00007f874a0c7efc in QApplicationPrivate::notify_helper (this=0x7c2550, receiver=0x19183c0, e=0x7fffb79b20f0) at kernel/qapplication.cpp:4056
#11 0x00007f874a0cf1ce in QApplication::notify (this=0x7fffb79b23f0, receiver=0x19183c0, e=0x7fffb79b20f0) at kernel/qapplication.cpp:4021
#12 0x00007f874b094840 in App::notify (this=0x7fffb79b23f0, receiver=0x19183c0, event=0x7fffb79b20f0) at /home/seajey/myRepo/Amarok/src/amarok/src/App.cpp:939
#13 0x00007f87497a3c2c in QCoreApplication::notifyInternal (this=0x7fffb79b23f0, receiver=0x19183c0, event=0x7fffb79b20f0) at kernel/qcoreapplication.cpp:610
#14 0x00007f87497ce862 in QCoreApplication::sendEvent (this=0x7b1280) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:213
#15 QTimerInfoList::activateTimers (this=0x7b1280) at kernel/qeventdispatcher_unix.cpp:572
#16 0x00007f87497cc25d in timerSourceDispatch (source=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:165
#17 0x00007f874220ebce in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#18 0x00007f8742212598 in ?? () from /lib/libglib-2.0.so.0
#19 0x00007f87422126c0 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#20 0x00007f87497cc1a6 in QEventDispatcherGlib::processEvents (this=0x625b90, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:327
#21 0x00007f874a15c4be in QGuiEventDispatcherGlib::processEvents (this=0x7fffb79b1900, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202
#22 0x00007f87497a2532 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#23 0x00007f87497a2904 in QEventLoop::exec (this=0x7fffb79b2390, flags=) at kernel/qeventloop.cpp:201
#24 0x00007f87497a4ab9 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#25 0x000000000040aec1 in main (argc=3, argv=0x7fffb79b4358) at /home/seajey/myRepo/Amarok/src/amarok/src/main.cpp:237
The current source language is "auto; currently c".

Reported using DrKonqi
Comment 1 Kevin Funk 2010-01-29 08:04:28 UTC
@KNotify devs.
Is this fixed in knotify from KDE4.4? I don't get these crashes here.

Offending code:
    Meta::TrackPtr track = The::engineController()->currentTrack();
    if( track )
    {
        if( m_notify )
            m_notify->close(); // Close old notification when switching quickly between tracks

        m_notify = new KNotification( "trackChange" );

        if( track->album() )
            m_notify->setPixmap( track->album()->imageWithBorder( 80 ) );

        m_notify->setTitle( i18n( "Now playing" ) );

        m_notify->setText( Amarok::prettyNowPlaying() );
        m_notify->sendEvent();
    }
Comment 2 Kevin Funk 2010-01-29 08:27:14 UTC
commit d9de1ba5b233c6d04fd779328e44659701607702
Author: Kevin Funk <krf@electrostorm.net>
Date:   Fri Jan 29 08:23:45 2010 +0100

    A safer approach for closing the notification. Avoids dereferencing a
    dangling pointer. I don't get crashes anyway but this may fix it.
    BUG: 224673

diff --git a/ChangeLog b/ChangeLog
index e2369d2..056a741 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -47,6 +47,7 @@ VERSION 2.2.3
       files which incorrectly have the same MusicBrainz unique identifier.
 
   BUGFIXES:
+    * Fixed crash in KNotify. (BR 224673)
     * Fixed queue management with mouse. (BR 217153)
     * Fixed playback of some streams causing the progress slider to show 
       garbage track length and position values like -322:0-35:0-59.
diff --git a/src/KNotificationBackend.cpp b/src/KNotificationBackend.cpp
index d95b92e..f303d92 100644
--- a/src/KNotificationBackend.cpp
+++ b/src/KNotificationBackend.cpp
@@ -99,8 +99,10 @@ Amarok::KNotificationBackend::showCurrentTrack() // slot
     Meta::TrackPtr track = The::engineController()->currentTrack();
     if( track )
     {
-        if( m_notify )
-            m_notify->close(); // Close old notification when switching quickly between tracks
+        if( m_notify ) {
+            delete m_notify; // Close old notification when switching quickly between tracks
+            m_notify = 0;
+        }
 
         m_notify = new KNotification( "trackChange" );
Comment 3 Kevin Funk 2010-02-08 10:34:53 UTC
*** Bug 225674 has been marked as a duplicate of this bug. ***
Comment 4 Myriam Schweingruber 2010-02-08 12:34:01 UTC
*** Bug 225901 has been marked as a duplicate of this bug. ***