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

Duncan 1i5t5.duncan at cox.net
Wed Aug 3 17:20:46 BST 2011


Kevin Krammer posted on Wed, 03 Aug 2011 14:46:31 +0200 as excerpted:

> On Wednesday, 2011-08-03, Duncan wrote:
>> Sergei Andreev posted on Wed, 03 Aug 2011 12:39:01 +0400 as excerpted:
> 
>> > 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 [they chose poorly].
> 
> Actually no.
> It is mainly a problem of the underlying technology, i.e. embedding one
> process' window into another one's not being very well supported, or at
> least not on X11.
> 
> It is less a problem of performance, Konqueror has done plugins
> out-of-process for ever (incidentally making it the only browser to
> survive Flash crashes for years before other browsers changed to that
> model as well).

Valid and interesting point.  Not one I've had a lot of direct experience 
with since I won't do flash because it's proprietary, in the first place, 
but yes, it's valid, and kde has been recognized for it.

> But it clearly showed the limits of the underlying technologies used for
> that, e.g. the embedding process having little to no control over the
> embedded window (other than probably size and position) and embedded
> window having very few means of communicating needs to the host (and
> having two separate and exclusive event processing contexts).
> 
> So with basically forced to have all UI portions in the same process,
> running the data processing in separate execution units might be
> possible in some occasions without dragging down performance too much
> (as indicated by Aaron in the linked comment).

I can't argue with that, either.

But what about the other bit, where I suggested (rewording a bit) that 
(1), a natural process subdivision would be at the container level, that 
(2), while a whole individual panel or desktop container crashing 
wouldn't be as good as limiting it to an individual plasmoid, it'd 
certainly be far better than all of plasma including all panels, all 
desktops and all activities coming down at once, thus significantly 
limiting the damage, that (3), given existing behavior both with effects 
on and with them off, separate container processes each with their own 
window would behave very little differently in terms of composite, etc, 
and (4), that inter-container/inter-process communication could be 
reasonably limited without affecting performance /that/ drastically, 
while at the same time, /drastically/ improving robustness, just as it 
has with the separate krunner and as it does currently when for example 
using plasmoidviewer or plasma-windowed for plasmoid-development or the 
like.

It seems to be that would be a reasonable compromise, bypassing both the 
worst of the stability problems by limiting crashes to a single 
container, and the worst of the performance problems, because each 
container would then be its own window.  

The user experience I have establishing this includes running a separate 
superkaramba instance, set to top-dock so it's very nearly replacing an 
entire plasma panel.  It's /very/ nice to have that still running when 
plasma itself crashes or I shut it down and restart it.  Given that as 
I'm using it, it's almost replacing a full plasma panel... I still have a 
systray/notifier plasmoid on a short panel at the end... the concept has 
certainly been demonstrated to be effective here, and I'd very dearly 
love to see each plasma desktop (two monitors, separately configured 
wallpaper and plasmoids, separately crashing would be nice...) and each 
panel independent of the others process- and crash-wise, just as my 
superkaramba panel is independent of plasma.

As proposed, IPC could be used between desktop and panels for drag-n-drop 
integration, etc, probably implemented using dbus, and the performance 
hit shouldn't be any more critical than it is when dragging something 
between say dolphin and a folderview plasmoid.  Yet robustness would be 
HUGELY improved, because each panel and each desktop would survive a  
lockup or crash of one of the others.

...

Meanwhile, I did notice that the link mentioned konsole as suffering from 
a similar issue at the time, all konsole windows belonging to a single 
process.  That has apparently been fixed for some time, since at least 
4.5 I'd guess if not 4.3 or 4.4, as I routinely see multiple konsole 
processes and double-checked after reading the discussion -- using the 
xkill hotkey only kills the one konsole window, not all of them as it did 
back then. =:^)

Now if I could only kill one plasma panel/desktop/container at a time...

-- 
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