Bug 301166 - Amarok crashes on iPod ejection [@ Playlists::PlaylistProvider::playlistAdded]
Summary: Amarok crashes on iPod ejection [@ Playlists::PlaylistProvider::playlistAdded]
Status: RESOLVED FIXED
Alias: None
Product: amarok
Classification: Unclassified
Component: Collections/iPod iPhone (show other bugs)
Version: 2.5.90 (2.6 beta)
Platform: Ubuntu Packages Linux
: NOR crash (vote)
Target Milestone: 2.6
Assignee: Amarok Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-06-04 17:39 UTC by madcatx
Modified: 2012-06-05 15:22 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 2.6


Attachments
KCrash log with the patch applied (18.50 KB, text/plain)
2012-06-04 18:04 UTC, madcatx
Details

Note You need to log in before you can comment on or make changes to this bug.
Description madcatx 2012-06-04 17:39:42 UTC
Application: amarok (2.5.90)
KDE Platform Version: 4.8.3 (4.8.3)
Qt Version: 4.8.1
Operating System: Linux 3.2.0-24-generic x86_64
Distribution: Ubuntu 12.04 LTS

-- Information about the crash:
- What I was doing when the application crashed:
Amarok crashes when the "Eject" button is clicked while the iPod tracks are being loaded. It does not matter whether the track loading is manually interrupted before clicking the "Eject" button. Similar crash happens when Amarok is closed during the tracks loading.

The crash can be reproduced every time.

-- Backtrace:
Application: Amarok (amarok), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fa60a382780 (LWP 15888))]

Thread 13 (Thread 0x7fa5ed3ca700 (LWP 15889)):
#0  0x00007fa606b4f0bd in read () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007fa60045c88f in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fa600421abd in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fa600421f96 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fa60042245a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007fa5ed3cf98b in ?? () from /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so
#6  0x00007fa6004439a5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#7  0x00007fa603270e9a in start_thread (arg=0x7fa5ed3ca700) at pthread_create.c:308
#8  0x00007fa606b5c4bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#9  0x0000000000000000 in ?? ()

Thread 12 (Thread 0x7fa5ecbc9700 (LWP 15890)):
#0  0x00007fa600421f88 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007fa60042245a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fa5f01fb2c6 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#3  0x00007fa6004439a5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fa603270e9a in start_thread (arg=0x7fa5ecbc9700) at pthread_create.c:308
#5  0x00007fa606b5c4bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 11 (Thread 0x7fa5d3662700 (LWP 15894)):
#0  0x00007fa606b50b03 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fa5fdc7f35f in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#2  0x00007fa5fdc7076c in pa_mainloop_poll () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#3  0x00007fa5fdc70dd9 in pa_mainloop_iterate () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#4  0x00007fa5fdc70e90 in pa_mainloop_run () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#5  0x00007fa5fdc7f30f in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#6  0x00007fa5f7442d18 in ?? () from /usr/lib/x86_64-linux-gnu/libpulsecommon-1.1.so
#7  0x00007fa603270e9a in start_thread (arg=0x7fa5d3662700) at pthread_create.c:308
#8  0x00007fa606b5c4bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#9  0x0000000000000000 in ?? ()

