Bug 257353

Summary: Amarok Crashes (often) when switching to Podcast View [@ PlaylistBrowserNS::PlaylistBrowserView::viewportEvent]
Product: [Applications] amarok Reporter: dylan.e.carter
Component: PodcastAssignee: Amarok Developers <amarok-bugs-dist>
Status: RESOLVED UPSTREAM    
Severity: crash CC: anatomy.nut, andresbajotierra, bart.cerneels, dinizdiogo, dominique195, valorie.zimmerman
Priority: NOR    
Version: 2.3.2   
Target Milestone: 2.4.0   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: New crash information added by DrKonqi
New crash information added by DrKonqi

Description dylan.e.carter 2010-11-19 21:18:00 UTC
Application: amarok (2.3.2)
KDE Platform Version: 4.5.3 (KDE 4.5.3)
Qt Version: 4.7.0
Operating System: Linux 2.6.36-CHAKRA x86_64
Distribution (Platform): Archlinux Packages

-- Information about the crash:
Amarok crashes ~20% of the time when switching from local music sources to Podcast view.  When crash occurs, it is instant and without warning.

The crash can be reproduced some of the time.

-- Backtrace:
Application: Amarok (amarok), signal: Bus error
[Current thread is 1 (Thread 0x7fa1193597a0 (LWP 3461))]

