Bug 199754 - Plasmoids/plugin should not be able to crash the whole Plasma Desktop
Summary: Plasmoids/plugin should not be able to crash the whole Plasma Desktop
Status: RESOLVED UNMAINTAINED
Alias: None
Product: plasma4
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Unlisted Binaries Linux
: NOR wishlist
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
: 202616 203754 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-07-11 10:27 UTC by Dotan Cohen
Modified: 2018-06-08 20:07 UTC (History)
5 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 Dotan Cohen 2009-07-11 10:27:23 UTC
Application that crashed: plasma-desktop
Version of the application: 0.3
KDE Version: 4.2.95 (KDE 4.2.95 (KDE 4.3 RC1))
Qt Version: 4.5.0
Operating System: Linux 2.6.28-13-generic i686
Distribution: Ubuntu 9.04

What I was doing when the application crashed:
I clicked on the Radar icon of YAWP (Yet Another Weather Plasmoid, from KDE-look) and Plasma crashed. I file this bug against Plasma, not YAWP for two reasons:
1) YAWP is not an official KDE plasmoid, but:
2) Plasmoids should not be able to crash Plasma.

Errors in Plasmoids should be handled more gracefully, not crashing Plasma.

 -- Backtrace:
Application: Plasma Workspace (kdeinit4), signal: Segmentation fault
[Current thread is 0 (LWP 3654)]

