Bug 324794 - Contact list crashed when closing
Summary: Contact list crashed when closing
Status: RESOLVED WAITINGFORINFO
Alias: None
Product: telepathy
Classification: Frameworks and Libraries
Component: contactlist (show other bugs)
Version: git-latest
Platform: Compiled Sources Linux
: HI crash
Target Milestone: 0.7-beta
Assignee: Telepathy Bugs
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2013-09-11 14:09 UTC by Daniele E. Domenichelli
Modified: 2013-09-23 02:17 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
ddomenichelli: kpeople+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Daniele E. Domenichelli 2013-09-11 14:09:49 UTC
Application: ktp-contactlist (0.6.3)
KDE Platform Version: 4.10.5 (Compiled from sources)
Qt Version: 4.8.5
Operating System: Linux 3.10-2-amd64 x86_64
Distribution: Debian GNU/Linux testing (jessie)

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

Just closing the contact list. It happened another couple of times, but I cannot find a way to reproduce it

-- Backtrace:
Application: KDE Telepathy Contact List (ktp-contactlist), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7ff6a8d22840 (LWP 6424))]

Thread 3 (Thread 0x7ff68bfff700 (LWP 6450)):
#0  0x00007ff6a344cfdd in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007ff6a344d2b9 in g_mutex_unlock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ff6a340d8c8 in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ff6a340e0b3 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ff6a340e29c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ff690627a1d in ?? () from /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so
#6  0x00007ff6a34321d5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#7  0x00007ff6a0125e0e in start_thread (arg=0x7ff68bfff700) at pthread_create.c:311
#8  0x00007ff6a3cd393d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 2 (Thread 0x7ff68b7fe700 (LWP 6451)):
#0  0x00007ff6a3cc819d in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007ff6a340e194 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ff6a340e5fa in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ff6a2ee1d26 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007ff6a34321d5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ff6a0125e0e in start_thread (arg=0x7ff68b7fe700) at pthread_create.c:311
#6  0x00007ff6a3cd393d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 1 (Thread 0x7ff6a8d22840 (LWP 6424)):
[KCrash Handler]
#6  QStandardItemPrivate::setModel (this=<optimized out>, mod=mod@entry=0x0) at itemviews/qstandarditemmodel.cpp:302
#7  0x00007ff6a4efb464 in QStandardItemPrivate::~QStandardItemPrivate (this=0x2731f40, __in_chrg=<optimized out>) at itemviews/qstandarditemmodel.cpp:96
#8  0x00007ff6a4efb5a9 in QStandardItemPrivate::~QStandardItemPrivate (this=0x2731f40, __in_chrg=<optimized out>) at itemviews/qstandarditemmodel.cpp:102
#9  0x00007ff6a4ef8851 in cleanup (pointer=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:62
#10 ~QScopedPointer (this=0x27342a8, __in_chrg=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:100
#11 QStandardItem::~QStandardItem (this=0x27342a0, __in_chrg=<optimized out>) at itemviews/qstandarditemmodel.cpp:778
#12 0x00007ff6a4ef88a9 in QStandardItem::~QStandardItem (this=0x27342a0, __in_chrg=<optimized out>) at itemviews/qstandarditemmodel.cpp:780
#13 0x00007ff6a4efa459 in cleanup (pointer=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:62
#14 ~QScopedPointer (this=0x2734278, __in_chrg=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:100
#15 QStandardItemModelPrivate::~QStandardItemModelPrivate (this=0x27341b0, __in_chrg=<optimized out>) at itemviews/qstandarditemmodel.cpp:330
#16 0x00007ff6a4efa6f9 in QStandardItemModelPrivate::~QStandardItemModelPrivate (this=0x27341b0, __in_chrg=<optimized out>) at itemviews/qstandarditemmodel.cpp:335
#17 0x00007ff6a6522bc5 in cleanup (pointer=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:62
#18 ~QScopedPointer (this=0x27320b8, __in_chrg=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:100
#19 QObject::~QObject (this=0x27320b0, __in_chrg=<optimized out>) at kernel/qobject.cpp:816
#20 0x00007ff6a64fe4ad in QAbstractItemModel::~QAbstractItemModel (this=0x27320b0, __in_chrg=<optimized out>) at kernel/qabstractitemmodel.cpp:1389
#21 0x00007ff6a6aa6e59 in KPeople::PersonsModel::~PersonsModel (this=0x27320b0, __in_chrg=<optimized out>) at /opt/telepathy/libkpeople/src/personsmodel.cpp:121
#22 0x00007ff6a6aa6e8c in KPeople::PersonsModel::~PersonsModel (this=0x27320b0, __in_chrg=<optimized out>) at /opt/telepathy/libkpeople/src/personsmodel.cpp:124
#23 0x00007ff6a65205e8 in QObjectPrivate::deleteChildren (this=this@entry=0x273f8e0) at kernel/qobject.cpp:1907
#24 0x00007ff6a6522b8f in QObject::~QObject (this=0x273f8b0, __in_chrg=<optimized out>) at kernel/qobject.cpp:926
#25 0x00007ff6a64fe4ad in QAbstractItemModel::~QAbstractItemModel (this=0x273f8b0, __in_chrg=<optimized out>) at kernel/qabstractitemmodel.cpp:1389
#26 0x00007ff6a4eee7c0 in QSortFilterProxyModel::~QSortFilterProxyModel (this=0x273f8b0, __in_chrg=<optimized out>) at itemviews/qsortfilterproxymodel.cpp:1547
#27 0x00007ff6a86e1786 in KTp::ContactsFilterModel::~ContactsFilterModel (this=0x273f8b0, __in_chrg=<optimized out>) at /opt/telepathy/ktp-common-internals/KTp/Models/contacts-filter-model.cpp:431
#28 0x00007ff6a86eb7ee in KTp::ContactsModel::~ContactsModel (this=0x273f8b0, __in_chrg=<optimized out>) at /opt/telepathy/ktp-common-internals/KTp/Models/contacts-model.cpp:92
#29 0x00007ff6a86eb842 in KTp::ContactsModel::~ContactsModel (this=0x273f8b0, __in_chrg=<optimized out>) at /opt/telepathy/ktp-common-internals/KTp/Models/contacts-model.cpp:95
#30 0x00007ff6a65205e8 in QObjectPrivate::deleteChildren (this=this@entry=0x26fc510) at kernel/qobject.cpp:1907
#31 0x00007ff6a49c7527 in QWidget::~QWidget (this=0x279bdf0, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1679
#32 0x000000000041e67c in ContactListWidget::~ContactListWidget (this=0x279bdf0, __in_chrg=<optimized out>) at /opt/telepathy/ktp-contact-list/contact-list-widget.cpp:140
#33 0x000000000041e6b4 in ContactListWidget::~ContactListWidget (this=0x279bdf0, __in_chrg=<optimized out>) at /opt/telepathy/ktp-contact-list/contact-list-widget.cpp:143
#34 0x00007ff6a65205e8 in QObjectPrivate::deleteChildren (this=this@entry=0x269c2a0) at kernel/qobject.cpp:1907
#35 0x00007ff6a49c7527 in QWidget::~QWidget (this=0x269d4d0, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1679
#36 0x00007ff6a49c7839 in QWidget::~QWidget (this=0x269d4d0, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1703
#37 0x00007ff6a65205e8 in QObjectPrivate::deleteChildren (this=this@entry=0x26a6e60) at kernel/qobject.cpp:1907
#38 0x00007ff6a49c7527 in QWidget::~QWidget (this=0x2692fb0, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1679
#39 0x00007ff6a7eee1c5 in KMainWindow::~KMainWindow (this=0x2692fb0, __in_chrg=<optimized out>) at ../../kdeui/widgets/kmainwindow.cpp:467
#40 0x000000000043b2d2 in MainWidget::~MainWidget (this=0x2692fb0, __in_chrg=<optimized out>) at /opt/telepathy/ktp-contact-list/main-widget.cpp:155
#41 0x000000000043b30e in MainWidget::~MainWidget (this=0x2692fb0, __in_chrg=<optimized out>) at /opt/telepathy/ktp-contact-list/main-widget.cpp:165
#42 0x00007ff6a65220e8 in QObject::event (this=this@entry=0x2692fb0, e=e@entry=0x3eb1d20) at kernel/qobject.cpp:1175
#43 0x00007ff6a49cad5b in QWidget::event (this=this@entry=0x2692fb0, event=event@entry=0x3eb1d20) at kernel/qwidget.cpp:8846
#44 0x00007ff6a4d81383 in QMainWindow::event (this=0x2692fb0, event=0x3eb1d20) at widgets/qmainwindow.cpp:1478
#45 0x00007ff6a497b70c in QApplicationPrivate::notify_helper (this=this@entry=0x256aaf0, receiver=receiver@entry=0x2692fb0, e=e@entry=0x3eb1d20) at kernel/qapplication.cpp:4567
#46 0x00007ff6a4981d80 in QApplication::notify (this=this@entry=0x7fff92ca2a10, receiver=receiver@entry=0x2692fb0, e=e@entry=0x3eb1d20) at kernel/qapplication.cpp:4353
#47 0x00007ff6a7e3acfa in KApplication::notify (this=0x7fff92ca2a10, receiver=0x2692fb0, event=0x3eb1d20) at ../../kdeui/kernel/kapplication.cpp:311
#48 0x00007ff6a6509b5d in QCoreApplication::notifyInternal (this=0x7fff92ca2a10, receiver=receiver@entry=0x2692fb0, event=event@entry=0x3eb1d20) at kernel/qcoreapplication.cpp:949
#49 0x00007ff6a650d0bf in sendEvent (event=0x3eb1d20, receiver=0x2692fb0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#50 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x24a5580) at kernel/qcoreapplication.cpp:1573
#51 0x00007ff6a650d563 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1466
#52 0x00007ff6a6537423 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#53 postEventSourceDispatch (s=0x2557c30) at kernel/qeventdispatcher_glib.cpp:280
#54 0x00007ff6a340dea6 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#55 0x00007ff6a340e1f8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#56 0x00007ff6a340e29c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#57 0x00007ff6a6536ce5 in QEventDispatcherGlib::processEvents (this=0x24a6ee0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#58 0x00007ff6a4a19846 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#59 0x00007ff6a65087bf in QEventLoop::processEvents (this=this@entry=0x7fff92ca2990, flags=...) at kernel/qeventloop.cpp:149
#60 0x00007ff6a6508ab5 in QEventLoop::exec (this=this@entry=0x7fff92ca2990, flags=...) at kernel/qeventloop.cpp:204
#61 0x00007ff6a650e0fb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1221
#62 0x000000000043a925 in main (argc=1, argv=0x7fff92ca2cd8) at /opt/telepathy/ktp-contact-list/main.cpp:63

Reported using DrKonqi
Comment 1 David Edmundson 2013-09-23 02:17:46 UTC
I haven't reproduced this.

The code it's crashing is all internal to QStandardItemModel where it removes the model from any child items of a QStandardItem.

This will only break if the internal structure of a QStandardItemModel..which can't happen with the public API of QStandardItemModel
 
Have you seen this crash since:
commit 6ef80139f71f0f6ac028aef0b7fb94a9f1b8ac80
Author: David Edmundson <kde@davidedmundson.co.uk>
Date:   Thu Sep 12 15:26:34 2013 +0000
    Do not call QAbstractItemModel methods from within QStandardItemModel
    
    Otherwise we get leaks and crashes


Only other possible thought is we're manipulating the model in a different thread?