Thread 19 (Thread 0x7fa0fa9c9710 (LWP 3473)):
#0  0x00007fa114371779 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007fa0ff1df8c1 in metronom_sync_loop () from /usr/lib/libxine.so.1
#2  0x00007fa11436ccb0 in start_thread () from /lib/libpthread.so.0
#3  0x00007fa115f219fd in clone () from /lib/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 18 (Thread 0x7fa0fb1ca710 (LWP 3476)):
#0  0xffffffffff60017b in ?? ()
#1  0x00007fa0fb1c99c0 in ?? ()
#2  0x00007fff279db6e2 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 17 (Thread 0x7fa0f7cb5710 (LWP 3483)):
#0  0x00007fa115f19173 in poll () from /lib/libc.so.6
#1  0x00007fa0f7cba515 in ao_alsa_handle_event_thread () from /usr/lib/xine/plugins/1.29/xineplug_ao_out_alsa.so
#2  0x00007fa11436ccb0 in start_thread () from /lib/libpthread.so.0
#3  0x00007fa115f219fd in clone () from /lib/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 16 (Thread 0x7fa0f74b4710 (LWP 3484)):
#0  0x00007fa115f1b2f3 in select () from /lib/libc.so.6
#1  0x00007fa0ff207dd4 in xine_usec_sleep () from /usr/lib/libxine.so.1
#2  0x00007fa0ff1f107a in ao_loop () from /usr/lib/libxine.so.1
#3  0x00007fa11436ccb0 in start_thread () from /lib/libpthread.so.0
#4  0x00007fa115f219fd in clone () from /lib/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 15 (Thread 0x7fa0f68aa710 (LWP 3489)):
#0  0x00007fa11437140c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007fa0ff1f167b in ao_loop () from /usr/lib/libxine.so.1
#2  0x00007fa11436ccb0 in start_thread () from /lib/libpthread.so.0
#3  0x00007fa115f219fd in clone () from /lib/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 14 (Thread 0x7fa0f60a9710 (LWP 3490)):
#0  0x00007fa11437140c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007fa0ff1f167b in ao_loop () from /usr/lib/libxine.so.1
#2  0x00007fa11436ccb0 in start_thread () from /lib/libpthread.so.0
#3  0x00007fa115f219fd in clone () from /lib/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 13 (Thread 0x7fa0f389c710 (LWP 3509)):
#0  0x00007fa115f1b2f3 in select () from /lib/libc.so.6
#1  0x00007fa0ff207dd4 in xine_usec_sleep () from /usr/lib/libxine.so.1
#2  0x00007fa0ff1ed6f2 in video_out_loop () from /usr/lib/libxine.so.1
#3  0x00007fa11436ccb0 in start_thread () from /lib/libpthread.so.0
#4  0x00007fa115f219fd in clone () from /lib/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 12 (Thread 0x7fa0edf13710 (LWP 3510)):
#0  0x00007fa11437140c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007fa0ff1e379b in fifo_buffer_get () from /usr/lib/libxine.so.1
#2  0x00007fa0ff1e97ad in video_decoder_loop () from /usr/lib/libxine.so.1
#3  0x00007fa11436ccb0 in start_thread () from /lib/libpthread.so.0
#4  0x00007fa115f219fd in clone () from /lib/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 11 (Thread 0x7fa0ed712710 (LWP 3511)):
#0  0x00007fa11437140c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007fa0ff1da09f in ticket_renew () from /usr/lib/libxine.so.1
#2  0x00007fa0ff1eafd8 in audio_decoder_loop () from /usr/lib/libxine.so.1
#3  0x00007fa11436ccb0 in start_thread () from /lib/libpthread.so.0
#4  0x00007fa115f219fd in clone () from /lib/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 10 (Thread 0x7fa0ecf11710 (LWP 3512)):
#0  0x00007fa11437140c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007fa0ff1f429b in listener_loop () from /usr/lib/libxine.so.1
#2  0x00007fa11436ccb0 in start_thread () from /lib/libpthread.so.0
#3  0x00007fa115f219fd in clone () from /lib/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 9 (Thread 0x7fa0e837a710 (LWP 3513)):
#0  0x00007fa11437140c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007fa0ff1e36a3 in buffer_pool_alloc () from /usr/lib/libxine.so.1
#2  0x00007fa0ea3f8f69 in demux_mpgaudio_next () from /usr/lib/xine/plugins/1.29/xineplug_dmx_audio.so
#3  0x00007fa0ea3f982d in demux_mpgaudio_send_chunk () from /usr/lib/xine/plugins/1.29/xineplug_dmx_audio.so
#4  0x00007fa0ff1f8073 in demux_loop () from /usr/lib/libxine.so.1
#5  0x00007fa11436ccb0 in start_thread () from /lib/libpthread.so.0
#6  0x00007fa115f219fd in clone () from /lib/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 8 (Thread 0x7fa0e7b79710 (LWP 3518)):
#0  0x00007fa11437140c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007fa1167469fb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#2  0x00007fa112fb4894 in ?? () from /usr/lib/libthreadweaver.so.4
#3  0x00007fa112fb6f03 in ?? () from /usr/lib/libthreadweaver.so.4
#4  0x00007fa112fb5cef in ?? () from /usr/lib/libthreadweaver.so.4
#5  0x00007fa112fb5d78 in ThreadWeaver::Thread::run() () from /usr/lib/libthreadweaver.so.4
#6  0x00007fa1167461c7 in QThreadPrivate::start(void*) () from /usr/lib/libQtCore.so.4
#7  0x00007fa10c7f19a3 in ?? () from /usr/lib/libGL.so.1
#8  0x00007fa11436ccb0 in start_thread () from /lib/libpthread.so.0
#9  0x00007fa115f219fd in clone () from /lib/libc.so.6
#10 0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7fa0e6b77710 (LWP 3529)):
#0  0x00007fa11437140c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007fa1127d0ea4 in QTWTF::TCMalloc_PageHeap::scavengerThread() () from /usr/lib/libQtScript.so.4
#2  0x00007fa1127d0ed9 in QTWTF::TCMalloc_PageHeap::runScavengerThread(void*) () from /usr/lib/libQtScript.so.4
#3  0x00007fa10c7f19a3 in ?? () from /usr/lib/libGL.so.1
#4  0x00007fa11436ccb0 in start_thread () from /lib/libpthread.so.0
#5  0x00007fa115f219fd in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7fa0e1f3f710 (LWP 3614)):
#0  0x00007fa11437140c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007fa1167469fb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#2  0x00007fa112fb4894 in ?? () from /usr/lib/libthreadweaver.so.4
#3  0x00007fa112fb6f03 in ?? () from /usr/lib/libthreadweaver.so.4
#4  0x00007fa112fb6f1c in ?? () from /usr/lib/libthreadweaver.so.4
#5  0x00007fa112fb5cef in ?? () from /usr/lib/libthreadweaver.so.4
#6  0x00007fa112fb5d78 in ThreadWeaver::Thread::run() () from /usr/lib/libthreadweaver.so.4
#7  0x00007fa1167461c7 in QThreadPrivate::start(void*) () from /usr/lib/libQtCore.so.4
#8  0x00007fa10c7f19a3 in ?? () from /usr/lib/libGL.so.1
#9  0x00007fa11436ccb0 in start_thread () from /lib/libpthread.so.0
#10 0x00007fa115f219fd in clone () from /lib/libc.so.6
#11 0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7fa0e1538710 (LWP 3718)):
#0  0x00007fa11437140c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007fa1167469fb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#2  0x00007fa112fb4894 in ?? () from /usr/lib/libthreadweaver.so.4
#3  0x00007fa112fb6f03 in ?? () from /usr/lib/libthreadweaver.so.4
#4  0x00007fa112fb6f1c in ?? () from /usr/lib/libthreadweaver.so.4
#5  0x00007fa112fb6f1c in ?? () from /usr/lib/libthreadweaver.so.4
#6  0x00007fa112fb6f1c in ?? () from /usr/lib/libthreadweaver.so.4
#7  0x00007fa112fb6f1c in ?? () from /usr/lib/libthreadweaver.so.4
#8  0x00007fa112fb6f1c in ?? () from /usr/lib/libthreadweaver.so.4
#9  0x00007fa112fb6f1c in ?? () from /usr/lib/libthreadweaver.so.4
#10 0x00007fa112fb6f1c in ?? () from /usr/lib/libthreadweaver.so.4
#11 0x00007fa112fb5cef in ?? () from /usr/lib/libthreadweaver.so.4
#12 0x00007fa112fb5d78 in ThreadWeaver::Thread::run() () from /usr/lib/libthreadweaver.so.4
#13 0x00007fa1167461c7 in QThreadPrivate::start(void*) () from /usr/lib/libQtCore.so.4
#14 0x00007fa10c7f19a3 in ?? () from /usr/lib/libGL.so.1
#15 0x00007fa11436ccb0 in start_thread () from /lib/libpthread.so.0
#16 0x00007fa115f219fd in clone () from /lib/libc.so.6
#17 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fa0e0d37710 (LWP 3755)):
#0  0x00007fa11437140c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007fa1167469fb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#2  0x00007fa112fb4894 in ?? () from /usr/lib/libthreadweaver.so.4
#3  0x00007fa112fb6f03 in ?? () from /usr/lib/libthreadweaver.so.4
#4  0x00007fa112fb6f1c in ?? () from /usr/lib/libthreadweaver.so.4
#5  0x00007fa112fb5cef in ?? () from /usr/lib/libthreadweaver.so.4
#6  0x00007fa112fb5d78 in ThreadWeaver::Thread::run() () from /usr/lib/libthreadweaver.so.4
#7  0x00007fa1167461c7 in QThreadPrivate::start(void*) () from /usr/lib/libQtCore.so.4
#8  0x00007fa10c7f19a3 in ?? () from /usr/lib/libGL.so.1
#9  0x00007fa11436ccb0 in start_thread () from /lib/libpthread.so.0
#10 0x00007fa115f219fd in clone () from /lib/libc.so.6
#11 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fa0dbfff710 (LWP 4462)):
#0  0x00007fa11437140c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007fa10e057574 in WTF::TCMalloc_PageHeap::scavengerThread() () from /usr/lib/libQtWebKit.so.4
#2  0x00007fa10e0575a9 in WTF::TCMalloc_PageHeap::runScavengerThread(void*) () from /usr/lib/libQtWebKit.so.4
#3  0x00007fa10c7f19a3 in ?? () from /usr/lib/libGL.so.1
#4  0x00007fa11436ccb0 in start_thread () from /lib/libpthread.so.0
#5  0x00007fa115f219fd in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fa0d4e66710 (LWP 4463)):
#0  0x00007fa114371779 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007fa116746912 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#2  0x00007fa11673b0e0 in QThreadPoolThread::run() () from /usr/lib/libQtCore.so.4
#3  0x00007fa1167461c7 in QThreadPrivate::start(void*) () from /usr/lib/libQtCore.so.4
#4  0x00007fa10c7f19a3 in ?? () from /usr/lib/libGL.so.1
#5  0x00007fa11436ccb0 in start_thread () from /lib/libpthread.so.0
#6  0x00007fa115f219fd in clone () from /lib/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fa1193597a0 (LWP 3461)):
[KCrash Handler]
#6  0x00007fa1177d7d50 in QSortFilterProxyModel::parent(QModelIndex const&) const () from /usr/lib/libQtGui.so.4
#7  0x00007fa11778dd01 in QTreeView::indexRowSizeHint(QModelIndex const&) const () from /usr/lib/libQtGui.so.4
#8  0x00007fa11778e4d8 in QTreeViewPrivate::itemHeight(int) const () from /usr/lib/libQtGui.so.4
#9  0x00007fa11778e7df in QTreeViewPrivate::updateScrollBars() () from /usr/lib/libQtGui.so.4
#10 0x00007fa11778ebad in QTreeView::updateGeometries() () from /usr/lib/libQtGui.so.4
#11 0x00007fa117252129 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#12 0x00007fa117621816 in QFrame::event(QEvent*) () from /usr/lib/libQtGui.so.4
#13 0x00007fa117748223 in QAbstractItemView::viewportEvent(QEvent*) () from /usr/lib/libQtGui.so.4
#14 0x00007fa117791865 in QTreeView::viewportEvent(QEvent*) () from /usr/lib/libQtGui.so.4
#15 0x00007fa11683d677 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#16 0x00007fa1171f92d9 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#17 0x00007fa1171fe531 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#18 0x00007fa118d76586 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#19 0x00007fa11683d4ec in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#20 0x00007fa11724d87f in QWidgetPrivate::sendPendingMoveAndResizeEvents(bool, bool) () from /usr/lib/libQtGui.so.4
#21 0x00007fa117255d33 in QWidgetPrivate::show_helper() () from /usr/lib/libQtGui.so.4
#22 0x00007fa11725621a in QWidget::setVisible(bool) () from /usr/lib/libQtGui.so.4
#23 0x00007fa117255c9e in QWidgetPrivate::showChildren(bool) () from /usr/lib/libQtGui.so.4
#24 0x00007fa117255d4f in QWidgetPrivate::show_helper() () from /usr/lib/libQtGui.so.4
#25 0x00007fa11725621a in QWidget::setVisible(bool) () from /usr/lib/libQtGui.so.4
#26 0x00007fa117255c9e in QWidgetPrivate::showChildren(bool) () from /usr/lib/libQtGui.so.4
#27 0x00007fa117255d4f in QWidgetPrivate::show_helper() () from /usr/lib/libQtGui.so.4
#28 0x00007fa11725621a in QWidget::setVisible(bool) () from /usr/lib/libQtGui.so.4
#29 0x00007fa117f06abf in ?? () from /usr/lib/libamaroklib.so.1
#30 0x00007fa117f06dcf in ?? () from /usr/lib/libamaroklib.so.1
#31 0x00007fa117f0a6a4 in ?? () from /usr/lib/libamaroklib.so.1
#32 0x00007fa116854bff in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#33 0x00007fa11774aa95 in QAbstractItemView::activated(QModelIndex const&) () from /usr/lib/libQtGui.so.4
#34 0x00007fa11774af85 in QAbstractItemView::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4
#35 0x00007fa117252144 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#36 0x00007fa117621816 in QFrame::event(QEvent*) () from /usr/lib/libQtGui.so.4
#37 0x00007fa117748223 in QAbstractItemView::viewportEvent(QEvent*) () from /usr/lib/libQtGui.so.4
#38 0x00007fa117791865 in QTreeView::viewportEvent(QEvent*) () from /usr/lib/libQtGui.so.4
#39 0x00007fa11683d677 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#40 0x00007fa1171f92d9 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#41 0x00007fa1171ff038 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#42 0x00007fa118d76586 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#43 0x00007fa11683d4ec in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#44 0x00007fa1171fa72b in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQtGui.so.4
#45 0x00007fa1172819f8 in QETWidget::translateMouseEvent(_XEvent const*) () from /usr/lib/libQtGui.so.4
#46 0x00007fa1172800b9 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
#47 0x00007fa1172a8d02 in x11EventSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib/libQtGui.so.4
#48 0x00007fa110895bf3 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#49 0x00007fa1108963d0 in ?? () from /usr/lib/libglib-2.0.so.0
#50 0x00007fa11089666d in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#51 0x00007fa11686b72f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#52 0x00007fa1172a899e in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtGui.so.4
#53 0x00007fa11683bf82 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#54 0x00007fa11683c1cc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#55 0x00007fa11684171b in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#56 0x0000000000408157 in _start ()

