I just noticed: no more crashes! Thanks, KDE team!

Duncan 1i5t5.duncan at cox.net
Wed Aug 3 11:57:33 BST 2011


Sergei Andreev posted on Wed, 03 Aug 2011 12:39:01 +0400 as excerpted:

>> It's a plasmoid from kdelook, so not really a main kde problem,
>> *EXCEPT* for the poor plasma design choice of running all of plasma
>> single- threaded, so a single misbehaving plasmoid can either freeze or
>> crash the entire plasma-desktop.  That *DESPITE* the fact that the
>> trend these days is to have separate sandboxed processes for
>> everything, see chrome/ chromium, and firefox is headed that way -- but
>> still the quite new plasma just /had/ to be designed so a single
>> misbehaving plasmoid would kill it, even tho they were deliberately
>> making it extensible and inviting people of all sorts of skill levels
>> to design plasmoids for it, the VERY SAME reason chrome/chromium did
>> the sandboxed-process thing and firefox is headed that way!  They had
>> the opportunity to design plasma for robustness in that regard from the
>> very start, but didn't.  Now they have backward compatibility issues to
>> worry about if they try to fix the problem.  Oh, well... <shrug>
>>
>>
> And the answer is:
> http://www.freehackers.org/thomas/2009/11/10/wonders-from-a-kde-fan-and-
developer-about-some-kde-design-choices/comment-page-1/#comment-7507

Of course it doesn't perform well with each plasmoid as a separate 
process... because they chose components with that characteristic.

That's the point.  It was a new thing so they could chose the components 
they wanted, and despite the fact that the flexibility of being able to 
run binary plasmoids of uncertain stability created by people of all 
talent levels was a design goal, they chose to use components that had 
poor performance characteristics when run in separate processes.

It /can/ work.  Witness how X handles all those independent processes 
creating their own windows, such that if one process crashes, it doesn't 
take down all of X!  There's this thing called a window manager that... 
manages windows!  What a concept!  And if one process crashes, its 
windows die, but those of other X-based processes continue!  What a 
concept!

So no, you (and Aaron) can't worm out of this by simply trying to shift 
the blame to the component, when the component was by definition a poor 
choice given the goal of the project to integrate all these binary 
plasmoids of uneven code quality... unless of course stability of the 
overall project just because some binary plasmoid created by some 
simpleton got it wrong, wasn't a goal.

Is that what we're supposed to take away from this, that plasma stability 
in the face of all those binary plasmoids of unknown stability wasn't a 
design goal?  Because that's what it looks like, given the argument used.

Meanwhile, there are plasmoidviewer and plasma-windowed, so at least
/some/ need for running plasmoids as separate processes is recognized.  
And krunner is also a separate process, because the need for that was 
recognized as well.  But for some reason it was considered acceptable to 
put all sorts of mixed stability binary plasmoids in the same process, 
where one of unfortunately bad design could take down the whole thing, 
then foist the whole thing off on components that were a deliberate 
choice for a project that had the goals of running all those different 
plasmoids of potentially differing stability... and now your argument, 
taken to its logical conclusion, is that stability in that context was 
NOT a design goal, at least of any serious priority, so choosing 
components with performance issues in the multi-process context that 
would prevent such stability issues wasn't a big deal?  <shrug>

Even simply setting it up so each desktop and each panel (container, to 
use the more generic term) was its own process, so crashing only took 
that down, not all panels and all desktops together, would be useful.  
Some sort of possibly dbus-based IPC could be setup for drag-n-drop 
between them -- using it for only that and other similar special-cases 
can't be /that/ performance-dragging, and panels are already either 
composited over top of the desktop if effects are on, or opaque, if 
they're off, so separate container processes could be composited -- or 
not -- just like windows from separate processes already are.

As for it taking memory and other resources that may be scarce on some 
systems, valid point, but remember, my original post favorably pointed 
out konqueror's options in that regard.  Set a same-process default if 
desired, but make it an option, and let the user decide where they want 
the tradeoff in terms of stability vs resource usage.

And yeah, having an entire panel/desktop/activity/container crash would 
still suck, but not near as bad as having all of plasma crash, with its 
multiple panels, multiple desktops and multiple activities.

That said, I don't claim to be a coder, and I'm obviously using it or 
there'd be little purpose to all the time I spend on the kde lists, so 
it's self-evidently tolerable.  I just wonder at some of the choices 
made, and if I see excuses for them that I consider "British Subway", I 
won't hesitate to call them as I see them.

("British Subway" == BS.  Not that they're any worse than, say, NYS; they 
may well be better for all I know.  But the initialism isn't correct in 
that case and back a bit over a quarter century ago when I was in high 
school, I had a teacher that used the "British Subway" euphemism, and it 
stuck...)

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman

___________________________________________________
This message is from the kde mailing list.
Account management:  https://mail.kde.org/mailman/listinfo/kde.
Archives: http://lists.kde.org/.
More info: http://www.kde.org/faq.html.




More information about the kde mailing list