Bug 276124 - contaclist crash when toggle show/hide groups
Summary: contaclist crash when toggle show/hide groups
Status: RESOLVED FIXED
Alias: None
Product: telepathy
Classification: Frameworks and Libraries
Component: contactlist (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR crash
Target Milestone: 0.4.0
Assignee: Telepathy Bugs
URL:
Keywords:
Depends on:
Blocks: tppreviewrelease
  Show dependency treegraph
 
Reported: 2011-06-20 13:38 UTC by Alin M Elena
Modified: 2012-07-06 12:47 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alin M Elena 2011-06-20 13:38:00 UTC
Application: telepathy-kde-contactlist (0.1)
KDE Platform Version: 4.6.80 (4.7 Beta1) "release 2"
Qt Version: 4.8.0
Operating System: Linux 2.6.39-2-desktop x86_64
Distribution: "openSUSE 12.1 Milestone 1 (x86_64)"

-- Information about the crash:
start the contact list... 
login to some account... 
expand some groups... 
then toggle and show/hide groups... and voila la crash...

The crash can be reproduced every time.

-- Backtrace:
Application: Telepathy KDE Contact List (telepathy-kde-contactlist), signal: Segmentation fault
[Current thread is 1 (Thread 0x7f920b3ba760 (LWP 17265))]

Thread 3 (Thread 0x7f91fc4dd700 (LWP 17266)):
#0  0x00007f9205f27c7e in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f920934e77f in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2  0x00007f9209341c8f in ?? () from /usr/lib64/libQtCore.so.4
#3  0x00007f920934e30b in ?? () from /usr/lib64/libQtCore.so.4
#4  0x00007f9205f23cb9 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f920807234d in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7f91fa4dc700 (LWP 17267)):
#0  0x00007f9205f27c7e in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f920934e77f in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2  0x00007f9209341c8f in ?? () from /usr/lib64/libQtCore.so.4
#3  0x00007f920934e30b in ?? () from /usr/lib64/libQtCore.so.4
#4  0x00007f9205f23cb9 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f920807234d in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f920b3ba760 (LWP 17265)):
[KCrash Handler]
#6  TreeNode::parent (this=0x51) at /usr/src/debug/telepathy-contact-list-0.1git.1308435011/tree-node.cpp:92
#7  0x0000000000424fd6 in AccountsModel::parent (this=0x940590, index=<optimized out>) at /usr/src/debug/telepathy-contact-list-0.1git.1308435011/accounts-model.cpp:287
#8  0x00007f9208d880b3 in ?? () from /usr/lib64/libQtGui.so.4
#9  0x00007f9208d88859 in ?? () from /usr/lib64/libQtGui.so.4
#10 0x00007f9208d895f6 in QSortFilterProxyModel::setSourceModel(QAbstractItemModel*) () from /usr/lib64/libQtGui.so.4
#11 0x00007f920945e371 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4
#12 0x00007f92087fba12 in QAction::triggered(bool) () from /usr/lib64/libQtGui.so.4
#13 0x00007f92087fbbff in QAction::activate(QAction::ActionEvent) () from /usr/lib64/libQtGui.so.4
#14 0x00007f9208baa7ba in ?? () from /usr/lib64/libQtGui.so.4
#15 0x00007f9208baaa6c in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib64/libQtGui.so.4
#16 0x00007f9208c678ba in QToolButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib64/libQtGui.so.4
#17 0x00007f9208852494 in QWidget::event(QEvent*) () from /usr/lib64/libQtGui.so.4
#18 0x00007f9208801e54 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#19 0x00007f92088075b3 in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#20 0x00007f920a836996 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
#21 0x00007f920944a85c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/libQtCore.so.4
#22 0x00007f9208802e22 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib64/libQtGui.so.4
#23 0x00007f920887e4c5 in ?? () from /usr/lib64/libQtGui.so.4
#24 0x00007f920887d38a in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib64/libQtGui.so.4
#25 0x00007f92088a4dd2 in ?? () from /usr/lib64/libQtGui.so.4
#26 0x00007f9203b022ad in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#27 0x00007f9203b02a88 in ?? () from /lib64/libglib-2.0.so.0
#28 0x00007f9203b02d19 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#29 0x00007f92094790ff in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#30 0x00007f92088a4a5e in ?? () from /usr/lib64/libQtGui.so.4
#31 0x00007f9209449642 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#32 0x00007f9209449897 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#33 0x00007f920944deb7 in QCoreApplication::exec() () from /usr/lib64/libQtCore.so.4
#34 0x000000000041804e in main (argc=1, argv=0x7fffc65338d8) at /usr/src/debug/telepathy-contact-list-0.1git.1308435011/main.cpp:60

Reported using DrKonqi
Comment 1 David Edmundson 2011-06-20 15:57:50 UTC
Crap!

I removed some code recently which was marked as "working round a crash" when doing exactly what you just did. 

However adding that code back in is cheating. So let's get to the bottom of this.

Alin: Does it crash every time?

Task for someone:
 Identify every instance of TreeNode::parent() where the pointer is not checked before usage. Add a Q_ASSERT. Then we'll know exactly who is causing this.
Comment 2 David Edmundson 2011-06-20 16:04:41 UTC
Alin:

Oops, you said it happens every time. Ignore that question.

Also try and build/run debug versions if possible.
Comment 3 David Edmundson 2011-06-22 14:51:59 UTC
This is now fixed.
Please re-open if you still see this.