Bug 290867

Summary: Amarok crashes when recreating a dynamic playlist
Product: [Applications] amarok Reporter: Julien Bigot <anarky>
Component: generalAssignee: Amarok Developers <amarok-bugs-dist>
Status: RESOLVED DUPLICATE    
Severity: crash    
Priority: NOR    
Version: 2.5.0   
Target Milestone: 2.6   
Platform: Debian unstable   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Julien Bigot 2012-01-07 10:58:42 UTC
Application: amarok (2.5.0)
KDE Platform Version: 4.7.4 (4.7.4)
Qt Version: 4.7.4
Operating System: Linux 3.2.0-rc4-amd64 x86_64
Distribution: Debian GNU/Linux unstable (sid)

-- Information about the crash:
Steps to reproduce:
 * create a dynamic playlist that uses the "EchoNest service" bias
 * here the service seems too slow and the playlist creation doesn't progress
 * replace the "EchoNest service" bias by a random bias
 * cancel the non progressing playlist creation
 * hit "repeupler" (french for repopulate I guess) to use this new playlist
 * watch Amarok crash

LISPish description of the dynamic playlist I use:
(IfElse
  (Partition
    (next track from album)
    (and
      (EchoNest similar to previous track)
      (Rating > 2)
    )
  )
  (Rating > 3)
)

The crash can be reproduced every time.

-- Backtrace:
Application: Amarok (amarok), signal: Aborted
[Current thread is 1 (Thread 0x7fc6b1c3a780 (LWP 19888))]

Thread 12 (Thread 0x7fc68c61d700 (LWP 19891)):
#0  0x00007fc6ae557863 in *__GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fc6a54b317f in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#2  0x00007fc6a54a459c in pa_mainloop_poll () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#3  0x00007fc6a54a4c09 in pa_mainloop_iterate () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#4  0x00007fc6a54a4cc0 in pa_mainloop_run () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#5  0x00007fc6a54b312f in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#6  0x00007fc69cd9b978 in ?? () from /usr/lib/x86_64-linux-gnu/libpulsecommon-1.1.so
#7  0x00007fc6aad4fb50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#8  0x00007fc6ae5624ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#9  0x0000000000000000 in ?? ()

Thread 11 (Thread 0x7fc689325700 (LWP 19893)):
#0  0x00007fc6ae557863 in *__GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fc6a7f3e5d8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fc6a7f3ea99 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fc6aeeb6e2f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#4  0x00007fc6aee8b492 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#5  0x00007fc6aee8b68f in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0x00007fc6aeda330f in QThread::exec() () from /usr/lib/libQtCore.so.4
#7  0x00007fc6aee6e35f in QInotifyFileSystemWatcherEngine::run() () from /usr/lib/libQtCore.so.4
#8  0x00007fc6aeda5cf5 in QThreadPrivate::start(void*) () from /usr/lib/libQtCore.so.4
#9  0x00007fc6aad4fb50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#10 0x00007fc6ae5624ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 10 (Thread 0x7fc67effd700 (LWP 19894)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fc6aeda618b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#2  0x00007fc6ac30fa94 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x28c18a0, th=0x29ca1a0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#3  0x00007fc6ac31203b in ThreadWeaver::WorkingHardState::applyForWork (this=0x29e31f0, th=0x29ca1a0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#4  0x00007fc6ac310eff in ThreadWeaver::ThreadRunHelper::run (this=0x7fc67effce20, parent=0x28c18a0, th=0x29ca1a0) at ../../../threadweaver/Weaver/Thread.cpp:87
#5  0x00007fc6ac310f8b in ThreadWeaver::Thread::run (this=0x29ca1a0) at ../../../threadweaver/Weaver/Thread.cpp:142
#6  0x00007fc6aeda5cf5 in QThreadPrivate::start(void*) () from /usr/lib/libQtCore.so.4
#7  0x00007fc6aad4fb50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#8  0x00007fc6ae5624ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#9  0x0000000000000000 in ?? ()

Thread 9 (Thread 0x7fc67e523700 (LWP 19895)):
#0  __lll_lock_wait_private () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:97
#1  0x00007fc6ae505f98 in _L_lock_9627 () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007fc6ae504381 in *__GI___libc_free (mem=0x7fc674000020) at malloc.c:3736
#3  0x00007fc6aeeb7ba3 in QTimerInfoList::unregisterTimer(int) () from /usr/lib/libQtCore.so.4
#4  0x00007fc6aeea6d51 in QTimer::stop() () from /usr/lib/libQtCore.so.4
#5  0x00007fc6aeea6e55 in QTimer::timerEvent(QTimerEvent*) () from /usr/lib/libQtCore.so.4
#6  0x00007fc6aeea2799 in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
#7  0x00007fc6af87ac64 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#8  0x00007fc6af87faf1 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#9  0x00007fc6b1644ae6 in KApplication::notify (this=0x7fff5daee560, receiver=0x2d64aa0, event=0x7fc67e522ba0) at ../../kdeui/kernel/kapplication.cpp:311
#10 0x00007fc6aee8c28c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#11 0x00007fc6aeeb8c82 in QTimerInfoList::activateTimers() () from /usr/lib/libQtCore.so.4
#12 0x00007fc6aeeb64d8 in idleTimerSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib/libQtCore.so.4
#13 0x00007fc6a7f3e0cf in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#14 0x00007fc6a7f3e8c8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#15 0x00007fc6a7f3ea99 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#16 0x00007fc6aeeb6e2f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#17 0x00007fc6aee8b492 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#18 0x00007fc6aee8b68f in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#19 0x00007fc6aeda330f in QThread::exec() () from /usr/lib/libQtCore.so.4
#20 0x00007fc6aeda5cf5 in QThreadPrivate::start(void*) () from /usr/lib/libQtCore.so.4
#21 0x00007fc6aad4fb50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#22 0x00007fc6ae5624ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#23 0x0000000000000000 in ?? ()

