Bug 212115

Summary: Crash when LibLastfm throws exceptions
Product: [Applications] amarok Reporter: Jochen Bauer <skywalker_99>
Component: generalAssignee: Amarok Developers <amarok-bugs-dist>
Status: RESOLVED FIXED    
Severity: crash CC: andresbajotierra, kuba.serafinowski, lfranchi, modax, valorie.zimmerman
Priority: VHI Keywords: release_blocker
Version: 2.3-GIT   
Target Milestone: 2.2.2   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Jochen Bauer 2009-10-27 22:22:07 UTC
Version:           2.2-git (using KDE 4.3.2)
Compiler:          g++ 
OS:                Linux
Installed from:    Ubuntu Packages

If I play a stream from last.fm Amarok plays one or two songs and at the end of one of them, right before the next song should start, it crashes. I just discussed this with jeffrai on irc. If I play Songs from my collection, amarok doesn't crash. 

Here is my Backtrace:

Application: Amarok (amarok), signal: Segmentation fault
[Current thread is 0 (LWP 24832)]

Thread 21 (Thread 0xb02cab90 (LWP 24833)):
#0  0xb7f73430 in __kernel_vsyscall ()
#1  0xb464a412 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb66ba344 in pthread_cond_timedwait () from /lib/tls/i686/cmov/libc.so.6
#3  0xb116eae3 in ?? () from /usr/lib/libxine.so.1

Thread 20 (Thread 0xafa3eb90 (LWP 24834)):
#0  0xb41eb0e3 in ?? () from /usr/lib/libglib-2.0.so.0
#1  0xb41eb268 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#2  0xb6988317 in QEventDispatcherGlib::processEvents (this=0x8b8fed8, flags={i = -1348214216}) at kernel/qeventdispatcher_glib.cpp:329
#3  0xb695b1fa in QEventLoop::processEvents (this=0xafa3e2b0, flags={i = -1348214152}) at kernel/qeventloop.cpp:149
#4  0xb695b642 in QEventLoop::exec (this=0xafa3e2b0, flags={i = -1348214088}) at kernel/qeventloop.cpp:201
#5  0xb6864e19 in QThread::exec (this=0x8b53438) at thread/qthread.cpp:487
#6  0xb11bc20a in ?? () from /usr/lib/kde4/plugins/phonon_backend/phonon_xine.so
#7  0xb6868132 in QThreadPrivate::start (arg=0x8b53438) at thread/qthread_unix.cpp:188
#8  0xb46464ff in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#9  0xb66ab49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 19 (Thread 0xaf0ffb90 (LWP 24837)):
#0  0xb7f73430 in __kernel_vsyscall ()
#1  0xb66a0ae7 in poll () from /lib/tls/i686/cmov/libc.so.6
#2  0xafac3b19 in ?? () from /usr/lib/xine/plugins/1.26/xineplug_ao_out_alsa.so
#3  0xaf1005ac in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 18 (Thread 0xae6ffb90 (LWP 24838)):
#0  0xb7f73430 in __kernel_vsyscall ()
#1  0xb464a0e5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb66ba2ed in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6
#3  0xb117fd8e in ?? () from /usr/lib/libxine.so.1
#4  0x00000005 in ?? ()

Thread 17 (Thread 0xadcffb90 (LWP 24839)):
#0  0xb7f73430 in __kernel_vsyscall ()
#1  0xb464a0e5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb66ba2ed in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6
#3  0xb117fd8e in ?? () from /usr/lib/libxine.so.1
#4  0x00000001 in ?? ()

