Bug 325679 - Crash when starting a conversation
Summary: Crash when starting a conversation
Status: RESOLVED FIXED
Alias: None
Product: telepathy
Classification: Frameworks and Libraries
Component: contactlist (show other bugs)
Version: 0.6.80
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: Future
Assignee: Telepathy Bugs
URL:
Keywords: drkonqi
: 325329 330901 (view as bug list)
Depends on:
Blocks:
 
Reported: 2013-10-05 20:51 UTC by Darin McBride
Modified: 2014-02-08 02:24 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 0.7.1
kde: ReviewRequest+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Darin McBride 2013-10-05 20:51:33 UTC
Application: ktp-contactlist (0.6.80)
KDE Platform Version: 4.11.2 (Compiled from sources)
Qt Version: 4.8.5
Operating System: Linux 3.11.2-gentoo x86_64
Distribution: "NAME=Gentoo"

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

I clicked on the "Instant Messaging Presence" in the system tray, which opened my list of contacts.  I clicked on one.  The conversation window opened up, but the contact list disappeared and Dr Konqi showed up in its place.

The crash can be reproduced every time.

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

Thread 3 (Thread 0x7f303ffff700 (LWP 32531)):
#0  0x00007f305bcf5a6d in read () from /lib64/libc.so.6
#1  0x00007f3057d995ff in g_wakeup_acknowledge () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f3057d57a14 in g_main_context_check () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f3057d57e33 in g_main_context_iterate.isra.23.part.24 () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f3057d583ba in g_main_loop_run () from /usr/lib64/libglib-2.0.so.0
#5  0x00007f30447bff2b in dconf_context_thread (data=0x2616e20) at dconfcontext.c:11
#6  0x00007f3057d7cc05 in g_thread_proxy () from /usr/lib64/libglib-2.0.so.0
#7  0x00007f3059af7d96 in start_thread () from /lib64/libpthread.so.0
#8  0x00007f305bd0346d in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7f303f7fe700 (LWP 32532)):
#0  0x00007f305bcfa6a3 in poll () from /lib64/libc.so.6
#1  0x00007f3057d57e95 in g_main_context_iterate.isra.23.part.24 () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f3057d583ba in g_main_loop_run () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f3047b29286 in gdbus_shared_thread_func () from /usr/lib64/libgio-2.0.so.0
#4  0x00007f3057d7cc05 in g_thread_proxy () from /usr/lib64/libglib-2.0.so.0
#5  0x00007f3059af7d96 in start_thread () from /lib64/libpthread.so.0
#6  0x00007f305bd0346d in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f30604a57c0 (LWP 32526)):
[KCrash Handler]
#6  0x00007f305bc4daa5 in raise () from /lib64/libc.so.6
#7  0x00007f305bc4eda5 in abort () from /lib64/libc.so.6
#8  0x00007f305d957a14 in qt_message_output (msgType=<optimized out>, buf=<optimized out>) at global/qglobal.cpp:2323
#9  0x00007f305d957b9f in qt_message(QtMsgType, const char *, typedef __va_list_tag __va_list_tag *) (msgType=QtFatalMsg, msg=0x7f305daf98f8 "ASSERT: \"%s\" in file %s, line %d", ap=0x7fff361049d8) at global/qglobal.cpp:2369
#10 0x00007f305d957d44 in qFatal (msg=<optimized out>) at global/qglobal.cpp:2552
#11 0x00007f305cacd881 in QIdentityProxyModel::rowCount (this=0x25eebf0, parent=...) at itemviews/qidentityproxymodel.cpp:317
#12 0x00007f305fe4a4fa in KTp::AbstractGroupingProxyModel::addProxyNode (this=0x25f1a80, sourceIndex=..., parent=0x2709550) at /var/tmp/portage/net-im/ktp-common-internals-0.6.80/work/ktp-common-internals-0.6.80/KTp/Models/abstract-grouping-proxy-model.cpp:223
#13 0x00007f305fe4c5d4 in KTp::AbstractGroupingProxyModel::onDataChanged (this=0x25f1a80, sourceTopLeft=..., sourceBottomRight=...) at /var/tmp/portage/net-im/ktp-common-internals-0.6.80/work/ktp-common-internals-0.6.80/KTp/Models/abstract-grouping-proxy-model.cpp:320
#14 0x00007f305da9e33f in QMetaObject::activate (sender=0x25eebf0, m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fff36104f20) at kernel/qobject.cpp:3547
#15 0x00007f305daf5057 in QAbstractItemModel::dataChanged (this=<optimized out>, _t1=..., _t2=...) at .moc/debug-shared/moc_qabstractitemmodel.cpp:163
#16 0x00007f305fe6138a in KTp::TextChannelWatcherProxyModel::onChannelMessagesChanged (this=0x25eebf0) at /var/tmp/portage/net-im/ktp-common-internals-0.6.80/work/ktp-common-internals-0.6.80/KTp/Models/text-channel-watcher-proxy-model.cpp:224
#17 0x00007f305da9e33f in QMetaObject::activate (sender=0x238d4b0, m=<optimized out>, local_signal_index=<optimized out>, argv=0x0) at kernel/qobject.cpp:3547
#18 0x00007f305fe60dff in messagesChanged (this=0x238d4b0) at /var/tmp/portage/net-im/ktp-common-internals-0.6.80/work/ktp-common-internals-0.6.80_build/KTp/Models/text-channel-watcher-proxy-model.moc:108
#19 onMessageSent (message=..., this=<optimized out>) at /var/tmp/portage/net-im/ktp-common-internals-0.6.80/work/ktp-common-internals-0.6.80/KTp/Models/text-channel-watcher-proxy-model.cpp:109
#20 qt_static_metacall (_a=<optimized out>, _id=<optimized out>, _o=0x238d4b0, _c=<optimized out>) at /var/tmp/portage/net-im/ktp-common-internals-0.6.80/work/ktp-common-internals-0.6.80_build/KTp/Models/text-channel-watcher-proxy-model.moc:58
#21 ChannelWatcher::qt_static_metacall (_o=0x238d4b0, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /var/tmp/portage/net-im/ktp-common-internals-0.6.80/work/ktp-common-internals-0.6.80_build/KTp/Models/text-channel-watcher-proxy-model.moc:49
#22 0x00007f305daa382e in QObject::event (this=0x238d4b0, e=<optimized out>) at kernel/qobject.cpp:1194
#23 0x00007f305c4a5eb2 in notify_helper (e=0x238d710, receiver=0x238d4b0, this=0x1ffa3f0) at kernel/qapplication.cpp:4562
#24 QApplicationPrivate::notify_helper (this=0x1ffa3f0, receiver=0x238d4b0, e=0x238d710) at kernel/qapplication.cpp:4534
#25 0x00007f305c4abefb in QApplication::notify (this=0x7fff36105ac0, receiver=0x238d4b0, e=0x238d710) at kernel/qapplication.cpp:4423
#26 0x00007f305f530166 in KApplication::notify (this=0x7fff36105ac0, receiver=0x238d4b0, event=0x238d710) at /var/tmp/portage/kde-base/kdelibs-4.11.2/work/kdelibs-4.11.2/kdeui/kernel/kapplication.cpp:311
#27 0x00007f305da8553c in QCoreApplication::notifyInternal (this=0x7fff36105ac0, receiver=0x238d4b0, event=0x238d710) at kernel/qcoreapplication.cpp:949
#28 0x00007f305da89063 in sendEvent (event=0x238d710, receiver=0x238d4b0) at kernel/qcoreapplication.h:231
#29 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x1f2b710) at kernel/qcoreapplication.cpp:1573
#30 0x00007f305dabc993 in sendPostedEvents () at kernel/qcoreapplication.h:236
#31 postEventSourceDispatch (s=<optimized out>) at kernel/qeventdispatcher_glib.cpp:280
#32 0x00007f3057d57bd3 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#33 0x00007f3057d57ed8 in g_main_context_iterate.isra.23.part.24 () from /usr/lib64/libglib-2.0.so.0
#34 0x00007f3057d58005 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#35 0x00007f305dabcdff in QEventDispatcherGlib::processEvents (this=0x1f2f5d0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#36 0x00007f305c562afe in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#37 0x00007f305da82fe2 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#38 0x00007f305da83227 in QEventLoop::exec (this=0x7fff36105a50, flags=...) at kernel/qeventloop.cpp:204
#39 0x00007f305da89475 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1221
#40 0x0000000000420940 in main (argc=1, argv=0x7fff36105d98) at /var/tmp/portage/net-im/ktp-contact-list-0.6.80/work/ktp-contact-list-0.6.80/main.cpp:63