This bug may be a duplicate of or related to bug 252622, bug 254054.

Possible duplicates by query: bug 257078, bug 256958, bug 256869, bug 256386, bug 254978.

Reported using DrKonqi
Comment 1 Myriam Schweingruber 2010-11-22 11:22:03 UTC
Sorry, but your backtrace is not useful, as you are lacking debugging symbols. If you can reproduce this bug, please check here on how to get a valid backtrace:

http://techbase.kde.org/Development/Tutorials/Debugging/How_to_create_useful_crash_reports
Comment 2 Valorie Zimmerman 2010-11-24 01:22:33 UTC
Created attachment 53677 [details]
New crash information added by DrKonqi

amarok (2.4-GIT) on KDE Platform 4.5.3 (KDE 4.5.3) using Qt 4.7.0

- What I was doing when the application crashed: Had just played to the end of an album in the playlist, and was going to get the next podcast in a series. As soon as I selected Podcasts from the menu, instant crash.

Freshly built Amarok from GIT an hour or so ago, Xine backend, Kubuntu 10.10, KDE 4.5.3

-- Backtrace (Reduced):
#6  QModelIndex (this=0x29c8e10, child=...) at ../../include/QtCore/../../src/corelib/kernel/qabstractitemmodel.h:65
#7  QSortFilterProxyModel::parent (this=0x29c8e10, child=...) at itemviews/qsortfilterproxymodel.cpp:1656
#8  0x00007f35534f4251 in parent (this=0x2b56790, index=<value optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qabstractitemmodel.h:389
#9  QTreeView::indexRowSizeHint (this=0x2b56790, index=<value optimized out>) at itemviews/qtreeview.cpp:2758
#10 0x00007f35534f49ac in QTreeViewPrivate::itemHeight (this=0x2b568a0, item=7) at itemviews/qtreeview.cpp:3229
Comment 3 Myriam Schweingruber 2010-11-26 18:18:51 UTC
Thank you for the feedback.
Comment 4 Mikko C. 2010-12-09 09:46:40 UTC
*** Bug 259301 has been marked as a duplicate of this bug. ***
Comment 5 Bart Cerneels 2010-12-12 21:01:32 UTC
commit ec2f04a8dce4ac12e181d494f4049ce94cd1ca94
branch master
Author: Bart Cerneels <bart.cerneels@kde.org>
Date:   Sun Dec 12 20:58:51 2010 +0100

    Fix mistakes in Qt itemmodels & proxy.
    
    Possible fix for some crashes that happen in release builds only.
    
    CCBUG:257353
    CCBUG:257330