Thread 16 (Thread 0xad4feb90 (LWP 24840)):
#0  0xb7f73430 in __kernel_vsyscall ()
#1  0xb464a0e5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb66ba2ed in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6
#3  0xb117fd8e in ?? () from /usr/lib/libxine.so.1
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 15 (Thread 0xac413b90 (LWP 24842)):
#0  0xb7f73430 in __kernel_vsyscall ()
#1  0xb464a0e5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb66ba2ed in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6
#3  0xaca96bde in os_event_wait_low () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#4  0xaca938b1 in os_aio_simulated_handle () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#5  0xaca5536d in fil_aio_wait () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#6  0xac8e674e in io_handler_thread () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#7  0xb46464ff in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#8  0xb66ab49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 14 (Thread 0xab1b9b90 (LWP 24843)):
#0  0xb7f73430 in __kernel_vsyscall ()
#1  0xb464a0e5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb66ba2ed in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6
#3  0xaca96bde in os_event_wait_low () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#4  0xaca938b1 in os_aio_simulated_handle () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#5  0xaca5536d in fil_aio_wait () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#6  0xac8e674e in io_handler_thread () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#7  0xb46464ff in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#8  0xb66ab49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 13 (Thread 0xaa9b8b90 (LWP 24844)):
#0  0xb7f73430 in __kernel_vsyscall ()
#1  0xb464a0e5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb66ba2ed in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6
#3  0xaca96bde in os_event_wait_low () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#4  0xaca938b1 in os_aio_simulated_handle () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#5  0xaca5536d in fil_aio_wait () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#6  0xac8e674e in io_handler_thread () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#7  0xb46464ff in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#8  0xb66ab49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 12 (Thread 0xaa1b7b90 (LWP 24845)):
#0  0xb7f73430 in __kernel_vsyscall ()
#1  0xb464a0e5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb66ba2ed in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6
#3  0xaca96bde in os_event_wait_low () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#4  0xaca938b1 in os_aio_simulated_handle () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#5  0xaca5536d in fil_aio_wait () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#6  0xac8e674e in io_handler_thread () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#7  0xb46464ff in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#8  0xb66ab49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 11 (Thread 0xa8d26b90 (LWP 24847)):
#0  0xb7f73430 in __kernel_vsyscall ()
#1  0xb66a37b1 in select () from /lib/tls/i686/cmov/libc.so.6
#2  0xaca970aa in os_thread_sleep () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#3  0xac8e2ca0 in srv_lock_timeout_and_monitor_thread () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#4  0xb46464ff in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#5  0xb66ab49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 10 (Thread 0xa8525b90 (LWP 24848)):
#0  0xb7f73430 in __kernel_vsyscall ()
#1  0xb66a37b1 in select () from /lib/tls/i686/cmov/libc.so.6
#2  0xaca970aa in os_thread_sleep () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#3  0xac8e1af9 in srv_error_monitor_thread () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#4  0xb46464ff in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#5  0xb66ab49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 9 (Thread 0xa7d24b90 (LWP 24849)):
#0  0xb7f73430 in __kernel_vsyscall ()
#1  0xb464a0e5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb66ba2ed in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6
#3  0xaca96bde in os_event_wait_low () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#4  0xac8e0d09 in srv_master_thread () from /home/jochen/kde/lib/kde4/amarok_collection-mysqlecollection.so
#5  0xb46464ff in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#6  0xb66ab49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 8 (Thread 0xa5ef9b90 (LWP 24850)):
#0  0xb7f73430 in __kernel_vsyscall ()
#1  0xb66a37b1 in select () from /lib/tls/i686/cmov/libc.so.6
#2  0xb11987d6 in xine_usec_sleep () from /usr/lib/libxine.so.1
#3  0x00000000 in ?? ()

