Bug 223487 - Assert refCountMap.contains( id ) when changing the model
Summary: Assert refCountMap.contains( id ) when changing the model
Status: RESOLVED FIXED
Alias: None
Product: Akonadi
Classification: Frameworks and Libraries
Component: akonadiconsole (show other bugs)
Version: 4.5
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Volker Krause
URL:
Keywords:
: 250584 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-01-19 22:13 UTC by Christophe Marin
Modified: 2010-09-12 23:57 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
Test case to cause the assert (1.99 KB, text/x-c++src)
2010-07-06 15:35 UTC, Olivier Trichet
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Christophe Marin 2010-01-19 22:13:10 UTC
kdelibs comes from the Opensuse snapshots (rev. 1074631)

Akonadiconsole crashes when changing the model on the browser tab.

reliable way to reproduce:
- click on the browser tab, click on the personal contact resource,
- Change the model from 'Generic' to 'Contacts',
- click on two different resources, akonadiconsole will assert when clicking on the 2nd one.


BT:

#3  0xb69cf774 in qt_message_output (msgType=QtFatalMsg, buf=0x6 <Address 0x6 out of bounds>) at global/qglobal.cpp:2250
#4  0xb69cf993 in qt_message (msgType=QtFatalMsg, msg=0xb6b4bbbc "ASSERT: \"%s\" in file %s, line %d", ap=0xbfffc4a4 ">\273\366\267P\266\366\267\257\001") at global/qglobal.cpp:2296
#5  0xb69cfab8 in qFatal (msg=0xb6b4bbbc "ASSERT: \"%s\" in file %s, line %d") at global/qglobal.cpp:2479                                                                            
#6  0xb69cfb35 in qt_assert (assertion=0xb7f6bb3e "refCountMap.contains( id )", file=0xb7f6b650 "/kde/src/KDE/kdepimlibs/akonadi/monitor_p.cpp", line=431) at global/qglobal.cpp:2013
#7  0xb7f00aeb in Akonadi::MonitorPrivate::deref (this=0x834b388, id=5) at /kde/src/KDE/kdepimlibs/akonadi/monitor_p.cpp:431                                                         
#8  0xb7eb68f5 in Akonadi::EntityTreeModelPrivate::deref (this=0x834d0f8, id=5) at /kde/src/KDE/kdepimlibs/akonadi/entitytreemodel_p.cpp:1059                                        
#9  0xb7eab218 in Akonadi::EntityTreeModel::setData (this=0x82055b0, index=..., value=..., role=53) at /kde/src/KDE/kdepimlibs/akonadi/entitytreemodel.cpp:681                       
#10 0xb7f16b5d in Akonadi::SelectionProxyModelPrivate::rootIndexAboutToBeRemoved (this=0x834f7f8, removedRootIndex=...) at /kde/src/KDE/kdepimlibs/akonadi/selectionproxymodel.cpp:60
#11 0xb7f168a1 in Akonadi::SelectionProxyModel::qt_metacall (this=0x834f748, _c=InvokeMetaMethod, _id=1, _a=0xbfffc6e8) at /kde/build/KDE/kdepimlibs/akonadi/selectionproxymodel.moc:76
#12 0xb6ae6eed in QMetaObject::metacall (object=0x834f748, cl=31974, idx=41, argv=0xbfffc6e8) at kernel/qmetaobject.cpp:237
#13 0xb6af5d1a in QMetaObject::activate (sender=0x834f748, m=0xb72fe044, local_signal_index=0, argv=0xbfffc6e8) at kernel/qobject.cpp:3267
#14 0xb70c9215 in KSelectionProxyModel::rootIndexAboutToBeRemoved (this=0x834f748, _t1=...) at /usr/src/debug/kdelibs-4.4.59svn1074631/build/kdeui/moc_kselectionproxymodel.cpp:141
#15 0xb70cef1e in KSelectionProxyModelPrivate::selectionChanged (this=0x834f718, selected=..., deselected=...)
    at /usr/src/debug/kdelibs-4.4.59svn1074631/kdeui/itemviews/kselectionproxymodel.cpp:807
#16 0xb70d018d in KSelectionProxyModel::qt_metacall (this=0x834f748, _c=InvokeMetaMethod, _id=38, _a=0xbfffc994)
    at /usr/src/debug/kdelibs-4.4.59svn1074631/build/kdeui/moc_kselectionproxymodel.cpp:128
#17 0xb7f16832 in Akonadi::SelectionProxyModel::qt_metacall (this=0x834f748, _c=InvokeMetaMethod, _id=38, _a=0xbfffc994)
    at /kde/build/KDE/kdepimlibs/akonadi/selectionproxymodel.moc:70
