Bug 293067

Summary: Plasma crashes on opening a chat from contact list
Product: [Unmaintained] telepathy Reporter: Martin Klapetek <mklapetek>
Component: text-uiAssignee: Telepathy Bugs <kde-telepathy-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: kde, kde
Priority: NOR    
Version: git-latest   
Target Milestone: 0.4.0   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Move registrar from ConversationClientObserver to TelepathyTextObserver

Description Martin Klapetek 2012-02-01 17:56:53 UTC
Application: plasma-desktop (0.4)
KDE Platform Version: 4.8.00 (4.8.0) (Compiled from sources)
Qt Version: 4.8.0
Operating System: Linux 3.0.0-14-generic x86_64
Distribution: Ubuntu 11.10

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

The weird thing is, that I removed the chat plasmoid from my panel few hours ago. Now when I started chat with someone who was in the plasmoid, plasma went down.

-- Backtrace:
Application: Plasma Desktop Shell (plasma-desktop), signal: Segmentation fault
[Current thread is 1 (Thread 0x7fbd5a8917c0 (LWP 28064))]

Thread 6 (Thread 0x7fbd347b3700 (LWP 28065)):
#0  0x00007fbd5a15c773 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fbd4c8e9f68 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fbd4c8ea429 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fbd56929d2a in QEventDispatcherGlib::processEvents (this=0x13c8ae0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#4  0x00007fbd568eb3e4 in QEventLoop::processEvents (this=0x7fbd347b2c60, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007fbd568eb56e in QEventLoop::exec (this=0x7fbd347b2c60, flags=...) at kernel/qeventloop.cpp:204
#6  0x00007fbd567b82a7 in QThread::exec (this=0x13c8750) at thread/qthread.cpp:501
#7  0x00007fbd568c6837 in QInotifyFileSystemWatcherEngine::run (this=0x13c8750) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007fbd567babd4 in QThreadPrivate::start (arg=0x13c8750) at thread/qthread_unix.cpp:298
#9  0x00007fbd4a67756c in ?? () from /usr/lib/nvidia-current-updates/libGL.so.1
#10 0x00007fbd56519efc in start_thread (arg=0x7fbd347b3700) at pthread_create.c:304
#11 0x00007fbd5a16889d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7fbd2bfff700 (LWP 30092)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fbd567bc1cb in QWaitConditionPrivate::wait (this=0x1450d60, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:86
#2  0x00007fbd567bbf75 in QWaitCondition::wait (this=0x14b51d8, mutex=0x14104d0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007fbd51ff29fe in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x14b51b0, th=0x2f5f490) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007fbd51ff6d65 in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x1419f00, th=0x2f5f490) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WorkingHardState.cpp:80
#5  0x00007fbd51ff297c in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x14b51b0, th=0x2f5f490) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WeaverImpl.cpp:356
#6  0x00007fbd51ff6d07 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1419f00, th=0x2f5f490) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WorkingHardState.cpp:71
#7  0x00007fbd51ff2943 in ThreadWeaver::WeaverImpl::applyForWork (this=0x14b51b0, th=0x2f5f490, previous=0x3d07f90) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WeaverImpl.cpp:351
#8  0x00007fbd51ff46df in ThreadWeaver::ThreadRunHelper::run (this=0x7fbd2bffecc0, parent=0x14b51b0, th=0x2f5f490) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/Thread.cpp:87
#9  0x00007fbd51ff498e in ThreadWeaver::Thread::run (this=0x2f5f490) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/Thread.cpp:142
#10 0x00007fbd567babd4 in QThreadPrivate::start (arg=0x2f5f490) at thread/qthread_unix.cpp:298
#11 0x00007fbd4a67756c in ?? () from /usr/lib/nvidia-current-updates/libGL.so.1
#12 0x00007fbd56519efc in start_thread (arg=0x7fbd2bfff700) at pthread_create.c:304
#13 0x00007fbd5a16889d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#14 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fbd2af24700 (LWP 30093)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fbd567bc1cb in QWaitConditionPrivate::wait (this=0x1450d60, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:86
#2  0x00007fbd567bbf75 in QWaitCondition::wait (this=0x14b51d8, mutex=0x14104d0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007fbd51ff29fe in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x14b51b0, th=0x3ee9390) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007fbd51ff6d65 in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x1419f00, th=0x3ee9390) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WorkingHardState.cpp:80
#5  0x00007fbd51ff297c in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x14b51b0, th=0x3ee9390) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WeaverImpl.cpp:356
#6  0x00007fbd51ff6d07 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1419f00, th=0x3ee9390) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WorkingHardState.cpp:71
#7  0x00007fbd51ff2943 in ThreadWeaver::WeaverImpl::applyForWork (this=0x14b51b0, th=0x3ee9390, previous=0x37be550) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WeaverImpl.cpp:351
#8  0x00007fbd51ff46df in ThreadWeaver::ThreadRunHelper::run (this=0x7fbd2af23cc0, parent=0x14b51b0, th=0x3ee9390) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/Thread.cpp:87
#9  0x00007fbd51ff498e in ThreadWeaver::Thread::run (this=0x3ee9390) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/Thread.cpp:142
#10 0x00007fbd567babd4 in QThreadPrivate::start (arg=0x3ee9390) at thread/qthread_unix.cpp:298
#11 0x00007fbd4a67756c in ?? () from /usr/lib/nvidia-current-updates/libGL.so.1
#12 0x00007fbd56519efc in start_thread (arg=0x7fbd2af24700) at pthread_create.c:304
#13 0x00007fbd5a16889d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#14 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fbd27f06700 (LWP 30094)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fbd567bc1cb in QWaitConditionPrivate::wait (this=0x1450d60, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:86
#2  0x00007fbd567bbf75 in QWaitCondition::wait (this=0x14b51d8, mutex=0x14104d0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007fbd51ff29fe in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x14b51b0, th=0x7fbd2c003c00) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007fbd51ff6d65 in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x1419f00, th=0x7fbd2c003c00) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WorkingHardState.cpp:80
#5  0x00007fbd51ff297c in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x14b51b0, th=0x7fbd2c003c00) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WeaverImpl.cpp:356
#6  0x00007fbd51ff6d07 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1419f00, th=0x7fbd2c003c00) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WorkingHardState.cpp:71
#7  0x00007fbd51ff2943 in ThreadWeaver::WeaverImpl::applyForWork (this=0x14b51b0, th=0x7fbd2c003c00, previous=0x0) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WeaverImpl.cpp:351
#8  0x00007fbd51ff6d32 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1419f00, th=0x7fbd2c003c00) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WorkingHardState.cpp:74
#9  0x00007fbd51ff2943 in ThreadWeaver::WeaverImpl::applyForWork (this=0x14b51b0, th=0x7fbd2c003c00, previous=0x3ee9310) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WeaverImpl.cpp:351
#10 0x00007fbd51ff46df in ThreadWeaver::ThreadRunHelper::run (this=0x7fbd27f05cc0, parent=0x14b51b0, th=0x7fbd2c003c00) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/Thread.cpp:87
#11 0x00007fbd51ff498e in ThreadWeaver::Thread::run (this=0x7fbd2c003c00) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/Thread.cpp:142
#12 0x00007fbd567babd4 in QThreadPrivate::start (arg=0x7fbd2c003c00) at thread/qthread_unix.cpp:298
#13 0x00007fbd4a67756c in ?? () from /usr/lib/nvidia-current-updates/libGL.so.1
#14 0x00007fbd56519efc in start_thread (arg=0x7fbd27f06700) at pthread_create.c:304
#15 0x00007fbd5a16889d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#16 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fbd27705700 (LWP 30095)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fbd567bc1cb in QWaitConditionPrivate::wait (this=0x1450d60, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:86
#2  0x00007fbd567bbf75 in QWaitCondition::wait (this=0x14b51d8, mutex=0x14104d0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007fbd51ff29fe in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x14b51b0, th=0x2438710) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007fbd51ff6d65 in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x1419f00, th=0x2438710) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WorkingHardState.cpp:80
#5  0x00007fbd51ff297c in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x14b51b0, th=0x2438710) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WeaverImpl.cpp:356
#6  0x00007fbd51ff6d07 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1419f00, th=0x2438710) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WorkingHardState.cpp:71
#7  0x00007fbd51ff2943 in ThreadWeaver::WeaverImpl::applyForWork (this=0x14b51b0, th=0x2438710, previous=0x0) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WeaverImpl.cpp:351
#8  0x00007fbd51ff6d32 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1419f00, th=0x2438710) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WorkingHardState.cpp:74
#9  0x00007fbd51ff2943 in ThreadWeaver::WeaverImpl::applyForWork (this=0x14b51b0, th=0x2438710, previous=0x206c480) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/WeaverImpl.cpp:351
#10 0x00007fbd51ff46df in ThreadWeaver::ThreadRunHelper::run (this=0x7fbd27704cc0, parent=0x14b51b0, th=0x2438710) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/Thread.cpp:87
#11 0x00007fbd51ff498e in ThreadWeaver::Thread::run (this=0x2438710) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/threadweaver/Weaver/Thread.cpp:142
#12 0x00007fbd567babd4 in QThreadPrivate::start (arg=0x2438710) at thread/qthread_unix.cpp:298
#13 0x00007fbd4a67756c in ?? () from /usr/lib/nvidia-current-updates/libGL.so.1
#14 0x00007fbd56519efc in start_thread (arg=0x7fbd27705700) at pthread_create.c:304
#15 0x00007fbd5a16889d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#16 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fbd5a8917c0 (LWP 28064)):
[KCrash Handler]
#6  0x00007fbd5690bb61 in QMetaObject::activate (sender=0x23e5a30, m=0x7fbd291be080, local_signal_index=0, argv=0x7fffeb53c230) at kernel/qobject.cpp:3480
#7  0x00007fbd28faa3b3 in TelepathyTextObserver::newConversation (this=0x23e5a30, _t1=0x26f46d0) at /home/mck182/Work/Telepathy/ktp-text-ui/build/plasmoid/declarative-plugin/moc_telepathy-text-observer.cpp:99
#8  0x00007fbd28fb108e in TelepathyTextObserver::ConversationClientObserver::observeChannels (this=0x3523950, context=..., account=..., connection=..., channels=..., dispatchOperation=..., requestsSatisfied=..., observerInfo=...) at /home/mck182/Work/Telepathy/ktp-text-ui/plasmoid/declarative-plugin/telepathy-text-observer.cpp:64
#9  0x00007fbd3155353f in Tp::ClientObserverAdaptor::onReadyOpFinished (this=0x35234a0, op=<optimized out>) at /home/mck182/Work/Telepathy/telepathy-qt4/TelepathyQt/client-registrar.cpp:253
#10 0x00007fbd31556e19 in Tp::ClientObserverAdaptor::qt_metacall (this=0x35234a0, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7fffeb53c5e0) at /home/mck182/Work/Telepathy/telepathy-qt4/build/TelepathyQt/_gen/client-registrar-internal.moc.hpp:186
#11 0x00007fbd568f5fd8 in QMetaObject::metacall (object=0x35234a0, cl=QMetaObject::InvokeMetaMethod, idx=5, argv=0x7fffeb53c5e0) at kernel/qmetaobject.cpp:245
#12 0x00007fbd5690bfc9 in QMetaObject::activate (sender=0x2918ad0, m=0x7fbd319b3c20, local_signal_index=0, argv=0x7fffeb53c5e0) at kernel/qobject.cpp:3566
#13 0x00007fbd3160deef in Tp::PendingOperation::finished (this=<optimized out>, _t1=0x2918ad0) at /home/mck182/Work/Telepathy/telepathy-qt4/build/TelepathyQt/_gen/pending-operation.moc.hpp:98
#14 0x00007fbd3160df31 in Tp::PendingOperation::emitFinished (this=0x2918ad0) at /home/mck182/Work/Telepathy/telepathy-qt4/TelepathyQt/pending-operation.cpp:123
#15 0x00007fbd3160ebac in Tp::PendingOperation::qt_metacall (this=0x2918ad0, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0x3953870) at /home/mck182/Work/Telepathy/telepathy-qt4/build/TelepathyQt/_gen/pending-operation.moc.hpp:86
#16 0x00007fbd3160ebf0 in Tp::PendingComposite::qt_metacall (this=0x2918ad0, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0x3953870) at /home/mck182/Work/Telepathy/telepathy-qt4/build/TelepathyQt/_gen/simple-pending-operations.moc.hpp:225
#17 0x00007fbd568f5fd8 in QMetaObject::metacall (object=0x2918ad0, cl=QMetaObject::InvokeMetaMethod, idx=8, argv=0x3953870) at kernel/qmetaobject.cpp:245
#18 0x00007fbd5690595a in QMetaCallEvent::placeMetaCall (this=0x3546a10, object=0x2918ad0) at kernel/qobject.cpp:527
#19 0x00007fbd56906b5f in QObject::event (this=0x2918ad0, e=0x3546a10) at kernel/qobject.cpp:1195
#20 0x00007fbd55764a9a in QApplicationPrivate::notify_helper (this=0xa7d200, receiver=0x2918ad0, e=0x3546a10) at kernel/qapplication.cpp:4554
#21 0x00007fbd557620b8 in QApplication::notify (this=0xa76460, receiver=0x2918ad0, e=0x3546a10) at kernel/qapplication.cpp:3936
#22 0x00007fbd576e290f in KApplication::notify (this=0xa76460, receiver=0x2918ad0, event=0x3546a10) at /build/buildd/project-neon-kdelibs-2+git20120130+r92428/kdeui/kernel/kapplication.cpp:311
#23 0x00007fbd568edb1a in QCoreApplication::notifyInternal (this=0xa76460, receiver=0x2918ad0, event=0x3546a10) at kernel/qcoreapplication.cpp:876
#24 0x00007fbd568f168d in QCoreApplication::sendEvent (receiver=0x2918ad0, event=0x3546a10) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#25 0x00007fbd568eeb2e in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x9941f0) at kernel/qcoreapplication.cpp:1500
#26 0x00007fbd568ee74f in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1393
#27 0x00007fbd5692a457 in QCoreApplication::sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#28 0x00007fbd56929430 in postEventSourceDispatch (s=0xa80b70) at kernel/qeventdispatcher_glib.cpp:279
#29 0x00007fbd4c8e9a5d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007fbd4c8ea258 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007fbd4c8ea429 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007fbd56929d07 in QEventDispatcherGlib::processEvents (this=0x995ad0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#33 0x00007fbd5583d128 in QGuiEventDispatcherGlib::processEvents (this=0x995ad0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#34 0x00007fbd568eb3e4 in QEventLoop::processEvents (this=0x7fffeb53d2e0, flags=...) at kernel/qeventloop.cpp:149
#35 0x00007fbd568eb56e in QEventLoop::exec (this=0x7fffeb53d2e0, flags=...) at kernel/qeventloop.cpp:204
#36 0x00007fbd568ee19a in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148
#37 0x00007fbd55761ca2 in QApplication::exec () at kernel/qapplication.cpp:3815
#38 0x00007fbd5a46c49f in kdemain (argc=1, argv=0x7fffeb53d738) at /build/buildd/project-neon-kde-workspace-2+git20120125+r45921/plasma/desktop/shell/main.cpp:120
#39 0x0000000000400796 in main (argc=1, argv=0x7fffeb53d738) at /build/buildd/project-neon-kde-workspace-2+git20120125+r45921/obj-x86_64-linux-gnu/plasma/desktop/shell/plasma-desktop_dummy.cpp:3