Thread 7 (Thread 0xa56f8b90 (LWP 24851)):
#0  0xb7f73430 in __kernel_vsyscall ()
#1  0xb464a0e5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb66ba2ed in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6
#3  0xb6869172 in QWaitCondition::wait (this=0x9c887f8, mutex=0x9c91740, time=4294967295) at thread/qwaitcondition_unix.cpp:87
#4  0xb5ae5148 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x9c887e0, th=0x9ca1aa8) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WeaverImpl.cpp:365
#5  0xb5ae7eec in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x9d4e2f0, th=0x9ca1aa8) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WorkingHardState.cpp:80
#6  0xb5ae3d2b in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x9c887e0, th=0x9ca1aa8) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WeaverImpl.cpp:356
#7  0xb5ae7fea in ThreadWeaver::WorkingHardState::applyForWork (this=0x9d4e2f0, th=0x9ca1aa8) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WorkingHardState.cpp:71
#8  0xb5ae56d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9c887e0, th=0x9ca1aa8, previous=0x0) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WeaverImpl.cpp:351
#9  0xb5ae8009 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9d4e2f0, th=0x9ca1aa8) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WorkingHardState.cpp:74
#10 0xb5ae56d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9c887e0, th=0x9ca1aa8, previous=0x0) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WeaverImpl.cpp:351
#11 0xb5ae8009 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9d4e2f0, th=0x9ca1aa8) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WorkingHardState.cpp:74
#12 0xb5ae56d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9c887e0, th=0x9ca1aa8, previous=0x96116e0) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WeaverImpl.cpp:351
#13 0xb5ae5fbe in ThreadWeaver::ThreadRunHelper::run (this=0xa56f8300, parent=0x9c887e0, th=0x9ca1aa8) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/Thread.cpp:87
#14 0xb5ae65fb in ThreadWeaver::Thread::run (this=0x9ca1aa8) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/Thread.cpp:142
#15 0xb6868132 in QThreadPrivate::start (arg=0x9ca1aa8) at thread/qthread_unix.cpp:188
#16 0xb46464ff in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#17 0xb66ab49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 6 (Thread 0xa46f6b90 (LWP 24854)):
#0  0xb7f73430 in __kernel_vsyscall ()
#1  0xb464a0e5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb66ba2ed in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6
#3  0xb68677e2 in QMutexPrivate::wait (this=0x8aa87b0, timeout=-1) at thread/qmutex_unix.cpp:80
#4  0xb6862df5 in QMutex::lock (this=0x8aa8864) at thread/qmutex.cpp:207
#5  0xa6ad49ee in QMutexLocker::relock (this=0xa46f604c) at /usr/include/qt4/QtCore/qmutex.h:120
#6  0xa6ad548a in QMutexLocker (this=0xa46f604c, m=0x8aa8864) at /usr/include/qt4/QtCore/qmutex.h:102
#7  0xa6ad24cd in Dynamic::SimilarArtistsBias::updateReady (this=0x8aa8838, collectionId=
      {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 29486}, alloc = 0, size = 0, data = 0x80520aa, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 1967}, alloc = 0, size = 0, data = 0xb6a5046e, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xa46f60a8, static codecForCStrings = 0x8a3cb50}, uids=
          {<QList<QString>> = {{p = {static shared_null = {ref = {_q_value = 62699}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0xa46f60a4}, d = 0xa46f60a4}}, <No data fields>})
    at /home/jochen/kde/src/amarok/src/services/lastfm/biases/SimilarArtistsBias.cpp:229
#8  0xa6ad2f9f in Dynamic::SimilarArtistsBias::qt_metacall (this=0x8aa8838, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0xa46f6178)
    at /home/jochen/kde/build/amarok/src/services/lastfm/SimilarArtistsBias.moc:75
#9  0xb69721b8 in QMetaObject::activate (sender=0x93c7da8, from_signal_index=11, to_signal_index=11, argv=0xa46f6178) at kernel/qobject.cpp:3113
#10 0xb6972e42 in QMetaObject::activate (sender=0x93c7da8, m=0xb7bbcad8, local_signal_index=7, argv=0xa46f6178) at kernel/qobject.cpp:3187
#11 0xb7926fcf in QueryMaker::newResultReady (this=0x93c7da8, _t1=
      {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 29486}, alloc = 0, size = 0, data = 0x80520aa, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 1967}, alloc = 0, size = 0, data = 0xb6a5046e, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xa46f61dc, static codecForCStrings = 0x8a3cb50}, _t2=
          {<QList<QString>> = {{p = {static shared_null = {ref = {_q_value = 62699}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0xa46f61d8}, d = 0xa46f61d8}}, <No data fields>})
    at /home/jochen/kde/build/amarok/src/QueryMaker.moc:152
