Bug 305490 - plasma-desktop crashes when adding the presence-applet to the desktop
Summary: plasma-desktop crashes when adding the presence-applet to the desktop
Status: RESOLVED FIXED
Alias: None
Product: telepathy
Classification: Frameworks and Libraries
Component: presence-applet (show other bugs)
Version: 0.4.1
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: 0.5.0
Assignee: Telepathy Bugs
URL:
Keywords:
: 305293 (view as bug list)
Depends on:
Blocks:
 
Reported: 2012-08-20 13:10 UTC by Leonardo
Modified: 2012-08-20 23:27 UTC (History)
3 users (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 Leonardo 2012-08-20 13:10:39 UTC
Application: plasma-desktop (0.4)
KDE Platform Version: 4.9.00 (Compiled from sources)
Qt Version: 4.8.2
Operating System: Linux 3.2.12-gentoo x86_64
Distribution (Platform): Gentoo Packages

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

Adding the presence applet to the desktop dragging it from the applet list. It did not crashed prior to kde 4.9.

The crash can be reproduced every time.

-- Backtrace:
Application: Shell da área de trabalho do Plasma (kdeinit4), signal: Aborted
[Current thread is 1 (Thread 0x7f6fe1c5a780 (LWP 2486))]

Thread 3 (Thread 0x7f6fbe695700 (LWP 2491)):
#0  0x00007f6fe04ce5ec in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f6fd527e194 in ?? () from /usr/lib64/qt4/libQtScript.so.4
#2  0x00007f6fd527e1c9 in ?? () from /usr/lib64/qt4/libQtScript.so.4
#3  0x00007f6fd1a4d734 in ?? () from /usr/lib64/libGL.so.1
#4  0x00007f6fe04c9da6 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f6fdf239ffd in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7f6fb6710700 (LWP 2492)):
#0  0x00007f6fdbf03fe0 in pthread_mutex_unlock@plt () from /usr/lib64/libglib-2.0.so.0
#1  0x00007f6fdbf70381 in g_mutex_unlock (mutex=<optimized out>) at gthread-posix.c:227
#2  0x00007f6fdbf3272a in g_main_context_poll (n_fds=1, fds=0x7f6fb00029e0, timeout=-1, context=0x7f6fb00009d0, priority=<optimized out>) at gmain.c:3439
#3  g_main_context_iterate (context=0x7f6fb00009d0, block=1, dispatch=1, self=<optimized out>) at gmain.c:3141
#4  0x00007f6fdbf32854 in g_main_context_iteration (context=0x7f6fb00009d0, may_block=1) at gmain.c:3207
#5  0x00007f6fe088fa26 in QEventDispatcherGlib::processEvents (this=0x7f6fb00008f0, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:426
#6  0x00007f6fe085f3f2 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#7  0x00007f6fe085f6ad in QEventLoop::exec (this=0x7f6fb670fd00, flags=...) at kernel/qeventloop.cpp:204
#8  0x00007f6fe075c118 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#9  0x00007f6fe083dfb8 in QInotifyFileSystemWatcherEngine::run (this=0x21569b0) at io/qfilesystemwatcher_inotify.cpp:248
#10 0x00007f6fe075e79b in QThreadPrivate::start (arg=0x21569b0) at thread/qthread_unix.cpp:307
#11 0x00007f6fd1a4d734 in ?? () from /usr/lib64/libGL.so.1
#12 0x00007f6fe04c9da6 in start_thread () from /lib64/libpthread.so.0
#13 0x00007f6fdf239ffd in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f6fe1c5a780 (LWP 2486)):
[KCrash Handler]
#6  0x00007f6fdf184ab5 in raise () from /lib64/libc.so.6
#7  0x00007f6fdf185f36 in abort () from /lib64/libc.so.6
#8  0x00007f6fe07549c4 in qt_message_output (msgType=<optimized out>, buf=<optimized out>) at global/qglobal.cpp:2260
#9  0x00007f6fbcc59ece in KTp::GlobalPresence::setAccountManager(Tp::SharedPtr<Tp::AccountManager> const&) () from /usr/lib64/libktpcommoninternalsprivate.so.1
#10 0x00007f6fadcf383a in TelepathyPresenceApplet::onAccountManagerReady (this=0x59db460, op=<optimized out>) at /var/tmp/portage/net-im/ktp-presence-applet-0.4.1/work/ktp-presence-applet-0.4.1/src/presenceapplet.cpp:177
#11 0x00007f6fadcf5db4 in TelepathyPresenceApplet::qt_static_metacall (_o=0x59db460, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /var/tmp/portage/net-im/ktp-presence-applet-0.4.1/work/ktp-presence-applet-0.4.1_build/presenceapplet.moc:64
#12 0x00007f6fe0875fea in QMetaObject::activate (sender=0x4baa200, m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fffca2d5350) at kernel/qobject.cpp:3547
#13 0x00007f6fbd33845f in Tp::PendingOperation::finished (this=<optimized out>, _t1=0x4baa200) at /var/tmp/portage/net-libs/telepathy-qt-0.9.2/work/telepathy-qt-0.9.2_build/TelepathyQt/_gen/pending-operation.moc.hpp:112
#14 0x00007f6fbd338541 in Tp::PendingOperation::emitFinished (this=0x4baa200) at /var/tmp/portage/net-libs/telepathy-qt-0.9.2/work/telepathy-qt-0.9.2/TelepathyQt/pending-operation.cpp:123
#15 0x00007f6fe0875426 in QObject::event (this=0x4baa200, e=<optimized out>) at kernel/qobject.cpp:1195
#16 0x00007f6fdf9da474 in QApplicationPrivate::notify_helper (this=0x1724c20, receiver=0x4baa200, e=0x5584d10) at kernel/qapplication.cpp:4551
#17 0x00007f6fdf9def9f in QApplication::notify (this=<optimized out>, receiver=0x4baa200, e=0x5584d10) at kernel/qapplication.cpp:4412
#18 0x00007f6fe16468b6 in KApplication::notify (this=0x16a44a0, receiver=0x4baa200, event=0x5584d10) at /var/tmp/portage/kde-base/kdelibs-4.9.0/work/kdelibs-4.9.0/kdeui/kernel/kapplication.cpp:311
#19 0x00007f6fe086069c in QCoreApplication::notifyInternal (this=0x16a44a0, receiver=0x4baa200, event=0x5584d10) at kernel/qcoreapplication.cpp:915
#20 0x00007f6fe0863c98 in sendEvent (event=0x5584d10, receiver=0x4baa200) at kernel/qcoreapplication.h:231
#21 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x158f2b0) at kernel/qcoreapplication.cpp:1539
#22 0x00007f6fe088f833 in sendPostedEvents () at kernel/qcoreapplication.h:236
#23 postEventSourceDispatch (s=0x16a3b20) at kernel/qeventdispatcher_glib.cpp:279
#24 0x00007f6fdbf32453 in g_main_dispatch (context=0x1724920) at gmain.c:2539
#25 g_main_context_dispatch (context=0x1724920) at gmain.c:3075
#26 0x00007f6fdbf32798 in g_main_context_iterate (context=0x1724920, block=1, dispatch=1, self=<optimized out>) at gmain.c:3146
#27 0x00007f6fdbf32854 in g_main_context_iteration (context=0x1724920, may_block=1) at gmain.c:3207
#28 0x00007f6fe088f9cf in QEventDispatcherGlib::processEvents (this=0x16745b0, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:424
#29 0x00007f6fdfa7f94e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=<optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#30 0x00007f6fe085f3f2 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#31 0x00007f6fe085f6ad in QEventLoop::exec (this=0x7fffca2d5d30, flags=...) at kernel/qeventloop.cpp:204
#32 0x00007f6fe086413b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187
#33 0x00007f6fceb6a95d in kdemain (argc=1, argv=0x1692950) at /var/tmp/portage/kde-base/plasma-workspace-4.9.0/work/plasma-workspace-4.9.0/plasma/desktop/shell/main.cpp:120
#34 0x0000000000407549 in launch (argc=1, _name=0x15bdee8 "/usr/bin/plasma-desktop", args=<optimized out>, cwd=0x0, envc=<optimized out>, envs=<optimized out>, reset_env=false, tty=0x0, avoid_loops=false, startup_id_str=0x40b685 "0") at /var/tmp/portage/kde-base/kdelibs-4.9.0/work/kdelibs-4.9.0/kinit/kinit.cpp:734
#35 0x00000000004081b0 in handle_launcher_request (sock=<optimized out>, who=<optimized out>) at /var/tmp/portage/kde-base/kdelibs-4.9.0/work/kdelibs-4.9.0/kinit/kinit.cpp:1226
#36 0x00000000004088ab in handle_requests (waitForPid=<optimized out>) at /var/tmp/portage/kde-base/kdelibs-4.9.0/work/kdelibs-4.9.0/kinit/kinit.cpp:1419
#37 0x0000000000409502 in main (argc=2, argv=0x7fffca2d6fe8, envp=0x7fffca2d7000) at /var/tmp/portage/kde-base/kdelibs-4.9.0/work/kdelibs-4.9.0/kinit/kinit.cpp:1907

Reported using DrKonqi
Comment 1 David Edmundson 2012-08-20 14:21:29 UTC
I can reproduce by uninstalling mission-control.

The bug is as follows.

PresenceApplet::onAccountManagerReady()

account manager isn't ready because MC doesnt' exist.
This prints out a tiny debug message.
it then calls
GlobalPresence::setAccountManager()

which then decides to kFatal()

Not sure where it's best to fix this. GlobalPresence will always show offline if AM isn't availbale, so maybe I should tone down the kFatal to kWarning. It should stop the crash.

Then in the applet code if there was an error, use the Applet::setConfigurationRequired() and/or hide the options.
Comment 2 David Edmundson 2012-08-20 14:25:49 UTC
*** Bug 305293 has been marked as a duplicate of this bug. ***
Comment 3 Leonardo 2012-08-20 14:36:59 UTC
Weird thing is that I do have mission control installed. Also  I just downgraded to telepathy 4.0 and it still occurs...
Comment 4 David Edmundson 2012-08-20 14:38:45 UTC
leonardo, can you run plasma-desktop from a terminal and paste any useful output here?
Comment 5 Leonardo 2012-08-20 15:27:43 UTC
plasma-desktop from a terminal had a lot of non-useful information. I did runned the ktp_presence plasmoid under plasma-windowed, and turns out that mission-control is segfaulting:


plasma-windowed(7983) TelepathyPresenceApplet::onAccountManagerReady: "org.freedesktop.DBus.Error.Spawn.ChildSignaled"
plasma-windowed(7983) TelepathyPresenceApplet::onAccountManagerReady: "Process /usr/libexec/mission-control-5 received signal 5"
plasma-windowed(7983): 
KCrash: Attempting to start /usr/bin/plasma-windowed from kdeinit
sock_file=/home/leo/.kde4/socket-cathy/kdeinit4__0
KCrash: Application 'plasma-windowed' crashing...
KCrash: Attempting to start /usr/lib64/kde4/libexec/drkonqi from kdeinit
sock_file=/home/leo/.kde4/socket-cathy/kdeinit4__0

Tryin to execute it i get this message:

---
process:17269): GLib-GIO-ERROR **: Settings schema 'im.telepathy.MissionControl.FromEmpathy' is not installed

