Bug 256585

Summary: Amarok crashes on startup [@ Collections::AudioCdCollection::updateProxyTracks]
Product: [Applications] amarok Reporter: Peter Terpstra <peter>
Component: Collections/CDAssignee: Amarok Developers <amarok-bugs-dist>
Status: RESOLVED FIXED    
Severity: crash CC: cobexer, dominichosler, nickharlow, pjnightingale
Priority: NOR Keywords: regression, release_blocker
Version: 2.5-git   
Target Milestone: 2.6   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In: 2.6
Attachments: New crash information added by DrKonqi
log of amarok -debug --nofork
New crash information added by DrKonqi

Description Peter Terpstra 2010-11-11 10:20:40 UTC
Application: amarok (2.3.2)
KDE Platform Version: 4.4.4 (KDE 4.4.4) "release 3"
Qt Version: 4.6.3
Operating System: Linux 2.6.34.7-0.5-desktop x86_64
Distribution: "openSUSE 11.3 (x86_64)"

-- Information about the crash:
Amarok crashes on startup.
There hase been no changes in configuration.

Updates installed yesterday:
wxWidgets version 2.8.11.0-4.2
compat-wireless-scripts version 2.6.36.4-1.1
wxWidgets-gl version 2.8.11.0-4.2
wxWidgets-compat version 2.8.11.0-4.2
compat-wireless-kmp-desktop version 2.6.36.4_k2.6.34.7_0.5-1.1
python-wxGTK version 2.8.11.0-4.2
libstdc++33-32bit version 3.3.3-22.1
libstdc++33 version 3.3.3-22.1
libfuse2 version 2.8.5-2.3.1
fuse version 2.8.5-2.3.1


The crash can be reproduced every time.

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

Thread 12 (Thread 0x7fd194b79710 (LWP 4055)):
#0  0x00007fd1aa77d709 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fd19a880951 in metronom_sync_loop () from /usr/lib64/libxine.so.1
#2  0x00007fd1aa778a4f in start_thread () from /lib64/libpthread.so.0
#3  0x00007fd1ac0fb82d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 11 (Thread 0x7fd194378710 (LWP 4056)):
#0  0x00007fd1aa77b0b4 in pthread_mutex_lock () from /lib64/libpthread.so.0
#1  0x00007fd1a5f3bfae in g_main_context_prepare () from /usr/lib64/libglib-2.0.so.0
#2  0x00007fd1a5f3ce69 in ?? () from /usr/lib64/libglib-2.0.so.0
#3  0x00007fd1a5f3d510 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#4  0x00007fd1ad6a26d6 in QEventDispatcherGlib::processEvents (this=0x8e8db0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414
#5  0x00007fd1ad679292 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#6  0x00007fd1ad679495 in QEventLoop::exec (this=0x7fd194377d90, flags=...) at kernel/qeventloop.cpp:201
#7  0x00007fd1ad5902cf in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#8  0x00007fd19aade3b4 in ?? () from /usr/lib64/kde4/plugins/phonon_backend/phonon_xine.so
#9  0x00007fd1ad592bf5 in QThreadPrivate::start (arg=0x98b540) at thread/qthread_unix.cpp:248
#10 0x00007fd1aa778a4f in start_thread () from /lib64/libpthread.so.0
#11 0x00007fd1ac0fb82d in clone () from /lib64/libc.so.6
#12 0x0000000000000000 in ?? ()