#12 0xac7c003c in SqlQueryMaker::handleResult (this=0x93c7da8, result=@0xa46f621c) at /home/jochen/kde/src/amarok/src/collection/sqlcollection/SqlQueryMaker.cpp:773
#13 0xac7c4cf2 in SqlWorkerThread::run (this=0xa1a5470) at /home/jochen/kde/src/amarok/src/collection/sqlcollection/SqlQueryMaker.cpp:56
#14 0xb5ae7014 in ThreadWeaver::JobRunHelper::runTheJob (this=0xa46f6298, th=0x961c858, job=0xa1a5470) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/Job.cpp:106
#15 0xb5ae73b9 in ThreadWeaver::Job::execute (this=0xa1a5470, th=0x961c858) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/Job.cpp:135
#16 0xb5ae5f8a in ThreadWeaver::ThreadRunHelper::run (this=0xa46f6300, parent=0x9c887e0, th=0x961c858) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/Thread.cpp:95
#17 0xb5ae65fb in ThreadWeaver::Thread::run (this=0x961c858) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/Thread.cpp:142
#18 0xb6868132 in QThreadPrivate::start (arg=0x961c858) at thread/qthread_unix.cpp:188
#19 0xb46464ff in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#20 0xb66ab49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 5 (Thread 0xa3ef5b90 (LWP 24855)):
#0  0xb7f73430 in __kernel_vsyscall ()
#1  0xb464a0e5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb66ba2ed in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6
#3  0xb6869172 in QWaitCondition::wait (this=0x9c887f8, mutex=0x9c91740, time=4294967295) at thread/qwaitcondition_unix.cpp:87
#4  0xb5ae5148 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x9c887e0, th=0x8a9ce80) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WeaverImpl.cpp:365
#5  0xb5ae7eec in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x9d4e2f0, th=0x8a9ce80) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WorkingHardState.cpp:80
#6  0xb5ae3d2b in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x9c887e0, th=0x8a9ce80) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WeaverImpl.cpp:356
#7  0xb5ae7fea in ThreadWeaver::WorkingHardState::applyForWork (this=0x9d4e2f0, th=0x8a9ce80) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WorkingHardState.cpp:71
#8  0xb5ae56d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9c887e0, th=0x8a9ce80, previous=0x0) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WeaverImpl.cpp:351
#9  0xb5ae8009 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9d4e2f0, th=0x8a9ce80) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WorkingHardState.cpp:74
#10 0xb5ae56d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9c887e0, th=0x8a9ce80, previous=0x0) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WeaverImpl.cpp:351
#11 0xb5ae8009 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9d4e2f0, th=0x8a9ce80) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WorkingHardState.cpp:74
#12 0xb5ae56d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9c887e0, th=0x8a9ce80, previous=0x0) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WeaverImpl.cpp:351
#13 0xb5ae8009 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9d4e2f0, th=0x8a9ce80) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WorkingHardState.cpp:74
#14 0xb5ae56d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9c887e0, th=0x8a9ce80, previous=0x0) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WeaverImpl.cpp:351
#15 0xb5ae8009 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9d4e2f0, th=0x8a9ce80) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WorkingHardState.cpp:74
#16 0xb5ae56d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9c887e0, th=0x8a9ce80, previous=0x0) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WeaverImpl.cpp:351
#17 0xb5ae8009 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9d4e2f0, th=0x8a9ce80) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WorkingHardState.cpp:74
#18 0xb5ae56d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9c887e0, th=0x8a9ce80, previous=0x0) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WeaverImpl.cpp:351
#19 0xb5ae8009 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9d4e2f0, th=0x8a9ce80) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WorkingHardState.cpp:74
#20 0xb5ae56d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9c887e0, th=0x8a9ce80, previous=0x0) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WeaverImpl.cpp:351
#21 0xb5ae8009 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9d4e2f0, th=0x8a9ce80) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WorkingHardState.cpp:74
#22 0xb5ae56d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9c887e0, th=0x8a9ce80, previous=0x0) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WeaverImpl.cpp:351
#23 0xb5ae8009 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9d4e2f0, th=0x8a9ce80) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WorkingHardState.cpp:74
#24 0xb5ae56d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9c887e0, th=0x8a9ce80, previous=0x944c988) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WeaverImpl.cpp:351
#25 0xb5ae5fbe in ThreadWeaver::ThreadRunHelper::run (this=0xa3ef5300, parent=0x9c887e0, th=0x8a9ce80) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/Thread.cpp:87
#26 0xb5ae65fb in ThreadWeaver::Thread::run (this=0x8a9ce80) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/Thread.cpp:142
#27 0xb6868132 in QThreadPrivate::start (arg=0x8a9ce80) at thread/qthread_unix.cpp:188
#28 0xb46464ff in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#29 0xb66ab49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 4 (Thread 0xa36f4b90 (LWP 24856)):
#0  0xb7f73430 in __kernel_vsyscall ()
#1  0xb464a0e5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb66ba2ed in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6
#3  0xb6869172 in QWaitCondition::wait (this=0x9c887f8, mutex=0x9c91740, time=4294967295) at thread/qwaitcondition_unix.cpp:87
#4  0xb5ae5148 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x9c887e0, th=0x93c3a60) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WeaverImpl.cpp:365
#5  0xb5ae7eec in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x9d4e2f0, th=0x93c3a60) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WorkingHardState.cpp:80
#6  0xb5ae3d2b in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x9c887e0, th=0x93c3a60) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WeaverImpl.cpp:356
#7  0xb5ae7fea in ThreadWeaver::WorkingHardState::applyForWork (this=0x9d4e2f0, th=0x93c3a60) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WorkingHardState.cpp:71
#8  0xb5ae56d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9c887e0, th=0x93c3a60, previous=0x0) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WeaverImpl.cpp:351
#9  0xb5ae8009 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9d4e2f0, th=0x93c3a60) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WorkingHardState.cpp:74
#10 0xb5ae56d3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9c887e0, th=0x93c3a60, previous=0x9a4da40) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/WeaverImpl.cpp:351
#11 0xb5ae5fbe in ThreadWeaver::ThreadRunHelper::run (this=0xa36f4300, parent=0x9c887e0, th=0x93c3a60) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/Thread.cpp:87
#12 0xb5ae65fb in ThreadWeaver::Thread::run (this=0x93c3a60) at /build/buildd/kde4libs-4.3.2/threadweaver/Weaver/Thread.cpp:142
#13 0xb6868132 in QThreadPrivate::start (arg=0x93c3a60) at thread/qthread_unix.cpp:188
#14 0xb46464ff in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#15 0xb66ab49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 3 (Thread 0x9198cb90 (LWP 25235)):
#0  0xb7f73430 in __kernel_vsyscall ()
#1  0xb464a412 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb66ba344 in pthread_cond_timedwait () from /lib/tls/i686/cmov/libc.so.6
#3  0xb686914c in QWaitCondition::wait (this=0xa1a0ab0, mutex=0xa1a0aac, time=30000) at thread/qwaitcondition_unix.cpp:85
#4  0xb685dac6 in QThreadPoolThread::run (this=0x956b578) at concurrent/qthreadpool.cpp:140
#5  0xb6868132 in QThreadPrivate::start (arg=0x956b578) at thread/qthread_unix.cpp:188
#6  0xb46464ff in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#7  0xb66ab49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 2 (Thread 0xa2749b90 (LWP 25236)):
#0  0xb7f73430 in __kernel_vsyscall ()
#1  0xb464a412 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb66ba344 in pthread_cond_timedwait () from /lib/tls/i686/cmov/libc.so.6
#3  0xb686914c in QWaitCondition::wait (this=0xa1a0ab0, mutex=0xa1a0aac, time=30000) at thread/qwaitcondition_unix.cpp:85
#4  0xb685dac6 in QThreadPoolThread::run (this=0x9456708) at concurrent/qthreadpool.cpp:140
#5  0xb6868132 in QThreadPrivate::start (arg=0x9456708) at thread/qthread_unix.cpp:188
#6  0xb46464ff in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#7  0xb66ab49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 1 (Thread 0xb2c32950 (LWP 24832)):
[KCrash Handler]
#6  0x00000062 in ?? ()
#7  0xa6a3cdf8 in lastfm::ws::parse () from /usr/local/lib/liblastfm.so.0
#8  0xa6a589b6 in lastfm::Artist::getSimilar () from /usr/local/lib/liblastfm.so.0
#9  0xa6ad2977 in Dynamic::SimilarArtistsBias::artistQueryDone (this=0x8aa8838) at /home/jochen/kde/src/amarok/src/services/lastfm/biases/SimilarArtistsBias.cpp:169
#10 0xa6ad2f53 in Dynamic::SimilarArtistsBias::qt_metacall (this=0x8aa8838, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0xbfe4fb58)
    at /home/jochen/kde/build/amarok/src/services/lastfm/SimilarArtistsBias.moc:74