Reported using DrKonqi
Comment 1 David Edmundson 2013-10-05 23:36:59 UTC
*** Bug 325329 has been marked as a duplicate of this bug. ***
Comment 2 David Edmundson 2013-10-05 23:42:23 UTC
Thanks.
Two people mentioned this now, though I still can't reproduce it.

Can you clarify some information:
 - does it happen every time?
 - did you click on a 'metacontact' or expand the tree and select someone?
Comment 3 Darin McBride 2013-10-05 23:46:11 UTC
As I mentioned originally, it happens "every time" - though I can understand skepticism on a bug report :) I just tried it again, and it happened exactly the same again.

The top two groups of contacts always come up already open, so I click directly on a contact, it seems like any contact, and I get this crash.  Thankfully, it's after the conversation window shows up, so it's not like the application has gone completely useless on me, just kind of annoying :)
Comment 4 David Edmundson 2013-10-06 00:31:23 UTC
Thanks!

I think I've fixed it.
https://git.reviewboard.kde.org/r/113126/
Comment 5 Darin McBride 2013-10-06 03:01:02 UTC
I've patched my system with the above patch.

I think you've fixed it, too.  Crash is gone.

Doesn't mean I understand the diff, just that I applied it and it seems to work here.  (Gentoo made this easy.)