diff --git a/src/browsers/playlistbrowser/PlaylistBrowserModel.cpp b/src/browsers/playlistbrowser/PlaylistBrowserModel.cpp
index 2e74b82..a0f8076 100644
--- a/src/browsers/playlistbrowser/PlaylistBrowserModel.cpp
+++ b/src/browsers/playlistbrowser/PlaylistBrowserModel.cpp
@@ -591,15 +591,11 @@ PlaylistBrowserModel::slotPlaylistAdded( Playlists::PlaylistPtr playlist, int ca
     for( i = 0; i < m_playlists.count(); i++ )
     {
         if( lessThanPlaylistTitles( playlist, m_playlists[i] ) )
-        {
-            m_playlists.insert( i, playlist );
             break;
-        }
     }
-    if( i == m_playlists.count() )
-        m_playlists.append( playlist );
 
     beginInsertRows( QModelIndex(), i, i );
+    m_playlists.insert( i, playlist );
     endInsertRows();
 }
 
diff --git a/src/browsers/playlistbrowser/QtGroupingProxy.cpp b/src/browsers/playlistbrowser/QtGroupingProxy.cpp
index d4c8822..b66386f 100644
--- a/src/browsers/playlistbrowser/QtGroupingProxy.cpp
+++ b/src/browsers/playlistbrowser/QtGroupingProxy.cpp
@@ -119,7 +119,7 @@ QtGroupingProxy::buildTree()
     if( !m_model )
         return;
 