#11 0xb69721b8 in QMetaObject::activate (sender=0x9cdd2c8, from_signal_index=9, to_signal_index=9, argv=0x0) at kernel/qobject.cpp:3113
#12 0xb6972e42 in QMetaObject::activate (sender=0x9cdd2c8, m=0xb63ed6cc, local_signal_index=1, argv=0x0) at kernel/qobject.cpp:3187
#13 0xb639a717 in QNetworkReply::finished (this=0x9cdd2c8) at .moc/release-shared/moc_qnetworkreply.cpp:143
#14 0xa6ad9797 in KNetworkReply::jobDone (this=0x9cdd2c8, kJob=0x9cb5b48) at /home/jochen/kde/src/amarok/src/services/lastfm/kdenetwork/knetworkreply.cpp:153
#15 0xa6ad9d91 in KNetworkReply::qt_metacall (this=0x9cdd2c8, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0xbfe4fd0c) at /home/jochen/kde/build/amarok/src/services/lastfm/knetworkreply.moc:73
#16 0xb69721b8 in QMetaObject::activate (sender=0x9cb5b48, from_signal_index=7, to_signal_index=7, argv=0xbfe4fd0c) at kernel/qobject.cpp:3113
#17 0xb6972e42 in QMetaObject::activate (sender=0x9cb5b48, m=0xb6c81dc8, local_signal_index=3, argv=0xbfe4fd0c) at kernel/qobject.cpp:3187
#18 0xb6b23163 in KJob::result (this=0x9cb5b48, _t1=0x9cb5b48) at /build/buildd/kde4libs-4.3.2/obj-i486-linux-gnu/kdecore/kjob.moc:188
#19 0xb6b23609 in KJob::emitResult (this=0x9cb5b48) at /build/buildd/kde4libs-4.3.2/kdecore/jobs/kjob.cpp:304
#20 0xb4433d75 in KIO::SimpleJob::slotFinished (this=0x9cb5b48) at /build/buildd/kde4libs-4.3.2/kio/kio/job.cpp:477
#21 0xb44346b3 in KIO::TransferJob::slotFinished (this=0x9cb5b48) at /build/buildd/kde4libs-4.3.2/kio/kio/job.cpp:948
#22 0xb4430c5b in KIO::TransferJob::qt_metacall (this=0x9cb5b48, _c=QMetaObject::InvokeMetaMethod, _id=7, _a=0xbfe4ff48) at /build/buildd/kde4libs-4.3.2/obj-i486-linux-gnu/kio/jobclasses.moc:343
#23 0xb69721b8 in QMetaObject::activate (sender=0xa2d5ab88, from_signal_index=8, to_signal_index=8, argv=0x0) at kernel/qobject.cpp:3113
#24 0xb6972e42 in QMetaObject::activate (sender=0xa2d5ab88, m=0xb45dcf44, local_signal_index=4, argv=0x0) at kernel/qobject.cpp:3187
#25 0xb44f9bf7 in KIO::SlaveInterface::finished (this=0xa2d5ab88) at /build/buildd/kde4libs-4.3.2/obj-i486-linux-gnu/kio/slaveinterface.moc:165
#26 0xb44fd937 in KIO::SlaveInterface::dispatch (this=0xa2d5ab88, _cmd=104, rawdata=@0xbfe50114) at /build/buildd/kde4libs-4.3.2/kio/kio/slaveinterface.cpp:175
#27 0xb44fa0d7 in KIO::SlaveInterface::dispatch (this=0xa2d5ab88) at /build/buildd/kde4libs-4.3.2/kio/kio/slaveinterface.cpp:91
#28 0xb44ebe4d in KIO::Slave::gotInput (this=0xa2d5ab88) at /build/buildd/kde4libs-4.3.2/kio/kio/slave.cpp:322
#29 0xb44ee2e3 in KIO::Slave::qt_metacall (this=0xa2d5ab88, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0xbfe50228) at /build/buildd/kde4libs-4.3.2/obj-i486-linux-gnu/kio/slave.moc:76
#30 0xb69721b8 in QMetaObject::activate (sender=0xadde3398, from_signal_index=4, to_signal_index=4, argv=0x0) at kernel/qobject.cpp:3113
#31 0xb6972e42 in QMetaObject::activate (sender=0xadde3398, m=0xb45d9880, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3187
#32 0xb43f7a77 in KIO::Connection::readyRead (this=0xadde3398) at /build/buildd/kde4libs-4.3.2/obj-i486-linux-gnu/kio/connection.moc:86
#33 0xb43f93e3 in KIO::ConnectionPrivate::dequeue (this=0xa2d554a0) at /build/buildd/kde4libs-4.3.2/kio/kio/connection.cpp:82
#34 0xb43f97c6 in KIO::Connection::qt_metacall (this=0xadde3398, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x9ccb458) at /build/buildd/kde4libs-4.3.2/obj-i486-linux-gnu/kio/connection.moc:73
#35 0xb696b8cb in QMetaCallEvent::placeMetaCall (this=0xa253f50, object=0xadde3398) at kernel/qobject.cpp:477
#36 0xb696d3b0 in QObject::event (this=0xadde3398, e=0xa253f50) at kernel/qobject.cpp:1111
#37 0xb6daad3c in QApplicationPrivate::notify_helper (this=0x8a59ef0, receiver=0xadde3398, e=0xa253f50) at kernel/qapplication.cpp:4056
#38 0xb6db303e in QApplication::notify (this=0xbfe509ac, receiver=0xadde3398, e=0xa253f50) at kernel/qapplication.cpp:3603
#39 0xb7d9149d in KApplication::notify (this=0xbfe509ac, receiver=0xadde3398, event=0xa253f50) at /build/buildd/kde4libs-4.3.2/kdeui/kernel/kapplication.cpp:302
#40 0xb695cbcb in QCoreApplication::notifyInternal (this=0xbfe509ac, receiver=0xadde3398, event=0xa253f50) at kernel/qcoreapplication.cpp:610
#41 0xb695d825 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x899b1c8) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:213
#42 0xb695da1d in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1140
#43 0xb69886af in postEventSourceDispatch (s=0x8a60318) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218
#44 0xb41e7b88 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#45 0xb41eb0eb in ?? () from /usr/lib/libglib-2.0.so.0
#46 0xb41eb268 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#47 0xb69882f8 in QEventDispatcherGlib::processEvents (this=0x899adc8, flags={i = -1075509064}) at kernel/qeventdispatcher_glib.cpp:327
#48 0xb6e4ca75 in QGuiEventDispatcherGlib::processEvents (this=0x899adc8, flags={i = -1075509016}) at kernel/qguieventdispatcher_glib.cpp:202
#49 0xb695b1fa in QEventLoop::processEvents (this=0xbfe50960, flags={i = -1075508952}) at kernel/qeventloop.cpp:149
#50 0xb695b642 in QEventLoop::exec (this=0xbfe50960, flags={i = -1075508888}) at kernel/qeventloop.cpp:201
#51 0xb695dae9 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#52 0xb6daabb7 in QApplication::exec () at kernel/qapplication.cpp:3525
#53 0x0804ed73 in main (argc=2, argv=0xbfe511b4) at /home/jochen/kde/src/amarok/src/main.cpp:227