Thread 10 (Thread 0x7fd19396d710 (LWP 4059)):
#0  0x00007fd1ac0ee3fd in read () from /lib64/libc.so.6
#1  0x00007fd19b0240e5 in ?? () from /usr/lib64/libasound.so.2
#2  0x00007fd19b01f113 in snd_hctl_handle_events () from /usr/lib64/libasound.so.2
#3  0x00007fd19b029439 in snd_mixer_handle_events () from /usr/lib64/libasound.so.2
#4  0x00007fd193972a18 in ao_alsa_handle_event_thread () from /usr/lib64/xine/plugins/1.29/xineplug_ao_out_alsa.so
#5  0x00007fd1aa778a4f in start_thread () from /lib64/libpthread.so.0
#6  0x00007fd1ac0fb82d in clone () from /lib64/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 9 (Thread 0x7fd19316c710 (LWP 4060)):
#0  0x00007fd1aa77d39c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fd19a89296b in ao_loop () from /usr/lib64/libxine.so.1
#2  0x00007fd1aa778a4f in start_thread () from /lib64/libpthread.so.0
#3  0x00007fd1ac0fb82d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 8 (Thread 0x7fd192353710 (LWP 4061)):
#0  0x00007fd1aa77d39c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fd19a89296b in ao_loop () from /usr/lib64/libxine.so.1
#2  0x00007fd1aa778a4f in start_thread () from /lib64/libpthread.so.0
#3  0x00007fd1ac0fb82d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7fd191b52710 (LWP 4062)):
#0  0x00007fd1aa77d39c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fd19a89296b in ao_loop () from /usr/lib64/libxine.so.1
#2  0x00007fd1aa778a4f in start_thread () from /lib64/libpthread.so.0
#3  0x00007fd1ac0fb82d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7fd191351710 (LWP 4063)):
#0  0x00007fd1aa77d39c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fd19a89296b in ao_loop () from /usr/lib64/libxine.so.1
#2  0x00007fd1aa778a4f in start_thread () from /lib64/libpthread.so.0
#3  0x00007fd1ac0fb82d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7fd18260e710 (LWP 4065)):
#0  0x00007fd1aa77d39c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fd1ad5932bb in wait (this=<value optimized out>, mutex=0x100d520, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x100d520, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007fd1a92083f6 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x15be6d0, th=0x1094b30) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007fd1a920ae35 in waitForAvailableJob (this=0x15bd9a0, th=0x1094b30) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WeaverImpl.cpp:356
#5  ThreadWeaver::WorkingHardState::applyForWork (this=0x15bd9a0, th=0x1094b30) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WorkingHardState.cpp:71
#6  0x00007fd1a92087ef in ThreadWeaver::ThreadRunHelper::run (this=0x7fd18260ddf0, parent=0x15be6d0, th=0x1094b30) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/Thread.cpp:87
#7  0x00007fd1a9208878 in ThreadWeaver::Thread::run (this=0x1094b30) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/Thread.cpp:142
#8  0x00007fd1ad592bf5 in QThreadPrivate::start (arg=0x1094b30) at thread/qthread_unix.cpp:248
#9  0x00007fd1aa778a4f in start_thread () from /lib64/libpthread.so.0
#10 0x00007fd1ac0fb82d in clone () from /lib64/libc.so.6
#11 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fd181e0d710 (LWP 4066)):
#0  0x00007fd1aa77d39c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fd1ad5932bb in wait (this=<value optimized out>, mutex=0x100d520, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x100d520, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007fd1a92083f6 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x15be6d0, th=0x11ea640) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007fd1a920ae35 in waitForAvailableJob (this=0x15bd9a0, th=0x11ea640) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WeaverImpl.cpp:356
#5  ThreadWeaver::WorkingHardState::applyForWork (this=0x15bd9a0, th=0x11ea640) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WorkingHardState.cpp:71
#6  0x00007fd1a92087ef in ThreadWeaver::ThreadRunHelper::run (this=0x7fd181e0cdf0, parent=0x15be6d0, th=0x11ea640) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/Thread.cpp:87
#7  0x00007fd1a9208878 in ThreadWeaver::Thread::run (this=0x11ea640) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/Thread.cpp:142
#8  0x00007fd1ad592bf5 in QThreadPrivate::start (arg=0x11ea640) at thread/qthread_unix.cpp:248
#9  0x00007fd1aa778a4f in start_thread () from /lib64/libpthread.so.0
#10 0x00007fd1ac0fb82d in clone () from /lib64/libc.so.6
#11 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fd18160c710 (LWP 4067)):
#0  0x00007fd1aa77d39c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fd1ad5932bb in wait (this=<value optimized out>, mutex=0x100d520, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x100d520, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007fd1a92083f6 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x15be6d0, th=0x11e53e0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007fd1a920ae35 in waitForAvailableJob (this=0x15bd9a0, th=0x11e53e0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WeaverImpl.cpp:356
#5  ThreadWeaver::WorkingHardState::applyForWork (this=0x15bd9a0, th=0x11e53e0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WorkingHardState.cpp:71
#6  0x00007fd1a92087ef in ThreadWeaver::ThreadRunHelper::run (this=0x7fd18160bdf0, parent=0x15be6d0, th=0x11e53e0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/Thread.cpp:87
#7  0x00007fd1a9208878 in ThreadWeaver::Thread::run (this=0x11e53e0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/Thread.cpp:142
#8  0x00007fd1ad592bf5 in QThreadPrivate::start (arg=0x11e53e0) at thread/qthread_unix.cpp:248
#9  0x00007fd1aa778a4f in start_thread () from /lib64/libpthread.so.0
#10 0x00007fd1ac0fb82d in clone () from /lib64/libc.so.6
#11 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fd17d44e710 (LWP 4068)):
#0  0x00007fd1aa77d39c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fd1a8a62e30 in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0x7fd1a8d48220) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2304
#2  0x00007fd1a8a62e69 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=0x7fd1a8d562ec) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1438
#3  0x00007fd1aa778a4f in start_thread () from /lib64/libpthread.so.0
#4  0x00007fd1ac0fb82d in clone () from /lib64/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fd1af3f17a0 (LWP 4053)):
[KCrash Handler]
#5  detach (this=0x61007400690085, ptr=...) at /usr/include/QtCore/qhash.h:299
#6  insert (this=0x61007400690085, ptr=...) at /usr/include/QtCore/qhash.h:749
#7  insert (this=0x61007400690085, ptr=...) at /usr/include/QtCore/qset.h:176
#8  Meta::Observer::subscribeTo (this=0x61007400690085, ptr=...) at /usr/src/debug/amarok-2.3.2/src/core/meta/Meta.cpp:65
#9  0x00007fd1ae37b754 in slotUpdateTrack (this=<value optimized out>, track=<value optimized out>) at /usr/src/debug/amarok-2.3.2/src/core-impl/meta/proxy/MetaProxy_p.h:110
#10 MetaProxy::Track::updateTrack (this=<value optimized out>, track=<value optimized out>) at /usr/src/debug/amarok-2.3.2/src/core-impl/meta/proxy/MetaProxy.cpp:452
#11 0x00007fd18a50d71b in Collections::AudioCdCollection::updateProxyTracks (this=0xf689e0) at /usr/src/debug/amarok-2.3.2/src/core-impl/collections/audiocd/AudioCdCollection.cpp:594
#12 0x00007fd18a50f9eb in Collections::AudioCdCollection::infoFetchComplete (this=<value optimized out>, job=<value optimized out>)
    at /usr/src/debug/amarok-2.3.2/src/core-impl/collections/audiocd/AudioCdCollection.cpp:305