Thread 10 (Thread 0x7fa5cf6b4700 (LWP 15896)):
#0  0x00007fa606b50b03 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fa600421ff6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fa600422124 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fa6074e7426 in QEventDispatcherGlib::processEvents (this=0x7fa5bc000900, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#4  0x00007fa6074b6c82 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007fa6074b6ed7 in QEventLoop::exec (this=0x7fa5cf6b3dd0, flags=...) at kernel/qeventloop.cpp:204
#6  0x00007fa6073b5fa7 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#7  0x00007fa6074969ff in QInotifyFileSystemWatcherEngine::run (this=0x22a8e80) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007fa6073b8fcb in QThreadPrivate::start (arg=0x22a8e80) at thread/qthread_unix.cpp:298
#9  0x00007fa603270e9a in start_thread (arg=0x7fa5cf6b4700) at pthread_create.c:308
#10 0x00007fa606b5c4bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 9 (Thread 0x7fa5cd1a1700 (LWP 15897)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fa6073b94db in wait (time=18446744073709551615, this=0x22e7cd0) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x22c5300, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007fa6048040eb in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x2345c20, th=0x22d5f20) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007fa6048069db in ThreadWeaver::WorkingHardState::applyForWork (this=0x22cf570, th=0x22d5f20) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007fa60480584f in ThreadWeaver::ThreadRunHelper::run (this=0x7fa5cd1a0e20, parent=0x2345c20, th=0x22d5f20) at ../../../threadweaver/Weaver/Thread.cpp:87
#6  0x00007fa6048058db in ThreadWeaver::Thread::run (this=0x22d5f20) at ../../../threadweaver/Weaver/Thread.cpp:142
#7  0x00007fa6073b8fcb in QThreadPrivate::start (arg=0x22d5f20) at thread/qthread_unix.cpp:298
#8  0x00007fa603270e9a in start_thread (arg=0x7fa5cd1a1700) at pthread_create.c:308
#9  0x00007fa606b5c4bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 8 (Thread 0x7fa5c3ffe700 (LWP 15908)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fa6073b94db in wait (time=18446744073709551615, this=0x22e7cd0) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x22c5300, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007fa6048040eb in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x2345c20, th=0x2319b30) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007fa6048069db in ThreadWeaver::WorkingHardState::applyForWork (this=0x22cf570, th=0x2319b30) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007fa60480584f in ThreadWeaver::ThreadRunHelper::run (this=0x7fa5c3ffde20, parent=0x2345c20, th=0x2319b30) at ../../../threadweaver/Weaver/Thread.cpp:87
#6  0x00007fa6048058db in ThreadWeaver::Thread::run (this=0x2319b30) at ../../../threadweaver/Weaver/Thread.cpp:142
#7  0x00007fa6073b8fcb in QThreadPrivate::start (arg=0x2319b30) at thread/qthread_unix.cpp:298
#8  0x00007fa603270e9a in start_thread (arg=0x7fa5c3ffe700) at pthread_create.c:308
#9  0x00007fa606b5c4bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7fa5c2ca3700 (LWP 15909)):
#0  0x00007fff305ff8de in ?? ()
#1  0x00007fa5fee5615d in __GI_clock_gettime (clock_id=<optimized out>, tp=<optimized out>) at ../sysdeps/unix/clock_gettime.c:116
#2  0x00007fa60740fbb4 in do_gettime (frac=0x7fa5c2ca2c28, sec=0x7fa5c2ca2c20) at tools/qelapsedtimer_unix.cpp:123
#3  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#4  0x00007fa6074e7b8d in QTimerInfoList::updateCurrentTime (this=0x7fa5b0001850) at kernel/qeventdispatcher_unix.cpp:343
#5  0x00007fa6074e7841 in timerSourceCheckHelper (src=<optimized out>) at kernel/qeventdispatcher_glib.cpp:150
#6  timerSourceCheckHelper (src=<optimized out>) at kernel/qeventdispatcher_glib.cpp:144
#7  0x00007fa600421a33 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007fa600421f96 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9  0x00007fa600422124 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007fa6074e7426 in QEventDispatcherGlib::processEvents (this=0x7fa5b00008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#11 0x00007fa6074b6c82 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#12 0x00007fa6074b6ed7 in QEventLoop::exec (this=0x7fa5c2ca2e00, flags=...) at kernel/qeventloop.cpp:204
#13 0x00007fa6073b5fa7 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#14 0x00007fa6073b8fcb in QThreadPrivate::start (arg=0x26a6360) at thread/qthread_unix.cpp:298
#15 0x00007fa603270e9a in start_thread (arg=0x7fa5c2ca3700) at pthread_create.c:308
#16 0x00007fa606b5c4bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#17 0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7fa5c1803700 (LWP 15910)):
#0  0x00007fff305ff8de in ?? ()
#1  0x00007fa5fee5615d in __GI_clock_gettime (clock_id=<optimized out>, tp=<optimized out>) at ../sysdeps/unix/clock_gettime.c:116
#2  0x00007fa60740fbb4 in do_gettime (frac=0x7fa5c1802c28, sec=0x7fa5c1802c20) at tools/qelapsedtimer_unix.cpp:123
#3  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#4  0x00007fa6074e7b8d in QTimerInfoList::updateCurrentTime (this=0x7fa5a4001850) at kernel/qeventdispatcher_unix.cpp:343
#5  0x00007fa6074e7841 in timerSourceCheckHelper (src=<optimized out>) at kernel/qeventdispatcher_glib.cpp:150
#6  timerSourceCheckHelper (src=<optimized out>) at kernel/qeventdispatcher_glib.cpp:144
#7  0x00007fa600421a33 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007fa600421f96 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9  0x00007fa600422124 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007fa6074e7426 in QEventDispatcherGlib::processEvents (this=0x7fa5a40008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#11 0x00007fa6074b6c82 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#12 0x00007fa6074b6ed7 in QEventLoop::exec (this=0x7fa5c1802e00, flags=...) at kernel/qeventloop.cpp:204
#13 0x00007fa6073b5fa7 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#14 0x00007fa6073b8fcb in QThreadPrivate::start (arg=0x26d8040) at thread/qthread_unix.cpp:298
#15 0x00007fa603270e9a in start_thread (arg=0x7fa5c1803700) at pthread_create.c:308
#16 0x00007fa606b5c4bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#17 0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7fa5a3fff700 (LWP 15912)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fa6073b94db in wait (time=18446744073709551615, this=0x22e7cd0) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x22c5300, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007fa6048040eb in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x2345c20, th=0x2844810) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007fa6048069db in ThreadWeaver::WorkingHardState::applyForWork (this=0x22cf570, th=0x2844810) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007fa6048069f4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x22cf570, th=0x2844810) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007fa60480584f in ThreadWeaver::ThreadRunHelper::run (this=0x7fa5a3ffee20, parent=0x2345c20, th=0x2844810) at ../../../threadweaver/Weaver/Thread.cpp:87
#7  0x00007fa6048058db in ThreadWeaver::Thread::run (this=0x2844810) at ../../../threadweaver/Weaver/Thread.cpp:142
#8  0x00007fa6073b8fcb in QThreadPrivate::start (arg=0x2844810) at thread/qthread_unix.cpp:298
#9  0x00007fa603270e9a in start_thread (arg=0x7fa5a3fff700) at pthread_create.c:308
#10 0x00007fa606b5c4bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fa5a33ec700 (LWP 15913)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fa6073b94db in wait (time=18446744073709551615, this=0x22e7cd0) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x22c5300, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007fa6048040eb in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x2345c20, th=0x286e400) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007fa6048069db in ThreadWeaver::WorkingHardState::applyForWork (this=0x22cf570, th=0x286e400) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007fa6048069f4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x22cf570, th=0x286e400) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007fa60480584f in ThreadWeaver::ThreadRunHelper::run (this=0x7fa5a33ebe20, parent=0x2345c20, th=0x286e400) at ../../../threadweaver/Weaver/Thread.cpp:87
#7  0x00007fa6048058db in ThreadWeaver::Thread::run (this=0x286e400) at ../../../threadweaver/Weaver/Thread.cpp:142
#8  0x00007fa6073b8fcb in QThreadPrivate::start (arg=0x286e400) at thread/qthread_unix.cpp:298
#9  0x00007fa603270e9a in start_thread (arg=0x7fa5a33ec700) at pthread_create.c:308
#10 0x00007fa606b5c4bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fa5a1f51700 (LWP 15914)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fa5fd05ddec in ?? () from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4
#2  0x00007fa5fd05df19 in ?? () from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4
#3  0x00007fa603270e9a in start_thread (arg=0x7fa5a1f51700) at pthread_create.c:308
#4  0x00007fa606b5c4bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fa5a1536700 (LWP 15918)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fa60384a222 in ?? () from /usr/lib/x86_64-linux-gnu/libQtScript.so.4
#2  0x00007fa60384a259 in ?? () from /usr/lib/x86_64-linux-gnu/libQtScript.so.4
#3  0x00007fa603270e9a in start_thread (arg=0x7fa5a1536700) at pthread_create.c:308
#4  0x00007fa606b5c4bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fa60a382780 (LWP 15888)):
[KCrash Handler]
#6  0x00007fa6091c6616 in PlaylistManager::slotPlaylistAdded (this=0x24182e0, playlist=...) at /home/los/Downloads/amarok-2.5.90/src/playlistmanager/PlaylistManager.cpp:273
#7  0x00007fa6091c8aa4 in PlaylistManager::qt_static_metacall (_o=0x24182e0, _c=QMetaObject::InvokeMetaMethod, _id=9, _a=0x7fa5b4154de0) at /home/los/Downloads/amarok-2.5.90/build/src/PlaylistManager.moc:84
#8  0x00007fa6074d1446 in QObject::event (this=0x24182e0, e=<optimized out>) at kernel/qobject.cpp:1195
#9  0x00007fa607ead894 in notify_helper (e=0x7fa5b4154e20, receiver=0x24182e0, this=0x1af82d0) at kernel/qapplication.cpp:4559
#10 QApplicationPrivate::notify_helper (this=0x1af82d0, receiver=0x24182e0, e=0x7fa5b4154e20) at kernel/qapplication.cpp:4531
#11 0x00007fa607eb2713 in QApplication::notify (this=0x7fff3051cc90, receiver=0x24182e0, e=0x7fa5b4154e20) at kernel/qapplication.cpp:4420
#12 0x00007fa609d84bb6 in KApplication::notify (this=0x7fff3051cc90, receiver=0x24182e0, event=0x7fa5b4154e20) at ../../kdeui/kernel/kapplication.cpp:311
#13 0x00007fa6074b7e9c in QCoreApplication::notifyInternal (this=0x7fff3051cc90, receiver=0x24182e0, event=0x7fa5b4154e20) at kernel/qcoreapplication.cpp:876
#14 0x00007fa6074bbc6a in sendEvent (event=0x7fa5b4154e20, receiver=0x24182e0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#15 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x197f1f0) at kernel/qcoreapplication.cpp:1500
#16 0x00007fa6074e6f93 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#17 postEventSourceDispatch (s=<optimized out>) at kernel/qeventdispatcher_glib.cpp:279
#18 0x00007fa600421c9a in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007fa600422060 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007fa600422124 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007fa6074e73bf in QEventDispatcherGlib::processEvents (this=0x1980ad0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#22 0x00007fa607f55d5e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#23 0x00007fa6074b6c82 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#24 0x00007fa6074b6ed7 in QEventLoop::exec (this=0x7fff3051cc10, flags=...) at kernel/qeventloop.cpp:204
#25 0x00007fa6074bbf67 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148
#26 0x000000000040c8a5 in main (argc=2, argv=0x7fff3051f168) at /home/los/Downloads/amarok-2.5.90/src/main.cpp:306

