Bug 321910

Summary: Expaning contacts can lead to crash
Product: [Unmaintained] telepathy Reporter: Hrvoje Senjan <hrvoje.senjan>
Component: contactlistAssignee: Telepathy Bugs <kde-telepathy-bugs>
Status: RESOLVED WORKSFORME    
Severity: crash CC: kde
Priority: NOR Keywords: drkonqi
Version: 0.6.2   
Target Milestone: 0.7-beta   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Hrvoje Senjan 2013-07-03 15:12:00 UTC
Application: ktp-contactlist (0.6.2)
KDE Platform Version: 4.10.90 "release 5"
Qt Version: 4.8.5
Operating System: Linux 3.9.8-1.gf3348a8-desktop x86_64
Distribution: "openSUSE 13.1 Milestone 2 (x86_64)"

-- Information about the crash:
- What I was doing when the application crashed:

As summarized, ktp-c-l can *sometimes* crash when one expands the group. Using new kpeople power ktp-c-i, etc

The crash can be reproduced sometimes.

-- Backtrace:
Application: KDE Telepathy Contact List (ktp-contactlist), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f5b044e5840 (LWP 6578))]

Thread 4 (Thread 0x7f5aec584700 (LWP 6582)):
#0  0x00007f5b001c3d4d in read () from /lib64/libc.so.6
#1  0x00007f5afca8309f in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f5afca43bbc in g_main_context_check () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f5afca43ff5 in ?? () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f5afca44184 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#5  0x00007f5aec58be9d in ?? () from /usr/lib64/gio/modules/libdconfsettings.so
#6  0x00007f5afca685f5 in ?? () from /usr/lib64/libglib-2.0.so.0
#7  0x00007f5afdc5de0e in start_thread () from /lib64/libpthread.so.0
#8  0x00007f5b001d0b9d in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7f5aebd83700 (LWP 6583)):
#0  0x00007f5b001c7c4d in poll () from /lib64/libc.so.6
#1  0x00007f5afca4405c in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f5afca4453a in g_main_loop_run () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f5afc51b8c6 in ?? () from /usr/lib64/libgio-2.0.so.0
#4  0x00007f5afca685f5 in ?? () from /usr/lib64/libglib-2.0.so.0
#5  0x00007f5afdc5de0e in start_thread () from /lib64/libpthread.so.0
#6  0x00007f5b001d0b9d in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7f5aea410700 (LWP 6600)):
#0  0x00007f5afdc61964 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f5b01e3227b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2  0x00007f5aff964032 in Soprano::Util::AsyncQuery::Private::run() () from /usr/lib64/libsoprano.so.4
#3  0x00007f5b01e31d0c in ?? () from /usr/lib64/libQtCore.so.4
#4  0x00007f5afdc5de0e in start_thread () from /lib64/libpthread.so.0
#5  0x00007f5b001d0b9d in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f5b044e5840 (LWP 6578)):
[KCrash Handler]
#5  0x00007f5b01f5038b in QVariant::toString() const () from /usr/lib64/libQtCore.so.4
#6  0x00007f5b03ec31ca in KPeopleTranslationProxy::data (this=0xe28900, proxyIndex=..., role=<optimized out>) at /usr/src/debug/ktp-common-internals-0.5.60.git.1372805058/KTp/Models/kpeopletranslationproxy.cpp:149
#7  0x00007f5b03ebce7c in data (arole=1033, this=0x7fff87bd93e0) at /usr/include/QtCore/qabstractitemmodel.h:402
#8  KTp::TextChannelWatcherProxyModel::data (this=0xd0f710, proxyIndex=..., role=1033) at /usr/src/debug/ktp-common-internals-0.5.60.git.1372805058/KTp/Models/text-channel-watcher-proxy-model.cpp:216
#9  0x00007f5b03eb1412 in data (arole=1033, this=<optimized out>) at /usr/include/QtCore/qabstractitemmodel.h:402
#10 KTp::AccountsTreeProxyModel::groupsForIndex (this=<optimized out>, sourceIndex=...) at /usr/src/debug/ktp-common-internals-0.5.60.git.1372805058/KTp/Models/accounts-tree-proxy-model.cpp:58
#11 0x00007f5b03eaaa3d in KTp::AbstractGroupingProxyModel::onRowsInserted (this=0xd5b1e0, sourceParent=..., start=<optimized out>, end=8) at /usr/src/debug/ktp-common-internals-0.5.60.git.1372805058/KTp/Models/abstract-grouping-proxy-model.cpp:193
#12 0x00007f5b01f4305f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4
#13 0x00007f5b01f8e6a4 in QAbstractItemModel::rowsInserted(QModelIndex const&, int, int) () from /usr/lib64/libQtCore.so.4
#14 0x00007f5b01f2ab9a in QAbstractItemModel::endInsertRows() () from /usr/lib64/libQtCore.so.4
#15 0x00007f5b01f4305f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4
#16 0x00007f5b01f8e6a4 in QAbstractItemModel::rowsInserted(QModelIndex const&, int, int) () from /usr/lib64/libQtCore.so.4
#17 0x00007f5b01f2ab9a in QAbstractItemModel::endInsertRows() () from /usr/lib64/libQtCore.so.4
#18 0x00007f5b01f4305f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4
#19 0x00007f5b01f8e6a4 in QAbstractItemModel::rowsInserted(QModelIndex const&, int, int) () from /usr/lib64/libQtCore.so.4
#20 0x00007f5b01f2ab9a in QAbstractItemModel::endInsertRows() () from /usr/lib64/libQtCore.so.4
#21 0x00007f5b01123860 in ?? () from /usr/lib64/libQtGui.so.4
#22 0x00007f5b01124627 in ?? () from /usr/lib64/libQtGui.so.4
#23 0x00007f5b028da711 in KPeople::PersonsModel::addContact(QUrl const&) () from /usr/lib64/libkpeople.so.4
#24 0x00007f5b028e2c6f in ?? () from /usr/lib64/libkpeople.so.4
#25 0x00007f5b01f4305f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4
#26 0x00007f5affe88277 in Nepomuk2::ResourceWatcher::resourceCreated (this=this@entry=0xd6a3f0, _t1=..., _t2=...) at /usr/src/debug/nepomuk-core-git/build/libnepomukcore/resourcewatcher.moc:202
#27 0x00007f5affe8a492 in Nepomuk2::ResourceWatcher::slotResourceCreated (this=0xd6a3f0, res=..., types=...) at /usr/src/debug/nepomuk-core-git/libnepomukcore/datamanagement/resourcewatcher.cpp:313
#28 0x00007f5affe8b6b3 in qt_static_metacall (_a=<optimized out>, _id=<optimized out>, _o=<optimized out>, _c=<optimized out>) at /usr/src/debug/nepomuk-core-git/build/libnepomukcore/resourcewatcher.moc:149
#29 Nepomuk2::ResourceWatcher::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /usr/src/debug/nepomuk-core-git/build/libnepomukcore/resourcewatcher.moc:109
#30 0x00007f5b01f4305f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4
#31 0x00007f5affe8f88a in OrgKdeNepomukResourceWatcherConnectionInterface::resourceCreated (this=<optimized out>, _t1=..., _t2=...) at /usr/src/debug/nepomuk-core-git/build/libnepomukcore/resourcewatcherconnectioninterface.moc:158
#32 0x00007f5affe8fbcd in qt_static_metacall (_a=<optimized out>, _id=<optimized out>, _o=<optimized out>, _c=<optimized out>) at /usr/src/debug/nepomuk-core-git/build/libnepomukcore/resourcewatcherconnectioninterface.moc:79
#33 OrgKdeNepomukResourceWatcherConnectionInterface::qt_static_metacall (_o=0xf7d170, _c=<optimized out>, _id=<optimized out>, _a=0x7fff87bda3a0) at /usr/src/debug/nepomuk-core-git/build/libnepomukcore/resourcewatcherconnectioninterface.moc:72
#34 0x00007f5affe9041b in OrgKdeNepomukResourceWatcherConnectionInterface::qt_metacall (this=0xf7d170, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0x7fff87bda3a0) at /usr/src/debug/nepomuk-core-git/build/libnepomukcore/resourcewatcherconnectioninterface.moc:141
#35 0x00007f5b01b58e2a in ?? () from /usr/lib64/libQtDBus.so.4
#36 0x00007f5b01f4856e in QObject::event(QEvent*) () from /usr/lib64/libQtCore.so.4
#37 0x00007f5b00b8e17c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#38 0x00007f5b00b90aeb in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#39 0x00007f5b0384dde6 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
#40 0x00007f5b01f2eb5e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/libQtCore.so.4
#41 0x00007f5b01f32171 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib64/libQtCore.so.4
#42 0x00007f5b01f5cf33 in ?? () from /usr/lib64/libQtCore.so.4
#43 0x00007f5afca43d85 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#44 0x00007f5afca440c8 in ?? () from /usr/lib64/libglib-2.0.so.0
#45 0x00007f5afca44184 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#46 0x00007f5b01f5d0c6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#47 0x00007f5b00c2ed1e in ?? () from /usr/lib64/libQtGui.so.4
#48 0x00007f5b01f2d80f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#49 0x00007f5b01f2da98 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#50 0x00007f5b01f32d08 in QCoreApplication::exec() () from /usr/lib64/libQtCore.so.4
#51 0x000000000041e953 in ?? ()
#52 0x00007f5b00109a15 in __libc_start_main () from /lib64/libc.so.6
#53 0x000000000041ec55 in _start ()