#18 0xb6ae6eed in QMetaObject::metacall (object=0x834f748, cl=31974, idx=38, argv=0xbfffc994) at kernel/qmetaobject.cpp:237
#19 0xb6af5d1a in QMetaObject::activate (sender=0x834f340, m=0xb696106c, local_signal_index=0, argv=0xbfffc994) at kernel/qobject.cpp:3267
#20 0xb662681d in QItemSelectionModel::selectionChanged (this=0x834f340, _t1=..., _t2=...) at .moc/release-shared/moc_qitemselectionmodel.cpp:152
#21 0xb6629eed in QItemSelectionModel::emitSelectionChanged (this=0x834f340, newSelection=..., oldSelection=...) at itemviews/qitemselectionmodel.cpp:1592
#22 0xb662ec5c in QItemSelectionModel::select (this=0x834f340, selection=..., command=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
) at itemviews/qitemselectionmodel.cpp:1099
#23 0xb6610868 in QTreeViewPrivate::select (this=0x833a2b0, topIndex=..., bottomIndex=..., command=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
) at itemviews/qtreeview.cpp:3682
#24 0xb66116f9 in QTreeView::setSelection (this=0xbfffcd54, rect=..., command=...) at itemviews/qtreeview.cpp:2246
#25 0xb65ce12b in QAbstractItemView::mousePressEvent (this=0x81ff828, event=0xbfffd7e0) at itemviews/qabstractitemview.cpp:1656
#26 0xb661a6d4 in QTreeView::mousePressEvent (this=0x81ff828, event=0xbfffd7e0) at itemviews/qtreeview.cpp:1810
#27 0xb60933cd in QWidget::event (this=0x81ff828, event=0xbfffd7e0) at kernel/qwidget.cpp:7975
#28 0xb647d495 in QFrame::event (this=0x81ff828, e=0xbfffd7e0) at widgets/qframe.cpp:557
#29 0xb651a241 in QAbstractScrollArea::viewportEvent (this=0x7ce6, e=0x6) at widgets/qabstractscrollarea.cpp:1036
#30 0xb65d2f2c in QAbstractItemView::viewportEvent (this=0x81ff828, event=0xbfffd7e0) at itemviews/qabstractitemview.cpp:1610
#31 0xb6613bcc in QTreeView::viewportEvent (this=0x81ff828, event=0xbfffd7e0) at itemviews/qtreeview.cpp:1248
#32 0xb651cb36 in viewportEvent (event=<value optimized out>, this=<value optimized out>) at widgets/qabstractscrollarea_p.h:100
#33 QAbstractScrollAreaFilter::eventFilter (event=<value optimized out>, this=<value optimized out>) at widgets/qabstractscrollarea_p.h:116
#34 0xb6ae0e4e in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x80cf570, receiver=0x81ee138, event=0xbfffd7e0) at kernel/qcoreapplication.cpp:819
#35 0xb603274d in QApplicationPrivate::notify_helper (this=0x80cf570, receiver=0x81ee138, e=0xbfffd7e0) at kernel/qapplication.cpp:4294
#36 0xb6039f8e in QApplication::notify (this=0xbfffd514, receiver=0x81ee138, e=0xbfffd7e0) at kernel/qapplication.cpp:3863
#37 0xb70e02a1 in KApplication::notify (this=0xbfffde9c, receiver=0x81ee138, event=0xbfffd7e0) at /usr/src/debug/kdelibs-4.4.59svn1074631/kdeui/kernel/kapplication.cpp:302
#38 0xb6ae1b7e in QCoreApplication::notifyInternal (this=0xbfffde9c, receiver=0x81ee138, event=0xbfffd7e0) at kernel/qcoreapplication.cpp:704
#39 0xb6038ed4 in sendSpontaneousEvent (event=<value optimized out>, receiver=<value optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:218
#40 QApplicationPrivate::sendMouseEvent (event=<value optimized out>, receiver=<value optimized out>) at kernel/qapplication.cpp:2961
#41 0xb60c65ba in QETWidget::translateMouseEvent (this=0x81f96e8, event=0xbfffdcec) at kernel/qapplication_x11.cpp:4368
#42 0xb60c5b64 in QApplication::x11ProcessEvent (this=0xbfffde9c, event=0xbfffdcec) at kernel/qapplication_x11.cpp:3379
#43 0xb60f395b in QEventDispatcherX11::processEvents (this=0x80b98e8, flags=...) at kernel/qeventdispatcher_x11.cpp:132
#44 0xb6ae01ed in QEventLoop::processEvents (this=0xbfffde14, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
) at kernel/qeventloop.cpp:149
#45 0xb6ae0639 in QEventLoop::exec (this=0xbfffde14, flags=...) at kernel/qeventloop.cpp:201
#46 0xb6ae47b0 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981
#47 0xb6032824 in QApplication::exec () at kernel/qapplication.cpp:3577
#48 0x080811cb in main (argc=1, argv=0xbfffdfc4) at /kde/src/KDE/kdepim/akonadiconsole/main.cpp:48
Comment 1 Olivier Trichet 2010-07-06 15:35:01 UTC
Created attachment 48625 [details]
Test case to cause the assert

This test case causes the crash at will.
You need to adjust the collection id for 'CurrentIndex' to an id that exists in the akonadi server.
Comment 2 Nicolas L. 2010-09-08 23:27:09 UTC
*** Bug 250584 has been marked as a duplicate of this bug. ***
Comment 3 Alex Merry 2010-09-12 23:55:32 UTC
SVN commit 1174597 by alexmerry:

Use the incrementing index to emit the signal.

Also changed what variable is being changed in two other similar loops to make what is going on more clear.

BUG: 223487



 M  +6 -6      kselectionproxymodel.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1174597
Comment 4 Alex Merry 2010-09-12 23:57:06 UTC
SVN commit 1174598 by alexmerry:

Backport r1174597: Use the incrementing index to emit the signal.

CCBUG: 223487



 M  +6 -6      kselectionproxymodel.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1174598