Reported using DrKonqi
Comment 1 David Edmundson 2012-02-01 18:36:00 UTC
The weird thing is, that I removed the chat plasmoid from my panel few hours
ago. Now when I started chat with someone who was in the plasmoid, plasma went
down.

I think that's actually key to this.

If this plasmoid is started, you'll create all the telepathy objects
I think ConversationClientObserver is "leaked", as the observer hold a reference to the clientRegistrar which holds a refernece ot the observer.

So when you close the plasmoid these both stick around. When you delete the plasmoid TelepathyTextObserver is null, and the ConversationClientObserver::m_parent is now a dead pointer.

Fixes needed:
 1) fix the circular dependency in the ConversationClientObserver (move registrar to TelepathyTextObserver)
 2) use a QWeakPointer on m_parent (and check before using)
 3) rename one of these classes so it's not really really confusing.
Comment 2 Lasath Fernando 2012-02-02 06:18:23 UTC
Damn, I didn't notice this bug was for the plasmoid till now. 

I did recall it had an issue where if you add the plasmoid to the desktop, then delete and re-add, it complains that KDE.TextUi.ConversationWatcher is already registered. So I suspected that they might not be getting deleted properly, but I didn't peruse at the time because that class was going to get completely overhauled soon anyway. 

Plus I tested this mostly in plasmoidviewer so it didn't really come up much.
Comment 3 Lasath Fernando 2012-02-05 00:12:08 UTC
Created attachment 68509 [details]
Move registrar from ConversationClientObserver to TelepathyTextObserver

Right, I did as David suggested. Martin, can you please check if this patch fixes it?
Comment 4 Lasath Fernando 2012-02-06 12:34:03 UTC
Right, that seemed to do it. I'm closing this bug.