Reported using DrKonqi
Comment 1 David Edmundson 2013-07-03 15:56:50 UTC
Confirmed.

To save someone else looking, crash is in getting the contact ID in AccountRole when contact is null.

Added kpeople flag which I want set for all _kpeople only_ bugs.
Comment 2 David Edmundson 2013-09-01 14:29:39 UTC
I have not seen this crash in a while (only the QStandardItem::emitDataChanged (this=0x1de7670) at itemviews/qstandarditemmodel.cpp:867) crash.

Anyone else?
Comment 3 Hrvoje Senjan 2013-09-01 17:25:53 UTC
(In reply to comment #2)
> I have not seen this crash in a while 
I can confirm this

>(only the
> QStandardItem::emitDataChanged (this=0x1de7670) at
> itemviews/qstandarditemmodel.cpp:867) crash.

Same here. But this renders ktp-c-l almost useless. After first successful showing of list, every succeeding try results in a crash...
If you have the same as:
#5  0x00007faaa1003450 in QStandardItem::emitDataChanged() () from /usr/lib64/libQtGui.so.4
#6  0x00007faaa4aaf0e1 in changed (this=<optimized out>) at /usr/src/debug/ktp-common-internals-0.6.60.git.1378007975/KTp/Models/abstract-grouping-proxy-model.cpp:80
#7  KTp::AbstractGroupingProxyModel::onDataChanged (this=0x1a6eaa0, sourceTopLeft=..., sourceBottomRight=...) at /usr/src/debug/ktp-common-internals-0.6.60.git.1378007975/KTp/Models/abstract-grouping-proxy-model.cpp:313
Comment 4 David Edmundson 2013-09-01 17:53:05 UTC
Follow that here: https://bugs.kde.org/show_bug.cgi?id=322134

Note that it is marked for 0.7 milestone, if it still exists when it comes to the release.. we don't release. (or I pull the kpeople support completely)

As for that bug, I /think/ I have a fix.
Comment 5 Hrvoje Senjan 2013-09-01 17:55:54 UTC
(In reply to comment #4)
> Follow that here: https://bugs.kde.org/show_bug.cgi?id=322134
CC'ed already ;-)

> As for that bug, I /think/ I have a fix.
Ah,  great :-)