#13 0x00007fd18a5123d4 in Collections::AudioCdCollection::qt_metacall (this=0xf689e0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffb630d3d0)
    at /usr/src/debug/amarok-2.3.2/build/src/core-impl/collections/audiocd/AudioCdCollection.moc:127
#14 0x00007fd1ad68da1f in QMetaObject::activate (sender=0x1a08240, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fffb630d3d0) at kernel/qobject.cpp:3295
#15 0x00007fd1ada383a2 in KJob::result(KJob*) () from /usr/lib64/libkdecore.so.5
#16 0x00007fd1ada383e0 in KJob::emitResult() () from /usr/lib64/libkdecore.so.5
#17 0x00007fd1a72ea3fd in KIO::SimpleJob::slotFinished (this=0x1a08240) at /usr/src/debug/kdelibs-4.4.4/kio/kio/job.cpp:517
#18 0x00007fd1a72eabd7 in KIO::TransferJob::slotFinished (this=0x1a08240) at /usr/src/debug/kdelibs-4.4.4/kio/kio/job.cpp:1097
#19 0x00007fd1a72d4f41 in KIO::TransferJob::qt_metacall (this=0x1a08240, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffb630d840)
    at /usr/src/debug/kdelibs-4.4.4/build/kio/jobclasses.moc:367
