Bug 315335 - Contacts not being removed on disconnection, causes duplicate contacts in contact-list
Summary: Contacts not being removed on disconnection, causes duplicate contacts in con...
Status: RESOLVED FIXED
Alias: None
Product: telepathy
Classification: Frameworks and Libraries
Component: common-internals (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: 0.6-beta
Assignee: Telepathy Bugs
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2013-02-17 17:56 UTC by Alex Fiestas
Modified: 2013-03-04 16:03 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 0.6.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alex Fiestas 2013-02-17 17:56:59 UTC
Application: ktp-contactlist (0.5.3)
KDE Platform Version: 4.10.00 (Compiled from sources)
Qt Version: 4.8.5
Operating System: Linux 3.7.0-7-generic x86_64
Distribution: Ubuntu 12.10

-- Information about the crash:
I was watching the tooltip from a contact that has 3 accounts with the same nickname and I was using the tooltip to check which account was the GMail one.

The crash can be reproduced some of the time.

-- 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 0x7f6d1d671840 (LWP 2390))]

Thread 3 (Thread 0x7f6d159e8700 (LWP 2391)):
#0  0x00007f6d28618303 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f6d25217d84 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f6d25217ea4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f6d160114ad in ?? () from /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so
#4  0x00007f6d2523b645 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f6d26415e9a in start_thread (arg=0x7f6d159e8700) at pthread_create.c:308
#6  0x00007f6d28623cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f6d151e7700 (LWP 2392)):
#0  0x00007f6d28618303 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f6d25217d84 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f6d252181e2 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f6d24cf84a6 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007f6d2523b645 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f6d26415e9a in start_thread (arg=0x7f6d151e7700) at pthread_create.c:308
#6  0x00007f6d28623cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f6d1d671840 (LWP 2390)):
[KCrash Handler]
#6  0x00007f6d2c2915c8 in Tp::Account::displayName() const () from /usr/lib/x86_64-linux-gnu/libtelepathy-qt4.so.2
#7  0x000000000044a65c in ContactToolTip::ContactToolTip (this=0x2ba6820, index=...) at /home/afiestas/kdesrc/source/extragear/network/telepathy/ktp-contact-list/tooltips/contacttooltip.cpp:76
#8  0x00000000004496e9 in ToolTipManager::createTipContent (this=this@entry=0x2924d30, index=...) at /home/afiestas/kdesrc/source/extragear/network/telepathy/ktp-contact-list/tooltips/tooltipmanager.cpp:190
#9  0x00000000004497e3 in ToolTipManager::showToolTip (this=0x2924d30, menuItem=...) at /home/afiestas/kdesrc/source/extragear/network/telepathy/ktp-contact-list/tooltips/tooltipmanager.cpp:149
#10 0x00007f6d2a091db2 in QMetaObject::activate (sender=0x292bde0, m=0x7f6d2a4349c0 <QTimer::staticMetaObject>, local_signal_index=0, argv=0x0) at /home/afiestas/kdesrc/source/qt/src/corelib/kernel/qobject.cpp:3543
#11 0x00007f6d2a0f39bf in QTimer::timeout (this=0x292bde0) at .moc/debug-shared/moc_qtimer.cpp:147
#12 0x00007f6d2a09b2fb in QTimer::timerEvent (this=0x292bde0, e=0x7ffff1b283a0) at /home/afiestas/kdesrc/source/qt/src/corelib/kernel/qtimer.cpp:280
#13 0x00007f6d2a08c59c in QObject::event (this=0x292bde0, e=0x7ffff1b283a0) at /home/afiestas/kdesrc/source/qt/src/corelib/kernel/qobject.cpp:1156
#14 0x00007f6d2905104e in QApplicationPrivate::notify_helper (this=0x261f7a0, receiver=0x292bde0, e=0x7ffff1b283a0) at /home/afiestas/kdesrc/source/qt/src/gui/kernel/qapplication.cpp:4562
#15 0x00007f6d2904e3c1 in QApplication::notify (this=0x7ffff1b28840, receiver=0x292bde0, e=0x7ffff1b283a0) at /home/afiestas/kdesrc/source/qt/src/gui/kernel/qapplication.cpp:3944
#16 0x00007f6d2b70f396 in KApplication::notify (this=0x7ffff1b28840, receiver=0x292bde0, event=0x7ffff1b283a0) at /home/afiestas/kdesrc/source/kde/kdelibs/kdeui/kernel/kapplication.cpp:311
#17 0x00007f6d2a072fb8 in QCoreApplication::notifyInternal (this=0x7ffff1b28840, receiver=0x292bde0, event=0x7ffff1b283a0) at /home/afiestas/kdesrc/source/qt/src/corelib/kernel/qcoreapplication.cpp:949
#18 0x00007f6d2a076c31 in QCoreApplication::sendEvent (receiver=0x292bde0, event=0x7ffff1b283a0) at ../../include/QtCore/../../../../qt/src/corelib/kernel/qcoreapplication.h:231
#19 0x00007f6d2a0b3234 in QTimerInfoList::activateTimers (this=0x2616b80) at /home/afiestas/kdesrc/source/qt/src/corelib/kernel/qeventdispatcher_unix.cpp:622
#20 0x00007f6d2a0af365 in timerSourceDispatch (source=0x2616b20) at /home/afiestas/kdesrc/source/qt/src/corelib/kernel/qeventdispatcher_glib.cpp:186
#21 0x00007f6d2a0af44c in idleTimerSourceDispatch (source=0x2620d20) at /home/afiestas/kdesrc/source/qt/src/corelib/kernel/qeventdispatcher_glib.cpp:233
#22 0x00007f6d25217ab5 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#23 0x00007f6d25217de8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007f6d25217ea4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#25 0x00007f6d2a0afe03 in QEventDispatcherGlib::processEvents (this=0x2557050, flags=...) at /home/afiestas/kdesrc/source/qt/src/corelib/kernel/qeventdispatcher_glib.cpp:424
#26 0x00007f6d2912da12 in QGuiEventDispatcherGlib::processEvents (this=0x2557050, flags=...) at /home/afiestas/kdesrc/source/qt/src/gui/kernel/qguieventdispatcher_glib.cpp:204
#27 0x00007f6d2a070310 in QEventLoop::processEvents (this=0x7ffff1b286c0, flags=...) at /home/afiestas/kdesrc/source/qt/src/corelib/kernel/qeventloop.cpp:149
#28 0x00007f6d2a0704a4 in QEventLoop::exec (this=0x7ffff1b286c0, flags=...) at /home/afiestas/kdesrc/source/qt/src/corelib/kernel/qeventloop.cpp:204
#29 0x00007f6d2a07364e in QCoreApplication::exec () at /home/afiestas/kdesrc/source/qt/src/corelib/kernel/qcoreapplication.cpp:1221
#30 0x00007f6d2904dfa8 in QApplication::exec () at /home/afiestas/kdesrc/source/qt/src/gui/kernel/qapplication.cpp:3823
#31 0x000000000041bbd3 in main (argc=1, argv=0x7ffff1b28988) at /home/afiestas/kdesrc/source/extragear/network/telepathy/ktp-contact-list/main.cpp:62

Reported using DrKonqi
Comment 1 David Edmundson 2013-02-17 18:01:14 UTC
I've seen this too.
Contacts aren't being removed from the model when they are disconnected. 

I want this fixed and NOT a check in the tooltip.
Comment 2 David Edmundson 2013-02-21 11:47:57 UTC
A recent commit has /possibly/ fixed this. 

Please update this report if you still get this after running git master from today.
Comment 3 Alex Fiestas 2013-02-24 22:25:10 UTC
Now I get duplicated contacts but no crash.
Comment 4 David Edmundson 2013-02-25 00:47:22 UTC
We decided that a rule always check for null account and contact pointers makes sense, due to a requirements from kpeople. This is what fixed the crash. Most code did this already.

Afiestas can you confirm you were running latest ktp-common-internals which includes commit:
52db3874151789caa7869ebbfed593282a80a59d

Worst case before the beta release I'll add a check to not insert duplicates into the list model, but I am not happy with that as a solution as it fixes the symptom not the cause.
Comment 5 David Edmundson 2013-03-04 16:03:28 UTC
I have not seen this since 52db3874151789caa7869ebbfed593282a80a59d

Please reopen very quickly if you see this.