Trace/breakpoint trap
--

which I guess is not useful, it probably means that a empathy-like must be running.

How can I test mission-control and get a backtrace of it?
Comment 6 Martin Klapetek 2012-08-20 15:31:30 UTC
You can run it in gdb - gdb "mission-control-5", then type "run" and hit enter, then make it crash and once it crashes, type "bt" and you'll get a backtrace. But you need debug packages to get a useful output. If you're on (K)ubuntu, install telepathy-mission-control-5-dbg package, it should be similar on other distros.
Comment 7 Leonardo 2012-08-20 15:36:21 UTC
I am not sure if I can reproduce the crash of mission control like this. Anyway, I installed mission-control version 5.12.1 and the bug is not reproducible anymore... weird.

I guess this bug can be closed.
Comment 8 David Edmundson 2012-08-20 22:58:04 UTC
I've seen that error before (in Arch on TelepathyLogger) it was a packaging bug that meant some gobject based post-install hook wasn't run.

In either case, our code should not crash (or in this case deliberately close) if the backend goes down for whatever reason, and as such this remains valid.
Comment 9 David Edmundson 2012-08-20 23:27:24 UTC
> Git commit 4256cbe5c0de0c142352b4ef33457d8bea868e9c by David Edmundson.
> Committed on 21/08/2012 at 01:18.
> Pushed by davidedmundson into branch 'master'.
>
> Don't treat MC errors as fatal
> Reviewed-by: Martin Klapetek
>
> M  +1    -1    KTp/global-presence.cpp