#20 0x00007fd1a72d51f0 in KIO::StoredTransferJob::qt_metacall (this=0x1a08240, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffb630d840)
    at /usr/src/debug/kdelibs-4.4.4/build/kio/jobclasses.moc:477
#21 0x00007fd1ad68da1f in QMetaObject::activate (sender=0x168d4d0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x0) at kernel/qobject.cpp:3295
#22 0x00007fd1a7343591 in KIO::SlaveInterface::dispatch (this=0x168d4d0, _cmd=<value optimized out>, rawdata=...) at /usr/src/debug/kdelibs-4.4.4/kio/kio/slaveinterface.cpp:175
#23 0x00007fd1a72aa863 in KIO::SlaveInterface::dispatch (this=<value optimized out>) at /usr/src/debug/kdelibs-4.4.4/kio/kio/slaveinterface.cpp:91
#24 0x00007fd1a72a6076 in KIO::Slave::gotInput (this=0x168d4d0) at /usr/src/debug/kdelibs-4.4.4/kio/kio/slave.cpp:324
#25 0x00007fd1a72ae26c in KIO::Slave::qt_metacall (this=0x168d4d0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffb630dc50)
    at /usr/src/debug/kdelibs-4.4.4/build/kio/slave.moc:82
#26 0x00007fd1ad68da1f in QMetaObject::activate (sender=0x2975e80, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x0) at kernel/qobject.cpp:3295
#27 0x00007fd1a72ae047 in KIO::ConnectionPrivate::dequeue (this=0x29765f0) at /usr/src/debug/kdelibs-4.4.4/kio/kio/connection.cpp:82
#28 0x00007fd1a72ae0fd in KIO::Connection::qt_metacall (this=0x2975e80, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x1180ca0)
    at /usr/src/debug/kdelibs-4.4.4/build/kio/connection.moc:79
#29 0x00007fd1ad68b509 in QObject::event (this=0x2975e80, e=0x29645e0) at kernel/qobject.cpp:1248
#30 0x00007fd1aca6b4d4 in QApplicationPrivate::notify_helper (this=0x78ed10, receiver=0x2975e80, e=0x29645e0) at kernel/qapplication.cpp:4302
#31 0x00007fd1aca73aca in QApplication::notify (this=<value optimized out>, receiver=0x2975e80, e=0x29645e0) at kernel/qapplication.cpp:4185
#32 0x00007fd1aed9ec06 in KApplication::notify (this=0x7fffb630e6f0, receiver=0x2975e80, event=0x29645e0) at /usr/src/debug/kdelibs-4.4.4/kdeui/kernel/kapplication.cpp:302
#33 0x00007fd1ad679e4c in QCoreApplication::notifyInternal (this=0x7fffb630e6f0, receiver=0x2975e80, event=0x29645e0) at kernel/qcoreapplication.cpp:726
#34 0x00007fd1ad67d5ba in sendEvent (receiver=0x0, event_type=0, data=0x61f6f0) at kernel/qcoreapplication.h:215
#35 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x61f6f0) at kernel/qcoreapplication.cpp:1367
#36 0x00007fd1ad6a2173 in sendPostedEvents (s=<value optimized out>) at kernel/qcoreapplication.h:220
#37 postEventSourceDispatch (s=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:276
#38 0x00007fd1a5f3ca93 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#39 0x00007fd1a5f3d270 in ?? () from /usr/lib64/libglib-2.0.so.0
#40 0x00007fd1a5f3d510 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#41 0x00007fd1ad6a267f in QEventDispatcherGlib::processEvents (this=0x625800, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#42 0x00007fd1acb0c14e in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#43 0x00007fd1ad679292 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#44 0x00007fd1ad679495 in QEventLoop::exec (this=0x7fffb630e690, flags=...) at kernel/qeventloop.cpp:201
#45 0x00007fd1ad67d88b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1003
#46 0x00000000004081df in main (argc=1, argv=0x7fffb6310658) at /usr/src/debug/amarok-2.3.2/src/main.cpp:237