Greets

Jochen
Comment 1 Dario Andres 2009-10-28 13:36:09 UTC
- Is your build updated?
This looks like bug 200546 , which was fixed some days ago...
Thanks
Comment 2 Jochen Bauer 2009-10-28 13:52:12 UTC
My build was from yesterday evening. Just did a completely clean build and trying again.
Comment 3 Jochen Bauer 2009-10-28 14:16:25 UTC
After a full clean rebuild with deleting all am,arok folders, the thing doesnt happen anymore.
Comment 4 Mark Kretschmann 2009-11-01 12:20:23 UTC
commit 06fe035e58d190706e949bcd8fa270f6311c107f
Author: Mark Kretschmann <kretschmann@kde.org>
Date:   Sun Nov 1 12:17:00 2009 +0100

    Enable C++ exceptions handling in Amarok. Fixes liblastfm crashes.

    Liblastfm is using exceptions for error handling. Since Amarok (like
    all KDE apps by default) was built without exceptions support, we just
    _crashed_ whenever an exception occured. Fixed. Additional bonus: We could
    use exceptions in Amarok itself now, if there is a need.

    BUG: 200546
    BUG: 212115
Comment 5 Mark Kretschmann 2009-11-24 08:52:37 UTC
Reopening, as we are still experiencing issues. For reference:


"Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.

terminate called after throwing an instance of 'lastfm::ws::Error'"
Comment 6 Mark Kretschmann 2009-11-24 08:52:49 UTC
*** Bug 200546 has been marked as a duplicate of this bug. ***
Comment 7 Mark Kretschmann 2009-11-24 08:54:36 UTC
Also for reference:

http://pastebin.com/m40fda813
Comment 8 Mark Kretschmann 2009-12-24 10:28:24 UTC
I've just found an interesting blog article that could help us with debugging this:

http://agateau.wordpress.com/2009/12/22/tip-of-the-day-finding-the-source-of-a-bad_alloc-exception/
Comment 9 Mark Kretschmann 2009-12-25 08:06:29 UTC
commit ca312861bac8be336623c04fd9cd9f164b452ba2
Author: Mark Kretschmann <kretschmann@kde.org>
Date:   Fri Dec 25 08:03:30 2009 +0100

    Try to fix Qt crashes when Liblastfm throws exceptions.
    
    According to Qt docs, the only way to do this is by overloading
    QCoreApplication::notify(). So we're doing that now. I don't know if it
    works, please give it some testing :)
    
    BUG: 212115

diff --git a/src/App.cpp b/src/App.cpp
index 63943a6..3569ebe 100644
--- a/src/App.cpp
+++ b/src/App.cpp
@@ -809,7 +809,6 @@ void App::quit()
 
 bool App::event( QEvent *event )
 {
-
     switch( event->type() )
     {
         //allows Amarok to open files from the finder on OS X
@@ -836,6 +835,22 @@ bool App::event( QEvent *event )
     }
 }
 
