Summary: | Amarok crashes on start with following message: ASSERT failure in QVector<T>::at: "index out of range" | ||
---|---|---|---|
Product: | [Applications] amarok | Reporter: | Bernd Buschinski <b.buschinski> |
Component: | Playlist | Assignee: | Amarok Developers <amarok-bugs-dist> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | 4ernov, ahartmetz, alexanders83, alvarus, bart.cerneels, bugs.kde, claude.xavier, emilsedgh, matej, mikko.cal, oldium.pro, polentino911, Tanktalus, wilderkde |
Priority: | NOR | Keywords: | release_blocker |
Version: | 2.5-git | ||
Target Milestone: | 2.6 | ||
Platform: | Gentoo Packages | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/amarok/d1a1c80370e4132c26fa636308822fdb3aa1b2e6 | Version Fixed In: | 2.6 |
Sentry Crash Report: | |||
Attachments: |
backtrace with debug useflag enabled
New crash information added by DrKonqi New crash information added by DrKonqi New crash information added by DrKonqi New crash information added by DrKonqi New crash information added by DrKonqi |
Description
Bernd Buschinski
2011-11-04 01:42:37 UTC
The problem is again related to Qt, similar to bug 279798 I'm also getting this crash every time on startup, a little bit after selecting the Amazon country. I'm also using Gentoo. $ kde4-config -v Qt: 4.7.4 KDE Development Platform: 4.7.3 (4.7.3) kde4-config: 1.0 Amarok from git. amarok: BEGIN: void CollectionTreeItemModelBase::handleCompilations(CollectionTreeItem*) const amarok: END__: void CollectionTreeItemModelBase::handleCompilations(CollectionTreeItem*) const [Took: 0s] amarok: BEGIN: void CollectionTreeItemModelBase::handleCompilations(CollectionTreeItem*) const amarok: END__: void CollectionTreeItemModelBase::handleCompilations(CollectionTreeItem*) const [Took: 0s] ASSERT failure in QVector<T>::at: "index out of range", file ../../include/QtCore/../../src/corelib/tools/qvector.h, line 339 QSocketNotifier: Invalid socket 15 and type 'Read', disabling... amarok: NOTE: MySQL server had gone away, ping reconnected it KCrash: crashing... crashRecursionCounter = 2 KCrash: Application Name = amarok path = /usr/bin pid = 2062 KCrash: Arguments: /usr/bin/amarok --nocrashhandler -d KCrash: Attempting to start /usr/lib64/kde4/libexec/drkonqi from kdeinit sock_file=/home/mikko/.kde4/socket-X4/kdeinit4__0 Thread 1 (Thread 0x7fe079e42780 (LWP 2062)): [KCrash Handler] #6 0x00007fe076441915 in raise () from /lib64/libc.so.6 #7 0x00007fe076442cba in abort () from /lib64/libc.so.6 #8 0x00007fe076d162e4 in qt_message_output (msgType=<value optimized out>, buf=<value optimized out>) at global/qglobal.cpp:2291 #9 0x00007fe076d16459 in qt_message(QtMsgType, const char *, typedef __va_list_tag __va_list_tag *) (msgType=QtFatalMsg, msg=0x7fe076e7de88 "ASSERT failure in %s: \"%s\", file %s, line %d", ap=0x7fff0200de00) at global/qglobal.cpp:2337 #10 0x00007fe076d16615 in qFatal (msg=<value optimized out>) at global/qglobal.cpp:2520 #11 0x00007fe077e20c99 in at (this=<value optimized out>, source_parent=...) at ../../include/QtCore/../../src/corelib/tools/qvector.h:339 #12 QSortFilterProxyModelPrivate::can_create_mapping (this=<value optimized out>, source_parent=...) at itemviews/qsortfilterproxymodel.cpp:406 #13 0x00007fe077e24291 in QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeInserted (this=0x1c5ec20, source_parent=..., start=<value optimized out>, end=<value optimized out>) at itemviews/qsortfilterproxymodel.cpp:1271 #14 0x00007fe077e283bc in QSortFilterProxyModel::qt_metacall (this=0x1c5ec00, _c=QMetaObject::InvokeMetaMethod, _id=11, _a=0x7fff0200e090) at .moc/debug-shared/moc_qsortfilterproxymodel.cpp:136 #15 0x00007fe0788a4579 in PlaylistBrowserFilterProxy::qt_metacall (this=0x1c5ec00, _c=QMetaObject::InvokeMetaMethod, _id=36, _a=0x7fff0200e090) at /home/mikko/amarok/build/src/moc_PlaylistBrowserFilterProxy.cpp:72 #16 0x00007fe076e2ecdf in QMetaObject::activate (sender=0x1c5c9f0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff0200e090) at kernel/qobject.cpp:3278 #17 0x00007fe076e7a0c4 in QAbstractItemModel::rowsAboutToBeInserted (this=<value optimized out>, _t1=<value optimized out>, _t2=0, _t3=0) at .moc/debug-shared/moc_qabstractitemmodel.cpp:174 #18 0x00007fe076e0e809 in QAbstractItemModel::beginInsertRows (this=0x1c5c9f0, parent=..., first=0, last=0) at kernel/qabstractitemmodel.cpp:2395 #19 0x00007fe078bbeb3d in QtGroupingProxy::addSourceRow (this=0x1c5c9f0, idx=...) at /home/mikko/amarok/src/browsers/playlistbrowser/QtGroupingProxy.cpp:239 #20 0x00007fe078bbe40c in QtGroupingProxy::buildTree (this=0x1c5c9f0) at /home/mikko/amarok/src/browsers/playlistbrowser/QtGroupingProxy.cpp:156 #21 0x00007fe078bd7451 in PlaylistsByProviderProxy::buildTree (this=0x1c5c9f0) at /home/mikko/amarok/src/browsers/playlistbrowser/PlaylistsByProviderProxy.cpp:287 #22 0x00007fe0788a76b8 in QtGroupingProxy::qt_metacall (this=0x1c5c9f0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x1c5dd20) at /home/mikko/amarok/build/src/moc_QtGroupingProxy.cpp:82 #23 0x00007fe0788a5d67 in PlaylistsByProviderProxy::qt_metacall (this=0x1c5c9f0, _c=QMetaObject::InvokeMetaMethod, _id=25, _a=0x1c5dd20) at /home/mikko/amarok/build/src/moc_PlaylistsByProviderProxy.cpp:73 #24 0x00007fe076e2e742 in QObject::event (this=0x1c5c9f0, e=<value optimized out>) at kernel/qobject.cpp:1217 #25 0x00007fe07783ad40 in QApplicationPrivate::notify_helper (this=0x1080910, receiver=0x1c5c9f0, e=0x1c5b710) at kernel/qapplication.cpp:4481 #26 0x00007fe07783ffe1 in QApplication::notify (this=<value optimized out>, receiver=0x1c5c9f0, e=0x1c5b710) at kernel/qapplication.cpp:4360 #27 0x00007fe0797a9811 in KApplication::notify (this=0x7fff0200ef40, receiver=0x1c5c9f0, event=0x1c5b710) at /var/tmp/paludis/kde-base-kdelibs-4.7.3/work/kdelibs-4.7.3/kdeui/kernel/kapplication.cpp:311 #28 0x00007fe076e1812b in QCoreApplication::notifyInternal (this=0x7fff0200ef40, receiver=0x1c5c9f0, event=0x1c5b710) at kernel/qcoreapplication.cpp:787 #29 0x00007fe076e1c0a1 in sendEvent (receiver=0x0, event_type=0, data=0xefa9f0) at kernel/qcoreapplication.h:215 #30 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0xefa9f0) at kernel/qcoreapplication.cpp:1428 #31 0x00007fe076e461f3 in sendPostedEvents (s=0xf21250) at kernel/qcoreapplication.h:220 #32 postEventSourceDispatch (s=0xf21250) at kernel/qeventdispatcher_glib.cpp:277 #33 0x00007fe06fc95f3a in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #34 0x00007fe06fc96718 in g_main_context_iterate.clone.6 () from /usr/lib64/libglib-2.0.so.0 #35 0x00007fe06fc9697f in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #36 0x00007fe076e4635a in QEventDispatcherGlib::processEvents (this=0xefa1d0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:422 #37 0x00007fe0778ec486 in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204 #38 0x00007fe076e16b92 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149 #39 0x00007fe076e16e14 in QEventLoop::exec (this=0x7fff0200eeb0, flags=...) at kernel/qeventloop.cpp:201 #40 0x00007fe076e1c37b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1064 #41 0x000000000040d1f7 in main (argc=2, argv=0x7fff02011608) at /home/mikko/amarok/src/main.cpp:296 I think this bug triggers only when Qt is build with debugging on. Reporters, you may want to work-around this by disabling debugging in Qt until this is properly fixed. Amarok devs should use debugging Qt builds to detect such errors early. (In reply to comment #3) > I think this bug triggers only when Qt is build with debugging on. Reporters, > you may want to work-around this by disabling debugging in Qt until this is > properly fixed. > > Amarok devs should use debugging Qt builds to detect such errors early. I was not quite right here, as pointed by Kevin Funk, QVector::at() is inline, so compiling amarok _without_ QT_NO_DEBUG should suffice to trigger this bug. btw: I just installed amarok-2.4.3 again, with Qt-4.8rc1, and it works fine. (In reply to comment #5) > btw: I just installed amarok-2.4.3 again, with Qt-4.8rc1, and it works fine. And what debug flags you have on Qt and Amarok? (assuming you use Gentoo) CFLAGS contain -g FEATURES have splitdebug, but that doesn't matter debug useflag is not set, but it doesn't matter as the cflag enables it anyway Same flags for Qt/Amarok/the world, so all that matter is that amarok & Qt was compiled with debugsymbols (In reply to comment #7) > CFLAGS contain -g > > FEATURES have splitdebug, but that doesn't matter > > debug useflag is not set, but it doesn't matter as the cflag enables it anyway > > Same flags for Qt/Amarok/the world, so all that matter is that amarok & Qt was > compiled with debugsymbols Bernd, this is a common misconception about debug UFE-flag in Gentoo and debugging symbols (in short: they are _unrelated_). See https://bugs.kde.org/show_bug.cgi?id=279798#c14 and please read http://www.gentoo.org/proj/en/qa/backtraces.xml section "debug USE flag" carefully. Ah yes, sorry. Qt was compiled with debug useflag, because I want to see asserts in all my programms. But only Qt has the debug useflag, not amarok. But now please don't tell me to disable this useflag, I know what I am doing :) (In reply to comment #9) > Ah yes, sorry. > > Qt was compiled with debug useflag, because I want to see asserts in all my > programms. But only Qt has the debug useflag, not amarok. This means that you've worked around this bug, because it seems that it only happens when _Amarok_ is build with debug flag, as per comment 285720#c3 If you want to help us, you may perhaps want to build Amarok _with_ debug flag against Qt-4.8rc1 and report back whether it still asserts. > But now please don't tell me to disable this useflag, I know what I am doing :) Don't fear, we're well aware that we must support both debug & release Qt builds. :) IF I find some time tonight or next week, I'll try bisecting to find which commit caused this. It shouldn't take too long since it didn't happen 1-2 weeks ago... Created attachment 65294 [details]
backtrace with debug useflag enabled
I did enable debug useflag and re-emerged amarok-9999 but the backtrace looks the same
(In reply to comment #11) > IF I find some time tonight or next week, I'll try bisecting to find which > commit caused this. > It shouldn't take too long since it didn't happen 1-2 weeks ago... Thanks, that would be a huge help, Mikko. I guess it may be even automatised (see git bisect run), something like: file bisect-helper.sh: #!/bin/bash # ensure amarok is not running: pgrep amarok && echo "Amarok was running!" && exit 128 # build amarok and abort bisecting if it failed <build amarok somehow> || echo "build failed" && exit 128 amarok & sleep 60 if pgrep amarok; then # good, did not crash in a minute killall amarok exit 0 else # amarok did not survive a minute, probably crashed exit 1 fi Not sure if I did this right, but here's the result.. The date is completely wrong, dunno why.. 83e490ba358b5bad968e41fe94fc92ade253812b is the first bad commit commit 83e490ba358b5bad968e41fe94fc92ade253812b Author: Bart Cerneels <bart.cerneels@kde.org> Date: Fri Jul 22 16:36:39 2011 +0200 Save new playlist by dropping in browser. GUI:Drop tracks on the empty area in Saved Playlists to create a new playlist. :100644 100644 50c375b5420d57c7e892a3ce035de1dff7dbe395 0b87f8ed6ca2514386b73ef3d61185b23f981041 M ChangeLog :040000 040000 37657bdec7a841e549ca53b82fb9eeadbad676e0 0ce23c98437e9a066440dc254ce65cdf5732b785 M src nevermind actually, that's not it, i messed something up. I'll try again from scrath, sorry for the noise. @Matej I'm stuck... $ git bisect good Bisecting: 0 revisions left to test after this (roughly 1 step) [0638d9dfce905ef66cc28074810e3ed5c37479f0] Add rootnode action to create empty playlist. but this commit does not compile... [ 16%] Building CXX object src/CMakeFiles/amaroklib.dir/browsers/playlistbrowser/UserPlaylistCategory.o [ 16%] Building CXX object src/CMakeFiles/amaroklib.dir/browsers/playlistbrowser/PlaylistsInFoldersProxy.o [ 16%] Building CXX object src/CMakeFiles/amaroklib.dir/browsers/playlistbrowser/PlaylistTreeItemDelegate.o /home/mikko/amarok/src/browsers/playlistbrowser/PlaylistBrowserModel.cpp: In member function ‘void PlaylistBrowserNS::PlaylistBrowserModel::slotCreateEmptyPlaylist()’: /home/mikko/amarok/src/browsers/playlistbrowser/PlaylistBrowserModel.cpp:687:35: error: ‘generatePlaylistName’ is not a member of ‘Amarok’ make[2]: *** [src/CMakeFiles/amaroklib.dir/browsers/playlistbrowser/PlaylistBrowserModel.o] Errore 1 make[2]: *** Attesa dei processi non terminati.... make[1]: *** [src/CMakeFiles/amaroklib.dir/all] Errore 2 make: *** [all] Errore 2 (In reply to comment #16) > @Matej I'm stuck... `git bisect skip` to the rescue! Ok thanks, I got the real bad commit this time :) Re-adding bart to CC (sorry!) $ git bisect bad e46a8ad0c52a50294de78c26fd8d3193e2467022 is the first bad commit commit e46a8ad0c52a50294de78c26fd8d3193e2467022 Author: Bart Cerneels <bart.cerneels@kde.org> Date: Mon Oct 24 14:26:59 2011 +0200 Force call of slot that did not work regularly. Polymorhpism fail. :040000 040000 51123df10ba1d0aa2c833046cd793ddc0138f63f 2e82c6dfeba94c2a6c189a61183b0833daaf5acf M src This is the BT resulting from the above commit: Thread 1 (Thread 0x7f9bf160a780 (LWP 6993)): [KCrash Handler] #6 0x00007f9bedc0b915 in raise () from /lib64/libc.so.6 #7 0x00007f9bedc0ccba in abort () from /lib64/libc.so.6 #8 0x00007f9bee4e02e4 in qt_message_output (msgType=<value optimized out>, buf=<value optimized out>) at global/qglobal.cpp:2291 #9 0x00007f9bee4e0459 in qt_message(QtMsgType, const char *, typedef __va_list_tag __va_list_tag *) (msgType=QtFatalMsg, msg=0x7f9bee647e88 "ASSERT failure in %s: \"%s\", file %s, line %d", ap=0x7fff5533b1c0) at global/qglobal.cpp:2337 #10 0x00007f9bee4e0615 in qFatal (msg=<value optimized out>) at global/qglobal.cpp:2520 #11 0x00007f9bef5eac99 in at (this=<value optimized out>, source_parent=...) at ../../include/QtCore/../../src/corelib/tools/qvector.h:339 #12 QSortFilterProxyModelPrivate::can_create_mapping (this=<value optimized out>, source_parent=...) at itemviews/qsortfilterproxymodel.cpp:406 #13 0x00007f9bef5ee291 in QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeInserted (this=0x2b61ad0, source_parent=..., start=<value optimized out>, end=<value optimized out>) at itemviews/qsortfilterproxymodel.cpp:1271 #14 0x00007f9bef5f23bc in QSortFilterProxyModel::qt_metacall (this=0x2b61ab0, _c=QMetaObject::InvokeMetaMethod, _id=11, _a=0x7fff5533b450) at .moc/debug-shared/moc_qsortfilterproxymodel.cpp:136 #15 0x00007f9bf006e159 in PlaylistBrowserFilterProxy::qt_metacall (this=0x2b61ab0, _c=QMetaObject::InvokeMetaMethod, _id=36, _a=0x7fff5533b450) at /home/mikko/amarok/build/src/moc_PlaylistBrowserFilterProxy.cpp:72 #16 0x00007f9bee5f8cdf in QMetaObject::activate (sender=0x2b5f8a0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff5533b450) at kernel/qobject.cpp:3278 #17 0x00007f9bee6440c4 in QAbstractItemModel::rowsAboutToBeInserted (this=<value optimized out>, _t1=<value optimized out>, _t2=0, _t3=0) at .moc/debug-shared/moc_qabstractitemmodel.cpp:174 #18 0x00007f9bee5d8809 in QAbstractItemModel::beginInsertRows (this=0x2b5f8a0, parent=..., first=0, last=0) at kernel/qabstractitemmodel.cpp:2395 #19 0x00007f9bf0387fa5 in QtGroupingProxy::addSourceRow (this=0x2b5f8a0, idx=...) at /home/mikko/amarok/src/browsers/playlistbrowser/QtGroupingProxy.cpp:239 #20 0x00007f9bf0387874 in QtGroupingProxy::buildTree (this=0x2b5f8a0) at /home/mikko/amarok/src/browsers/playlistbrowser/QtGroupingProxy.cpp:156 #21 0x00007f9bf03a06e0 in PlaylistsByProviderProxy::buildTree (this=0x2b5f8a0) at /home/mikko/amarok/src/browsers/playlistbrowser/PlaylistsByProviderProxy.cpp:283 #22 0x00007f9bf0071298 in QtGroupingProxy::qt_metacall (this=0x2b5f8a0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x2b60bd0) at /home/mikko/amarok/build/src/moc_QtGroupingProxy.cpp:82 #23 0x00007f9bf006f947 in PlaylistsByProviderProxy::qt_metacall (this=0x2b5f8a0, _c=QMetaObject::InvokeMetaMethod, _id=25, _a=0x2b60bd0) at /home/mikko/amarok/build/src/moc_PlaylistsByProviderProxy.cpp:73 #24 0x00007f9bee5f8742 in QObject::event (this=0x2b5f8a0, e=<value optimized out>) at kernel/qobject.cpp:1217 #25 0x00007f9bef004d40 in QApplicationPrivate::notify_helper (this=0x202bc40, receiver=0x2b5f8a0, e=0x2b5e5c0) at kernel/qapplication.cpp:4481 #26 0x00007f9bef009fe1 in QApplication::notify (this=<value optimized out>, receiver=0x2b5f8a0, e=0x2b5e5c0) at kernel/qapplication.cpp:4360 #27 0x00007f9bf0f71811 in KApplication::notify (this=0x7fff5533c2f0, receiver=0x2b5f8a0, event=0x2b5e5c0) at /var/tmp/paludis/kde-base-kdelibs-4.7.3/work/kdelibs-4.7.3/kdeui/kernel/kapplication.cpp:311 #28 0x00007f9bee5e212b in QCoreApplication::notifyInternal (this=0x7fff5533c2f0, receiver=0x2b5f8a0, event=0x2b5e5c0) at kernel/qcoreapplication.cpp:787 #29 0x00007f9bee5e60a1 in sendEvent (receiver=0x0, event_type=0, data=0x1ea89f0) at kernel/qcoreapplication.h:215 #30 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x1ea89f0) at kernel/qcoreapplication.cpp:1428 #31 0x00007f9bee6101f3 in sendPostedEvents (s=0x2005960) at kernel/qcoreapplication.h:220 #32 postEventSourceDispatch (s=0x2005960) at kernel/qeventdispatcher_glib.cpp:277 #33 0x00007f9be745ff3a in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #34 0x00007f9be7460718 in g_main_context_iterate.clone.6 () from /usr/lib64/libglib-2.0.so.0 #35 0x00007f9be746097f in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #36 0x00007f9bee61035a in QEventDispatcherGlib::processEvents (this=0x1ea81d0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:422 #37 0x00007f9bef0b6486 in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204 #38 0x00007f9bee5e0b92 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149 #39 0x00007f9bee5e0e14 in QEventLoop::exec (this=0x7fff5533c260, flags=...) at kernel/qeventloop.cpp:201 #40 0x00007f9bee5e637b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1064 #41 0x000000000040d1f7 in main (argc=2, argv=0x7fff5533e9b8) at /home/mikko/amarok/src/main.cpp:296 (In reply to comment #18) > Ok thanks, I got the real bad commit this time :) > Re-adding bart to CC (sorry!) > > $ git bisect bad > e46a8ad0c52a50294de78c26fd8d3193e2467022 is the first bad commit > commit e46a8ad0c52a50294de78c26fd8d3193e2467022 > Author: Bart Cerneels <bart.cerneels@kde.org> > Date: Mon Oct 24 14:26:59 2011 +0200 > > Force call of slot that did not work regularly. > > Polymorhpism fail. Thanks! Lets see what Bart says, as I dont understand the commit message, the purpose of the change and why it can make an assertion fail. @ Bernd: if you still want to compile from master, just undo this little change: https://projects.kde.org/projects/extragear/multimedia/amarok/repository/diff/src/browsers/playlistbrowser/QtGroupingProxy.cpp?rev=e46a8ad0c52a50294de78c26fd8d3193e2467022&type=sbs and readd buildTree(); instead of the QTimer stuff. I've done it and it works fine on master. The QTimer thing is to make sure the re-implementation of buildTree() is executed instead of the one from the base class. Git commit 6c17f656f7aafbc4f323e55d671391c8699df108 by Bart Cerneels. Committed on 06/11/2011 at 22:31. Pushed by shanachie into branch 'master'. Properly signal added rows. Gets rid of an assert when using a Qt debug build. BUG:285720 M +20 -15 src/browsers/playlistbrowser/PlaylistsByProviderProxy.cpp http://commits.kde.org/amarok/6c17f656f7aafbc4f323e55d671391c8699df108 *** Bug 285541 has been marked as a duplicate of this bug. *** Reopening as this is still present in Amarok 2.5 after upgrade. Could it be the behavior of QTimer::singleShot() changed? *** Bug 289504 has been marked as a duplicate of this bug. *** Created attachment 67027 [details]
New crash information added by DrKonqi
amarok (2.5.0) on KDE Platform 4.7.4 (4.7.4) using Qt 4.7.2
- What I was doing when the application crashed: I just started it up
- Custom settings of the application: amarok is compilled with the USE lastfm and mtp
-- Backtrace (Reduced):
#13 0x00007fbe11dd827c in QSortFilterProxyModel::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib64/qt4/libQtGui.so.4
[...]
#16 0x00007fbe10e355a4 in QAbstractItemModel::rowsAboutToBeInserted(QModelIndex const&, int, int) () from /usr/lib64/qt4/libQtCore.so.4
#17 0x00007fbe10dc3af3 in QAbstractItemModel::beginInsertRows(QModelIndex const&, int, int) () from /usr/lib64/qt4/libQtCore.so.4
[...]
#23 0x00007fbe10e35554 in QAbstractItemModel::rowsInserted(QModelIndex const&, int, int) () from /usr/lib64/qt4/libQtCore.so.4
#24 0x00007fbe10dc5ec2 in QAbstractItemModel::endInsertRows() () from /usr/lib64/qt4/libQtCore.so.4
Xavier: your backtrace doesn't have debugging symbols, please install those or compile Amarok with the debug flag on. (In reply to comment #28) > Xavier: your backtrace doesn't have debugging symbols, please install those or > compile Amarok with the debug flag on. Myriam, Xavier seems to be using Gentoo, debug flag has a different meaning there [1]. The always-correct (TM) formulation could be "compile Amarok with debugging symbols on". Xavier, please compile amarok with "-ggdb" somewhere in your CXXFLAGS and "splitdebug" in your FEATURES, for more info please read [1], which is an excellent debugging guide. You are _discouraged_ to enable the debug USE-flag for any software you don't develop yourself. In fact, I'm 99% sure you can work-around this bug by compiling kdelibs without debug flag. [1] http://www.gentoo.org/proj/en/qa/backtraces.xml Created attachment 67087 [details]
New crash information added by DrKonqi
amarok (2.5.0) on KDE Platform 4.7.95 (4.8 RC1 (4.7.95) using Qt 4.7.4
- What I was doing when the application crashed:
Started the application normally, always crashes
-- Backtrace (Reduced):
#13 0xb5608f1f in qt_assert_x (where=0xb63bbe3f "QVector<T>::at", what=0xb63b9cb4 "index out of range", file=0xb63bbe78 "../../include/QtCore/../../src/corelib/tools/qvector.h", line=339) at global/qglobal.cpp:2044
#14 0xb62b1a1d in at (this=0x98421d0, source_parent=...) at ../../include/QtCore/../../src/corelib/tools/qvector.h:339
#15 QSortFilterProxyModelPrivate::can_create_mapping (this=0x98421d0, source_parent=...) at itemviews/qsortfilterproxymodel.cpp:406
#16 0xb62b50c9 in QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeInserted (this=0x98421d0, source_parent=..., start=0, end=0) at itemviews/qsortfilterproxymodel.cpp:1271
#17 0xb62b9643 in QSortFilterProxyModel::qt_metacall (this=0x98421c0, _c=QMetaObject::InvokeMetaMethod, _id=11, _a=0xbfd92b30) at .moc/debug-shared/moc_qsortfilterproxymodel.cpp:136
Matěj, I hope my backtrace brings more light into the problem as I have the whole system compiled with debugging information. Created attachment 67092 [details]
New crash information added by DrKonqi
amarok (2.5.0) on KDE Platform 4.7.95 (4.8 RC1 (4.7.95) using Qt 4.7.4
- What I was doing when the application crashed: Crashes upon start just as splash screen disappears.
- Custom settings of the application:
CFLAGS="-march=core2 -mtune=generic -O2 -pipe -ggdb"
FEATURES="splitdebug"
Installed versions (use):
media-sound/amarok-2.5.0(cdda debug embedded linguas_ru opengl player semantic-desktop utils) from kde overlay.
x11-libs/qt-core-4.7.4-r1(debug exceptions glib iconv jit qt3support ssl) from kde overlay.
-- Backtrace (Reduced):
#11 0x00007f51fd7ab0e4 in at (i=0, this=0x17d0db0) at ../../include/QtCore/../../src/corelib/tools/qvector.h:339
#12 QSortFilterProxyModelPrivate::can_create_mapping (this=<optimized out>, source_parent=...) at itemviews/qsortfilterproxymodel.cpp:406
#13 0x00007f51fd7ae7b9 in QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeInserted (this=0x17c71d0, source_parent=..., start=<optimized out>, end=<optimized out>) at itemviews/qsortfilterproxymodel.cpp:1271
#14 0x00007f51fd7b291c in QSortFilterProxyModel::qt_metacall (this=0x13b9bd0, _c=QMetaObject::InvokeMetaMethod, _id=11, _a=0x7fff56750c80) at .moc/debug-shared/moc_qsortfilterproxymodel.cpp:136
#15 0x00007f51fe1f0180 in PlaylistBrowserFilterProxy::qt_metacall (this=0x13b9bd0, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0x7fff56750c80) at /var/cache/portage/tmp/portage/media-sound/amarok-2.5.0/work/amarok-2.5.0_build/src/moc_PlaylistBrowserFilterProxy.cpp:72
*** Bug 292073 has been marked as a duplicate of this bug. *** Created attachment 68415 [details]
New crash information added by DrKonqi
amarok (2.5.0) on KDE Platform 4.8.00 (4.8.0 using Qt 4.8.0
- What I was doing when the application crashed:
Simply starting amarok leads to a crash
[console output]
ASSERT failure in QVector<T>::at: "index out of range", file ../../include/QtCore/../../src/corelib/tools/qvector.h, line 351
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = amarok path = /usr/bin pid = 10319
KCrash: Arguments: /usr/bin/amarok --nocrashhandler
KCrash: Attempting to start /usr/lib64/kde4/libexec/drkonqi from kdeinit
sock_file=/home/boris64/.kde4/socket-boris64/kdeinit4__0
QSocketNotifier: Invalid socket 14 and type 'Read', disabling...
[/console output]
-- Backtrace (Reduced):
#11 0x00007f69e1ae2a94 in at (i=1, this=0x29c3840) at ../../include/QtCore/../../src/corelib/tools/qvector.h:351
#12 QSortFilterProxyModelPrivate::can_create_mapping (this=<optimized out>, source_parent=...) at itemviews/qsortfilterproxymodel.cpp:408
#13 0x00007f69e1ae6169 in QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeInserted (this=0x29b6460, source_parent=..., start=<optimized out>, end=<optimized out>) at itemviews/qsortfilterproxymodel.cpp:1273
[...]
#15 0x00007f69e0b24334 in QAbstractItemModel::rowsAboutToBeInserted (this=<optimized out>, _t1=<optimized out>, _t2=0, _t3=0) at .moc/debug-shared/moc_qabstractitemmodel.cpp:190
#16 0x00007f69e0ab5caa in QAbstractItemModel::beginInsertRows (this=0x29af700, parent=..., first=0, last=0) at kernel/qabstractitemmodel.cpp:2416
Workaround: The issue was solved for me by deleting the entry [Loaded Playlist Files] in amarokrc Please confirm if it is the case for you guys as well thx __J (In reply to comment #35) > Workaround: > > The issue was solved for me by deleting the entry > [Loaded Playlist Files] > in amarokrc Only that line or also the entries that follow (urls of playlist files)? > Only that line or also the entries that follow (urls of playlist files)?
Sorry if I was not clear enough: what I meant is the whole entry, that is the line [Loaded Playlist Files] and the following lines, until the next line marked as [something]
__J
(In reply to comment #35) > Workaround: > > The issue was solved for me by deleting the entry > [Loaded Playlist Files] > in amarokrc I can't confirm this. There is no section Loaded Playlist Files left and it still crashes. I can confirm the problem. As a hotfix for me I've patched out the loading of playlists because I don't use them. The main playlist still works. Created attachment 69999 [details]
New crash information added by DrKonqi
amarok (2.5-GIT) on KDE Platform 4.8.1 (4.8.1) using Qt 4.8.1
This started happenning since I updated to Qt 4.8.1
-- Backtrace (Reduced):
#11 0x00007f50222f0c47 in qt_assert_x (where=0x7f502376f9b9 "QVector<T>::at", what=0x7f502376f98f "index out of range", file=0x7f502376f958 "../../include/QtCore/../../src/corelib/tools/qvector.h", line=351) at global/qglobal.cpp:2007
#12 0x00007f5022f5e47b in QVector<int>::at (this=0x15d6cb0, i=0) at ../../include/QtCore/../../src/corelib/tools/qvector.h:351
#13 0x00007f502363f6be in QSortFilterProxyModelPrivate::can_create_mapping (this=0x15c96a0, source_parent=...) at itemviews/qsortfilterproxymodel.cpp:408
#14 0x00007f50236431a3 in QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeInserted (this=0x15c96a0, source_parent=..., start=0, end=0) at itemviews/qsortfilterproxymodel.cpp:1273
#15 0x00007f50236474b1 in QSortFilterProxyModel::qt_static_metacall (_o=0x15c9680, _c=QMetaObject::InvokeMetaMethod, _id=11, _a=0x7fff9402cd00) at .moc/debug-shared/moc_qsortfilterproxymodel.cpp:113
It also happen with Qt 4.8.1 here, but Qt is not at fault, its a bug in Amarok. Its related to Qt & amarok beeing build with asserts enabled. Which is normally a good thing to detect bugs early. (if you want to detect them and help the software getting better) In short a workaround is to build Qt and amarok with asserts disabled. The real bug is in amarok and needs to fixed. Git commit d1a1c80370e4132c26fa636308822fdb3aa1b2e6 by Matěj Laitl. Committed on 05/05/2012 at 10:59. Pushed by laitl into branch 'master'. QtGroupingProxy: don't re-enter beginInsertRows() (crashfix) This should fix a nasty crash that was only reproducible when Qt was build with debugging assertions enabled. (and perhaps only if you have empty playlist providers) The fix is based on an assumption that addSourceRow() in QtGroupingProxy is only called from: a) buildTree(), which encompasses it in {begin/end}ResetModel() b) modelRowsInserted(), but that should be always preceeded by modelRowsAboutToBeInserted() that calls beginInsertRows() Bart, this is largely your code, is this correct? BUGFIXES: * Fix crash on start when Qt is build with debugging assertions FIXED-IN: 2.6 DIGEST: fix rather nasty crash M +1 -0 ChangeLog M +1 -9 src/browsers/playlistbrowser/QtGroupingProxy.cpp M +1 -1 src/browsers/playlistbrowser/QtGroupingProxy.h http://commits.kde.org/amarok/d1a1c80370e4132c26fa636308822fdb3aa1b2e6 |