Possible duplicates by query: bug 253841, bug 247865, bug 244115, bug 235307, bug 228032.

Reported using DrKonqi
Comment 1 Myriam Schweingruber 2011-01-20 18:01:39 UTC
Confirmed by duplicate, adapted title.
Comment 2 Myriam Schweingruber 2011-01-20 18:01:57 UTC
*** Bug 263768 has been marked as a duplicate of this bug. ***
Comment 3 Christoph Obexer 2011-05-18 19:53:49 UTC
Created attachment 60126 [details]
New crash information added by DrKonqi

amarok (2.4.0.90) on KDE Platform 4.6.2 (4.6.2) using Qt 4.7.2

- What I was doing when the application crashed:

1. insert Audio CD
2. Start AMArok
3. Try To Play a Track from the CD
Result:
The Audio CD Collection showed 0 tracks
Amarok Crashed

-- Backtrace (Reduced):
#6  findChar (str=0x4545454545454545, len=1162167621, ch=..., from=<optimized out>, cs=Qt::CaseSensitive) at tools/qstring.cpp:318
#7  0x00007f668e3576b2 in QString::split (this=0x7ffff3d315a0, sep=..., behavior=QString::KeepEmptyParts, cs=Qt::CaseSensitive) at tools/qstring.cpp:6081
#8  0x00007f6663c6ff8d in Collections::AudioCdCollection::updateProxyTracks (this=0x14774d0) at /usr/include/QtCore/qstring.h:883
#9  0x00007f6663c71fc4 in Collections::AudioCdCollection::infoFetchComplete (this=<optimized out>, job=<optimized out>) at /usr/src/debug/amarok-2.4.0.90/src/core-impl/collections/audiocd/AudioCdCollection.cpp:314
#10 0x00007f6663c7485c in Collections::AudioCdCollection::qt_metacall (this=0x14774d0, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0x7ffff3d31f20) at /usr/src/debug/amarok-2.4.0.90/build/src/core-impl/collections/audiocd/AudioCdCollection.moc:127
Comment 4 Christoph Obexer 2011-05-18 19:58:05 UTC
Created attachment 60127 [details]
log of amarok -debug --nofork 

I was just testing wether amarok audio CD support was working (because of some complaints on the opensuse ml) but i just found amarok crash

amarok was playing music fine before (so i doubt that those crashed tables were crashed before)
Comment 5 Myriam Schweingruber 2011-11-15 08:06:01 UTC
I can't reproduce this here with latest git.
What doesn't work is the detection of an already inserted CD, but that is another problem.
Comment 6 Myriam Schweingruber 2012-01-03 11:07:48 UTC
Closing correctly.
Comment 7 Myriam Schweingruber 2012-01-03 22:52:26 UTC
*** Bug 290542 has been marked as a duplicate of this bug. ***
Comment 8 Myriam Schweingruber 2012-01-03 22:53:14 UTC
Reopening based on bug 290542
Comment 9 Christoph Obexer 2012-01-15 16:33:21 UTC
Created attachment 67859 [details]
New crash information added by DrKonqi

amarok (2.5-GIT) on KDE Platform 4.7.4 (4.7.4) using Qt 4.8.0