+bool App::notify( QObject *receiver, QEvent *event )
+{
+    // Here we try to catch exceptions from LiblastFm, which Qt can't handle, except in this method.
+    // @see: https://bugs.kde.org/show_bug.cgi?id=212115
+
+    try
+    {
+        return QApplication::notify( receiver, event );
+    }
+    catch(...)
+    {
+        error() << "Caught an exception, probably from LibLastfm. Ignoring.";
+    }
+}
+
+
 namespace Amarok
 {
     /// @see Amarok.h
diff --git a/src/App.h b/src/App.h
index 1c31537..ba313fc 100644
--- a/src/App.h
+++ b/src/App.h
@@ -89,7 +89,8 @@ class AMAROK_EXPORT App : public KUniqueApplication
         void quit();
 
     protected:
-        bool event( QEvent *event );
+        virtual bool event( QEvent *event );
+        virtual bool notify( QObject *receiver, QEvent *event );
 
     private slots:
         void slotTrashResult( KJob *job );
Comment 10 Mark Kretschmann 2009-12-25 08:07:49 UTC
commit ca312861bac8be336623c04fd9cd9f164b452ba2
Author: Mark Kretschmann <kretschmann@kde.org>
Date:   Fri Dec 25 08:03:30 2009 +0100

    Try to fix Qt crashes when Liblastfm throws exceptions.
    
    According to Qt docs, the only way to do this is by overloading
    QCoreApplication::notify(). So we're doing that now. I don't know if it
    works, please give it some testing :)
    
    BUG: 212115

diff --git a/src/App.cpp b/src/App.cpp
index 63943a6..3569ebe 100644
--- a/src/App.cpp
+++ b/src/App.cpp
@@ -809,7 +809,6 @@ void App::quit()
 
 bool App::event( QEvent *event )
 {
-
     switch( event->type() )
     {
         //allows Amarok to open files from the finder on OS X
@@ -836,6 +835,22 @@ bool App::event( QEvent *event )
     }
 }
 
+bool App::notify( QObject *receiver, QEvent *event )
+{
+    // Here we try to catch exceptions from LiblastFm, which Qt can't handle, except in this method.
+    // @see: https://bugs.kde.org/show_bug.cgi?id=212115
+
+    try
+    {
+        return QApplication::notify( receiver, event );
+    }
+    catch(...)
+    {
+        error() << "Caught an exception, probably from LibLastfm. Ignoring.";
+    }
+}
+
+
 namespace Amarok
 {
     /// @see Amarok.h
diff --git a/src/App.h b/src/App.h
index 1c31537..ba313fc 100644
--- a/src/App.h
+++ b/src/App.h
@@ -89,7 +89,8 @@ class AMAROK_EXPORT App : public KUniqueApplication
         void quit();
 
     protected:
-        bool event( QEvent *event );
+        virtual bool event( QEvent *event );
+        virtual bool notify( QObject *receiver, QEvent *event );
 
     private slots:
         void slotTrashResult( KJob *job );
Comment 11 Myriam Schweingruber 2010-02-07 12:45:09 UTC
Hm, the crash is still in Amarok 2.2.2, apparently, see the following duplicate
Comment 12 Myriam Schweingruber 2010-02-07 12:45:39 UTC
*** Bug 225799 has been marked as a duplicate of this bug. ***
Comment 13 Leo Franchi 2010-02-14 17:33:37 UTC
the marked duplicate crash is different, so marking as resolved fixed still.