Thread 2 (Thread 0xa76c0b90 (LWP 3661)):
#0  0xb803e430 in __kernel_vsyscall ()
#1  0xb65060e5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb66e62ed in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6
#3  0xb7e399b2 in QWaitCondition::wait (this=0x9922c98, mutex=0x9922c94, time=4294967295) at thread/qwaitcondition_unix.cpp:87
#4  0xb7775152 in QHostInfoAgent::run (this=0x9922c88) at kernel/qhostinfo.cpp:260
#5  0xb7e3896e in QThreadPrivate::start (arg=0x9922c88) at thread/qthread_unix.cpp:189
#6  0xb65024ff in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#7  0xb66d749e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 1 (Thread 0xb6010a10 (LWP 3654)):
[KCrash Handler]
#6  0xb666c896 in memcpy () from /lib/tls/i686/cmov/libc.so.6
#7  0xbfa5b0a8 in ?? ()
#8  0xa964f34d in ?? () from /usr/lib/kde4/plasma_applet_networkmanagement.so
#9  0xa964e1c8 in ?? () from /usr/lib/kde4/plasma_applet_networkmanagement.so
#10 0xa96607dd in ?? () from /usr/lib/kde4/plasma_applet_networkmanagement.so
#11 0xa964bbfb in ?? () from /usr/lib/kde4/plasma_applet_networkmanagement.so
#12 0xb7f42ca8 in QMetaObject::activate (sender=0x9a40ea8, from_signal_index=5, to_signal_index=5, argv=0x0) at kernel/qobject.cpp:3069
#13 0xb7f43932 in QMetaObject::activate (sender=0x9a40ea8, m=0xa967dfe0, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3143
#14 0xa964a9d7 in ?? () from /usr/lib/kde4/plasma_applet_networkmanagement.so
#15 0xa96502e2 in ?? () from /usr/lib/kde4/plasma_applet_networkmanagement.so
#16 0xa964bb03 in ?? () from /usr/lib/kde4/plasma_applet_networkmanagement.so
#17 0xa964bbba in ?? () from /usr/lib/kde4/plasma_applet_networkmanagement.so
#18 0xb7f42ca8 in QMetaObject::activate (sender=0x955c0d8, from_signal_index=8, to_signal_index=8, argv=0xbfa5b318) at kernel/qobject.cpp:3069
#19 0xb7f43932 in QMetaObject::activate (sender=0x955c0d8, m=0xa963be44, local_signal_index=1, argv=0xbfa5b318) at kernel/qobject.cpp:3143
#20 0xa9634b09 in NetworkManagerSettings::connectionRemoved () from /usr/lib/libknmdbus.so.4
#21 0xa9636106 in NetworkManagerSettings::onConnectionRemoved () from /usr/lib/libknmdbus.so.4
#22 0xa963688b in NetworkManagerSettings::qt_metacall () from /usr/lib/libknmdbus.so.4
#23 0xb7f42ca8 in QMetaObject::activate (sender=0x9514488, from_signal_index=5, to_signal_index=5, argv=0x0) at kernel/qobject.cpp:3069
#24 0xb7f43932 in QMetaObject::activate (sender=0x9514488, m=0xa963bd24, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3143
#25 0xa96330c7 in OrgFreedesktopNetworkManagerSettingsConnectionInterface::Removed () from /usr/lib/libknmdbus.so.4
#26 0xa96336c3 in OrgFreedesktopNetworkManagerSettingsConnectionInterface::qt_metacall () from /usr/lib/libknmdbus.so.4
#27 0xa9632192 in RemoteConnection::qt_metacall () from /usr/lib/libknmdbus.so.4
#28 0xb72e1d7a in QDBusConnectionPrivate::deliverCall (this=0x957df28, object=0x9514488, msg=@0xa6e74c4, metaTypes=@0xa6e74c8, slotIdx=5) at qdbusintegrator.cpp:891
#29 0xb72ea187 in QDBusCallDeliveryEvent::placeMetaCall (this=0xa6e7498, object=0x9514488) at qdbusintegrator_p.h:101
#30 0xb7f3d3a0 in QObject::event (this=0x9514488, e=0xa6e7498) at kernel/qobject.cpp:1118
#31 0xb69bce9c in QApplicationPrivate::notify_helper (this=0x924c308, receiver=0x9514488, e=0xa6e7498) at kernel/qapplication.cpp:4084
#32 0xb69c519e in QApplication::notify (this=0x9246398, receiver=0x9514488, e=0xa6e7498) at kernel/qapplication.cpp:3631
#33 0xb74f73dd in KApplication::notify (this=0x9246398, receiver=0x9514488, event=0xa6e7498) at /build/buildd/kde4libs-4.2.95/kdeui/kernel/kapplication.cpp:302
#34 0xb7f2ca3b in QCoreApplication::notifyInternal (this=0x9246398, receiver=0x9514488, event=0xa6e7498) at kernel/qcoreapplication.cpp:602
#35 0xb7f2d695 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x91dff00) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:213
#36 0xb7f2d88d in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1132
#37 0xb7f587ef in postEventSourceDispatch (s=0x924e520) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218
#38 0xb654fb88 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#39 0xb65530eb in ?? () from /usr/lib/libglib-2.0.so.0
#40 0xb6553268 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#41 0xb7f58438 in QEventDispatcherGlib::processEvents (this=0x9249b00, flags={i = -1079657320}) at kernel/qeventdispatcher_glib.cpp:323
#42 0xb6a5e365 in QGuiEventDispatcherGlib::processEvents (this=0x9249b00, flags={i = -1079657272}) at kernel/qguieventdispatcher_glib.cpp:202
#43 0xb7f2b06a in QEventLoop::processEvents (this=0xbfa5bd40, flags={i = -1079657208}) at kernel/qeventloop.cpp:149
#44 0xb7f2b4aa in QEventLoop::exec (this=0xbfa5bd40, flags={i = -1079657144}) at kernel/qeventloop.cpp:200
#45 0xb7f2d959 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:880
#46 0xb69bcd17 in QApplication::exec () at kernel/qapplication.cpp:3553
#47 0xb4b68510 in kdemain () from /usr/lib/libkdeinit4_plasma-desktop.so
#48 0x0804e1c0 in launch (argc=1, _name=0x923390c "/usr/bin/plasma-desktop", args=0x9233924 "", cwd=0x0, envc=0, envs=0x9233928 "", reset_env=false, tty=0x0, avoid_loops=false, 
    startup_id_str=0x80512d1 "0") at /build/buildd/kde4libs-4.2.95/kinit/kinit.cpp:672
#49 0x0804e99d in handle_launcher_request (sock=7, who=<value optimized out>) at /build/buildd/kde4libs-4.2.95/kinit/kinit.cpp:1164
#50 0x0804ef25 in handle_requests (waitForPid=0) at /build/buildd/kde4libs-4.2.95/kinit/kinit.cpp:1357
#51 0x0804fb0a in main (argc=2, argv=0xbfa5c534, envp=0xbfa5c540) at /build/buildd/kde4libs-4.2.95/kinit/kinit.cpp:1784

Reported using DrKonqi
Comment 1 Dario Andres 2009-07-11 12:38:12 UTC
Unofficial plasmoids should not be able to crash plasma but that will happen because of the Plasma design.
*however*, the backtrace is about the NetworkManager plasmoid.
What is your "plasma-widget-networkmanager" version ?
Thanks
Comment 2 Dotan Cohen 2009-07-11 15:10:27 UTC
> Unofficial plasmoids should not be able to crash plasma but that will
> happen because of the Plasma design.

Is that not a bug to be fixed? I am not a programmer, so please forgive the stupid question, but is there no way to handle errors more gracefully than crashing the entire desktop?