-    emit layoutAboutToBeChanged();
+    beginResetModel();
 
     m_groupHash.clear();
     //don't clear the data maps since most of it will probably be needed again.
@@ -153,7 +153,7 @@ QtGroupingProxy::buildTree()
     }
 //    dumpGroups();
 
-    emit layoutChanged();
+    endResetModel();
 }
 
 QList<int>
Comment 6 Dario Andres 2010-12-25 17:04:12 UTC
[Comment from a bug triager]
As described in bug 219964 comment 13, this may be a bug in the Qt library which should be fixed soon.
Regards
Comment 7 Bart Cerneels 2011-01-24 16:12:20 UTC
*** Bug 264166 has been marked as a duplicate of this bug. ***
Comment 8 diogo diniz costa 2011-02-11 21:36:25 UTC
Created attachment 57169 [details]
New crash information added by DrKonqi

amarok (2.3.2) on KDE Platform 4.5.1 (KDE 4.5.1) using Qt 4.7.0

- What I was doing when the application crashed: Amarok crashes when I transfer my 8GB playlist.

-- Backtrace (Reduced):
#7  QModelIndex (this=0x99e6448, child=...) at ../../include/QtCore/../../src/corelib/kernel/qabstractitemmodel.h:65
#8  QSortFilterProxyModel::parent (this=0x99e6448, child=...) at itemviews/qsortfilterproxymodel.cpp:1656
#9  0xb66cc942 in parent (this=0x99e8778, index=...) at ../../include/QtCore/../../src/corelib/kernel/qabstractitemmodel.h:389
#10 QTreeView::indexRowSizeHint (this=0x99e8778, index=...) at itemviews/qtreeview.cpp:2758
#11 0xb66cd16b in QTreeViewPrivate::itemHeight (this=0x99e6a20, item=0) at itemviews/qtreeview.cpp:3229
Comment 9 Dario Andres 2011-02-18 19:14:40 UTC
As described at https://bugs.kde.org/show_bug.cgi?id=219964#c26 the bug in Qt is fixed for 4.7.3
Comment 10 Myriam Schweingruber 2011-02-19 14:21:50 UTC
(In reply to comment #9)
> As described at https://bugs.kde.org/show_bug.cgi?id=219964#c26 the bug in Qt
> is fixed for 4.7.3

Which doesn't really help for this report, as Amarok depends on Qt 4.6 at least for another few . versions round, largely depending on the avilability of Qt 4.7 in the distributions. A solution would be to backport the fix to Qt 4.6.x or if all distribution patch their versions.
Comment 11 Myriam Schweingruber 2011-06-04 12:10:56 UTC
This is an automated message from the triager:

Amarok 2.4.1 has been released on May 8 already. Could you please upgrade and test if you can still reproduce this bug?

Without feedback within a month we will close this bug as resolved.

Thank you for your understanding.
Comment 12 Myriam Schweingruber 2011-07-16 08:57:15 UTC
NVM, closing this as upstream.