Thanks!
Comment 6 David Edmundson 2013-10-06 15:22:24 UTC
Git commit ea6e30c0e838039e595f48e3f865bdcef14b7961 by David Edmundson.
Committed on 06/10/2013 at 01:27.
Pushed by davidedmundson into branch 'master'.

Fix crash caused by TextChannelWatcherProxyModel

void KTp::TextChannelWatcherProxyModel::onChannelMessagesChanged()
void KTp::TextChannelWatcherProxyModel::onChannelInvalidated()
emit dataChanged() using indexes from the wrong model.

Because it's an QIdentityProxyModel it never causes any harm,
but it's still "wrong" so Qt asserts break in the grouping model.
REVIEW: 113126

M  +3    -3    KTp/Models/text-channel-watcher-proxy-model.cpp

http://commits.kde.org/telepathy-common-internals/ea6e30c0e838039e595f48e3f865bdcef14b7961
Comment 7 David Edmundson 2013-11-02 13:04:05 UTC
Git commit d5b5ed3967050e5715a341d5d2ce36bf275a2e45 by David Edmundson.
Committed on 06/10/2013 at 01:27.
Pushed by davidedmundson into branch 'kde-telepathy-0.7'.

Fix crash caused by TextChannelWatcherProxyModel

void KTp::TextChannelWatcherProxyModel::onChannelMessagesChanged()
void KTp::TextChannelWatcherProxyModel::onChannelInvalidated()
emit dataChanged() using indexes from the wrong model.

Because it's an QIdentityProxyModel it never causes any harm,
but it's still "wrong" so Qt asserts break in the grouping model.
REVIEW: 113126

M  +3    -3    KTp/Models/text-channel-watcher-proxy-model.cpp

http://commits.kde.org/telepathy-common-internals/d5b5ed3967050e5715a341d5d2ce36bf275a2e45
Comment 8 Jekyll Wu 2014-02-08 02:24:28 UTC
*** Bug 330901 has been marked as a duplicate of this bug. ***