Thread 8 (Thread 0x7fc67daf6700 (LWP 19896)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:216
#1  0x00007fc6aeda60fe in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#2  0x00007fc6aed9a97f in QThreadPoolThread::run() () from /usr/lib/libQtCore.so.4
#3  0x00007fc6aeda5cf5 in QThreadPrivate::start(void*) () from /usr/lib/libQtCore.so.4
#4  0x00007fc6aad4fb50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#5  0x00007fc6ae5624ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7fc67cad4700 (LWP 19897)):
[KCrash Handler]
#6  0x00007fc6ae4bf405 in *__GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#7  0x00007fc6ae4c2680 in *__GI_abort () at abort.c:92
#8  0x00007fc6ae4f5e0b in __libc_message (do_abort=<optimized out>, fmt=<optimized out>) at ../sysdeps/unix/sysv/linux/libc_fatal.c:189
#9  0x00007fc6ae4ff656 in malloc_printerr (action=3, str=0x7fc6ae5d336b "corrupted double-linked list", ptr=<optimized out>) at malloc.c:6283
#10 0x00007fc6ae4ffa8d in malloc_consolidate (av=<optimized out>) at malloc.c:5161
#11 0x00007fc6ae501db4 in _int_malloc (av=0x7fc674000020, bytes=19897) at malloc.c:4373
#12 0x00007fc6ae504470 in *__GI___libc_malloc (bytes=4096) at malloc.c:3660
#13 0x00007fc6aedc31eb in QListData::detach(int) () from /usr/lib/libQtCore.so.4
#14 0x00007fc6b0831acc in QList<KSharedPtr<Meta::Track> >::detach_helper (this=<optimized out>, alloc=<optimized out>) at /usr/include/qt4/QtCore/qlist.h:694
#15 0x00007fc6b0a08459 in detach_helper (this=0x7fc67cad34a0) at /usr/include/qt4/QtCore/qlist.h:710
#16 detach (this=0x7fc67cad34a0) at /usr/include/qt4/QtCore/qlist.h:126
#17 detach (this=0x7fc67cad34a0) at ./AlbumPlayBias.moc:78
#18 end (this=0x7fc67cad34a0) at /usr/include/qt4/QtCore/qlist.h:257
#19 last (this=0x7fc67cad34a0) at /usr/include/qt4/QtCore/qlist.h:271
#20 Dynamic::AlbumPlayBias::trackMatches (this=0x2abef20, position=<optimized out>, playlist=<optimized out>, contextCount=<optimized out>) at ../../src/dynamic/biases/AlbumPlayBias.cpp:214
#21 0x00007fc6b0a17624 in MatchState::compute (this=0x7fc67cad35a0) at ../../src/dynamic/biases/PartBias.cpp:134
#22 0x00007fc6b0a14896 in MatchState (contextCount=<optimized out>, playlist=..., ignoreTrack=<optimized out>, bias=0x2abd150, this=0x7fc67cad35a0) at ../../src/dynamic/biases/PartBias.cpp:111
#23 Dynamic::PartBias::updateResults (this=0x2abd150) at ../../src/dynamic/biases/PartBias.cpp:464
#24 0x00007fc6b0a15bd9 in Dynamic::PartBias::matchingTracks (this=0x2abd150, position=17, playlist=..., contextCount=1, universe=...) at ../../src/dynamic/biases/PartBias.cpp:450
#25 0x00007fc6b0a10dde in Dynamic::IfElseBias::matchingTracks (this=0x2abc7e0, position=17, playlist=..., contextCount=1, universe=...) at ../../src/dynamic/biases/IfElseBias.cpp:103
#26 0x00007fc6b09ef214 in Dynamic::BiasSolver::matchingTracks (this=0x296f1c0, position=<optimized out>, playlist=<optimized out>) at ../../src/dynamic/BiasSolver.cpp:611
#27 0x00007fc6b09f0f09 in Dynamic::BiasSolver::simpleOptimize (this=0x296f1c0, list=0x7fc67cad3a30) at ../../src/dynamic/BiasSolver.cpp:247
#28 0x00007fc6b09f41ef in Dynamic::BiasSolver::run (this=0x296f1c0) at ../../src/dynamic/BiasSolver.cpp:206
#29 0x00007fc6ac3116c1 in ThreadWeaver::JobRunHelper::runTheJob (this=0x7fc67cad3da0, th=0x2ae7a30, job=0x296f1c0) at ../../../threadweaver/Weaver/Job.cpp:106
#30 0x00007fc6ac3117ec in ThreadWeaver::Job::execute (this=0x296f1c0, th=0x2ae7a30) at ../../../threadweaver/Weaver/Job.cpp:135
#31 0x00007fc6ac310ecf in ThreadWeaver::ThreadRunHelper::run (this=0x7fc67cad3e20, parent=0x28c18a0, th=0x2ae7a30) at ../../../threadweaver/Weaver/Thread.cpp:95
#32 0x00007fc6ac310f8b in ThreadWeaver::Thread::run (this=0x2ae7a30) at ../../../threadweaver/Weaver/Thread.cpp:142
#33 0x00007fc6aeda5cf5 in QThreadPrivate::start(void*) () from /usr/lib/libQtCore.so.4
#34 0x00007fc6aad4fb50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#35 0x00007fc6ae5624ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#36 0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7fc67c2d3700 (LWP 19898)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fc6aeda618b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#2  0x00007fc6ac30fa94 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x28c18a0, th=0x2ae9710) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#3  0x00007fc6ac31203b in ThreadWeaver::WorkingHardState::applyForWork (this=0x29e31f0, th=0x2ae9710) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#4  0x00007fc6ac310eff in ThreadWeaver::ThreadRunHelper::run (this=0x7fc67c2d2e20, parent=0x28c18a0, th=0x2ae9710) at ../../../threadweaver/Weaver/Thread.cpp:87
#5  0x00007fc6ac310f8b in ThreadWeaver::Thread::run (this=0x2ae9710) at ../../../threadweaver/Weaver/Thread.cpp:142
#6  0x00007fc6aeda5cf5 in QThreadPrivate::start(void*) () from /usr/lib/libQtCore.so.4
#7  0x00007fc6aad4fb50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#8  0x00007fc6ae5624ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#9  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7fc67b498700 (LWP 19899)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fc6aeda618b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#2  0x00007fc6ac30fa94 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x28c18a0, th=0x2c02280) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#3  0x00007fc6ac31203b in ThreadWeaver::WorkingHardState::applyForWork (this=0x29e31f0, th=0x2c02280) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#4  0x00007fc6ac310eff in ThreadWeaver::ThreadRunHelper::run (this=0x7fc67b497e20, parent=0x28c18a0, th=0x2c02280) at ../../../threadweaver/Weaver/Thread.cpp:87
#5  0x00007fc6ac310f8b in ThreadWeaver::Thread::run (this=0x2c02280) at ../../../threadweaver/Weaver/Thread.cpp:142
#6  0x00007fc6aeda5cf5 in QThreadPrivate::start(void*) () from /usr/lib/libQtCore.so.4
#7  0x00007fc6aad4fb50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#8  0x00007fc6ae5624ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#9  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fc67a654700 (LWP 19900)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fc6a466ef2c in WTF::TCMalloc_PageHeap::scavengerThread() () from /usr/lib/libQtWebKit.so.4
#2  0x00007fc6a466f059 in WTF::TCMalloc_PageHeap::runScavengerThread(void*) () from /usr/lib/libQtWebKit.so.4
#3  0x00007fc6aad4fb50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#4  0x00007fc6ae5624ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fc679b3e700 (LWP 19901)):
#0  0x00007fc6ae55bfa3 in select () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007fc6aee6dd11 in QProcessManager::run() () from /usr/lib/libQtCore.so.4
#2  0x00007fc6aeda5cf5 in QThreadPrivate::start(void*) () from /usr/lib/libQtCore.so.4
#3  0x00007fc6aad4fb50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#4  0x00007fc6ae5624ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fc67933d700 (LWP 19903)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fc6ab32b4b2 in ?? () from /usr/lib/libQtScript.so.4
#2  0x00007fc6ab32b4e9 in ?? () from /usr/lib/libQtScript.so.4
#3  0x00007fc6aad4fb50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#4  0x00007fc6ae5624ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fc6b1c3a780 (LWP 19888)):
#0  0x00007fc6ae5564dd in read () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007fc6a7f7fa9f in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fc6a7f3dd17 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fc6a7f3e5f2 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fc6a7f3ea99 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007fc6aeeb6e2f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0x00007fc6af91eeee in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtGui.so.4
#7  0x00007fc6aee8b492 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#8  0x00007fc6aee8b68f in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#9  0x00007fc6aee8f837 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#10 0x0000000000409091 in main (argc=1, argv=0x7fff5daf09e8) at ../../src/main.cpp:303

Possible duplicates by query: bug 283019, bug 281770, bug 277913, bug 272065.

Reported using DrKonqi
Comment 1 Myriam Schweingruber 2012-01-07 23:03:55 UTC

*** This bug has been marked as a duplicate of bug 280056 ***