Possible duplicates by query: bug 296980.

Reported using DrKonqi
Comment 1 madcatx 2012-06-04 18:03:48 UTC
Ultrawhoops! I compiled Amarok on another machine where I can install all the debugging symbols and I forgot to apply the "crash on eject" patch (see bug 300958). The patch doesn't have any apparent effect on this crash, I just wanted to make sure I didn't report any bogus info. I attached another crash log which I get with the patch applied. I'm sorry about this...
Comment 2 madcatx 2012-06-04 18:04:59 UTC
Created attachment 71582 [details]
KCrash log with the patch applied
Comment 3 Myriam Schweingruber 2012-06-05 11:52:06 UTC
(In reply to comment #2)
> Created attachment 71582 [details]
> KCrash log with the patch applied

Please always paste backtraces inline, else those are not searchable.


Thread 9 (Thread 0x7f1120934700 (LWP 2439)):
[KCrash Handler]
#6  isSignalConnected (signal_index=3, this=0x0) at kernel/qobject_p.h:229
#7  QMetaObject::activate (sender=0x2dc07d0, m=<optimized out>, local_signal_index=1, argv=0x7f1120933b50) at kernel/qobject.cpp:3456
#8  0x00007f1164852a59 in Playlists::PlaylistProvider::playlistAdded (this=0x2dc07d0, _t1=...) at /home/los/Downloads/amarok-2.5.90/build/src/core/PlaylistProvider.moc:110
#9  0x00007f112c35c294 in IpodPlaylistProvider::parseItdbPlaylists (this=0x2dc07d0, staleTracks=..., knownPaths=...) at /home/los/Downloads/amarok-2.5.90/src/core-impl/collections/ipodcollection/IpodPlaylistProvider.cpp:237
#10 0x00007f112c3695c3 in IpodParseTracksJob::run (this=0x2da2d80) at /home/los/Downloads/amarok-2.5.90/src/core-impl/collections/ipodcollection/jobs/IpodParseTracksJob.cpp:73
#11 0x00007f115f75e05b in ThreadWeaver::JobRunHelper::runTheJob (this=0x7f1120933da0, th=0x2cd56d0, job=0x2da2d80) at ../../../threadweaver/Weaver/Job.cpp:106
#12 0x00007f115f75e1cc in ThreadWeaver::Job::execute (this=0x2da2d80, th=0x2cd56d0) at ../../../threadweaver/Weaver/Job.cpp:135
#13 0x00007f115f75d81f in ThreadWeaver::ThreadRunHelper::run (this=0x7f1120933e20, parent=0x2cf2750, th=0x2cd56d0) at ../../../threadweaver/Weaver/Thread.cpp:95
#14 0x00007f115f75d8db in ThreadWeaver::Thread::run (this=0x2cd56d0) at ../../../threadweaver/Weaver/Thread.cpp:142
#15 0x00007f1162310fcb in QThreadPrivate::start (arg=0x2cd56d0) at thread/qthread_unix.cpp:298
#16 0x00007f115e1c8e9a in start_thread (arg=0x7f1120934700) at pthread_create.c:308
#17 0x00007f1161ab44bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#18 0x0000000000000000 in ?? ()
Comment 4 Matěj Laitl 2012-06-05 12:53:10 UTC
Git commit aa913a59a047205ed15a7f37f9f11d56785b6ff3 by Matěj Laitl.
Committed on 05/06/2012 at 14:37.
Pushed by laitl into branch 'master'.

IpodCollection: finally safe solution for crash on early eject

We now (asynchronously) wait for the job that parses iPod tracks and
playlists before destroying IpodCollection.

Other change is that we factor playlists parsing into
IpodParseTracksJob, it really belongs there. (previously it was just
called from that thread and it made false impression that the method
is only called from the main thread)
FIXED-IN: 2.6

M  +3    -0    ChangeLog
M  +23   -10   src/core-impl/collections/ipodcollection/IpodCollection.cpp
M  +8    -0    src/core-impl/collections/ipodcollection/IpodCollection.h
M  +1    -3    src/core-impl/collections/ipodcollection/IpodPlaylist.cpp
M  +0    -79   src/core-impl/collections/ipodcollection/IpodPlaylistProvider.cpp
M  +1    -13   src/core-impl/collections/ipodcollection/IpodPlaylistProvider.h
M  +91   -12   src/core-impl/collections/ipodcollection/jobs/IpodParseTracksJob.cpp
M  +26   -5    src/core-impl/collections/ipodcollection/jobs/IpodParseTracksJob.h

http://commits.kde.org/amarok/aa913a59a047205ed15a7f37f9f11d56785b6ff3
Comment 5 madcatx 2012-06-05 15:22:00 UTC
Applied and tested. Works perfectly on Ubuntu 12.04, but I'm still having some issues on Arch Linux. Those have very likely nothing to do with Amarok, I'll have to look into that a bit more...