I tried this again today with current git and had it crash again:
i have no idea how those Qt datatypes are supposed to look, but this is what i get:
the cd i inserted has 12 tracks, so i think whatever fills that map inserts crap, or was not done yet?
(gdb) p *m_proxyMap.d
$11 = {
  backward = 0xf8f7d8, 
  forward = {0xf9f538, 0x1073e78, 0xbabababababababa, 0xbabababababababa, 0xbabababababababa, 0xbabababababababa, 0xbabababababababa, 0xbabababababababa, 0xbabababababababa, 0xbabababababababa, 0xbabababababababa, 0xbabababababababa}, 
  ref = {
    _q_value = 1
  }, 
  topLevel = 1, 
  size = 12, 
  randomBits = 12, 
  insertInOrder = 0, 
  sharable = 1, 
  strictAlignment = 0, 
  reserved = 0, 
  static shared_null = {
    backward = 0x7ffff6235820, 
    forward = {0x7ffff6235820, 0x0 <repeats 11 times>}, 
    ref = {
      _q_value = 1276
    }, 
    topLevel = 0, 
    size = 0, 
    randomBits = 0, 
    insertInOrder = 0, 
    sharable = 1, 
    strictAlignment = 0, 
    reserved = 0, 
    static shared_null = <same as static member of an already seen type>
  }
}
(gdb) f
#2  0x00007fffd9cf9218 in Collections::AudioCdCollection::updateProxyTracks (this=0xf36e70) at /home/amarok-devel/kde/src/amarok/src/core-impl/collections/audiocd/AudioCdCollection.cpp:576
576             const QStringList &parts = urlString.split( '/' );
# set|grep MALLOC
MALLOC_CHECK_=3
MALLOC_PERTURB_=69

HTH

-- Backtrace (Reduced):
#6  findChar (str=0x4545454545454545, len=1162167621, ch=..., from=0, cs=Qt::CaseSensitive) at tools/qstring.cpp:340
#7  0x00007f45ed83e992 in QString::split (this=0x7fff37dab800, sep=..., behavior=QString::KeepEmptyParts, cs=Qt::CaseSensitive) at tools/qstring.cpp:6169
#8  0x00007f45d1708218 in Collections::AudioCdCollection::updateProxyTracks (this=0xf328f0) at /home/amarok-devel/kde/src/amarok/src/core-impl/collections/audiocd/AudioCdCollection.cpp:576
#9  0x00007f45d170adb4 in Collections::AudioCdCollection::infoFetchComplete (this=0xf328f0, job=<optimized out>) at /home/amarok-devel/kde/src/amarok/src/core-impl/collections/audiocd/AudioCdCollection.cpp:317
[...]
#11 0x00007f45edd85382 in KJob::result (this=<optimized out>, _t1=0x1955c80) at /usr/src/debug/kdelibs-4.7.4/build/kdecore/kjob.moc:208
Comment 10 Myriam Schweingruber 2012-03-19 09:46:46 UTC
*** Bug 296288 has been marked as a duplicate of this bug. ***
Comment 11 Myriam Schweingruber 2012-04-08 12:01:55 UTC
*** Bug 297621 has been marked as a duplicate of this bug. ***
Comment 12 Matěj Laitl 2012-05-07 21:42:09 UTC
Git commit a3d378de5aca583bbbc13d1966df258f27e7f174 by Matěj Laitl.
Committed on 07/05/2012 at 23:31.
Pushed by laitl into branch 'master'.

AudioCdCollection: don't create a reference out of temporary var (crashfix)

There's following code in AudioCdCollection::updateProxyTracks():
const QString &urlString = url.url().remove( "audiocd:/" );

Which I think is wrong, because url.url() returns a temporary QString
and QString::remove() returns a reference to itself. However, the
temporary is AFAICS destroyed as soon as this line ends. This IMO
results in urlString being an invalid reference.

I'm not really sure about this, I haven't read C++ spec, but given many
users report crash on the following line, this could be the culprit.
I was never able to reproduce the bug, so I'm shooting blindly.

Reporters, please test reproducibility with current git and reopen if
this is not fixed.
FIXED-IN: 2.6
DIGEST: fix grave crash

M  +1    -0    ChangeLog
M  +1    -1    src/core-impl/collections/audiocd/AudioCdCollection.cpp

http://commits.kde.org/amarok/a3d378de5aca583bbbc13d1966df258f27e7f174