> What is your "plasma-widget-networkmanager" version ?

Version: 0.0+svn966653-0ubuntu0.1
Comment 3 Dario Andres 2009-07-15 00:55:17 UTC
That's a code design question I can't reply to, as I'm not a Plasma developer, sorry.

Anyways we have a problem here, the report is about two different things: the title and the backtrace (which was not an unofficial plugin crashing, but an official one). I agree about Plasma should not crash when *any* plugin fails; but I lack the knowledge to work on that.

So.. what do you want to do ? The networkmanager crash is probably reported somewhere else. Should I convert this to a normal(non-crash) report, and we should forget about that backtrace ?, or should we start a new bug report ?
Comment 4 Dotan Cohen 2009-07-15 14:00:38 UTC
> Should I convert this to a normal(non-crash) report, and we
> should forget about that backtrace ?

Yes, this bug should be a Wishlist item for better handling of failing Plasmoids. The backtrace can be ignored, and if the Network Manager plasmoid crashes on me again I'll file a bug on it or comment on an existing bug.

I will let you word the new subject as you see fit Dario, you will do it better than I. Thanks!
Comment 5 Dotan Cohen 2009-08-05 18:23:19 UTC
*** Bug 202616 has been marked as a duplicate of this bug. ***
Comment 6 Martin Steigerwald 2009-12-22 14:47:45 UTC
*** Bug 203754 has been marked as a duplicate of this bug. ***
Comment 7 Martin Steigerwald 2009-12-22 15:01:53 UTC
beware: <rant>

I add bug #219449 as a another case - after the RememberTheMilk plasmoid one - that shows the severity of this issue. Okay, following a stable distribution one would not likely have installed hal 0.5.14, but then why a power management plasmoid that is incompatible with a certain hal version or even the other way around is able to cripple the desktop experience in such a massive way is way beyond me. This is a *core* plasmoid crashing the Plasma desktop here.

In my oppinion this is definately *not* a wishlist item. And if Plasma does crash when a plasmoid crashes by *design* at least from a user side point of view I consider this very design as being *broken*. There might be valid technical reasons for it, but technical limitations should not be carried out on the users IMO.

Without plasma-desktop the KDE desktop is severely crippled:
- panel is missing
- menu is missing
- systray is missing which made me use pkill kwalletmanager ; kwalletmanager --show to bring up the kwalletmanager window to look up a password for Iceweasel since Konqueror told me something about a broken cookie management
- background images and activities are missing

During KDE 4.3 lifetime I had it several times that this broke my desktop. Even now with KDE 4.3.4 where one would not expect it.

So please think about ways to make the Plasma desktop more robust. Please only let crash as much as is absolutely necessary to crash.

Actually if I had to choose between fancy effects and desktop stability I would go for the latter.

</rant>
Comment 8 Martin Steigerwald 2009-12-22 15:15:15 UTC
continued:

- SSL handling in KMail appears to be partly broken as well, cause it asks me again and again whether I want to accept a certain outdated SSL certificate
- session handling is broken
- cookie handling in Konqueror seems to be (partly) broken

If plasma-desktop is not running it seems to me that several critical services are not started.
Comment 9 Dario Andres 2009-12-22 15:25:13 UTC
No.. those are unrelated. Those services (secure connections, sessions and cookies) are handled by "kded4" (the KDE4 daemon manager). May be your environment had a problem and that application crashed too (it should re-spawn itself after a crash..), but in any case, the crashes between plasma-desktop and kded4 are mostly unrelated.
Regards
Comment 10 Dotan Cohen 2010-01-28 10:22:25 UTC
It seems that Vista sandboxes widgets so that a widget failure will not crash the whole environment. Can such sandboxing not be used in KDE?
Comment 11 Nate Graham 2018-06-08 20:07:12 UTC
Hello!

This feature request was filed for KDE Plasma 4, which reached end-of-support status in August 2015. KDE Plasma 5's desktop shell has been almost completely rewritten for better performance and usability, so it is likely that this feature request is already implemented in Plasma 5, or is no longer applicable.

Accordingly, we hope you understand why we must close this feature request. If the requested feature is still desired but not implemented in KDE Plasma 5.12 or later, please feel free to open a new ticket in the "plasmashell" product after reading https://community.kde.org/Get_Involved/Bug_Reporting

If you would like to get involved in KDE's bug triaging effort so that future mass bug closes like this are less likely, please read https://community.kde.org/Get_Involved#Bug_Triaging

Thanks for your understanding!

Nate Graham