Bug 470114 - Feature Request: Ways to better notify / manage / recover from crashed plasmoids or widgets
Summary: Feature Request: Ways to better notify / manage / recover from crashed plasmo...
Status: REPORTED
Alias: None
Product: lattedock
Classification: Plasma
Component: application (show other bugs)
Version: git (master)
Platform: Compiled Sources Linux
: NOR wishlist
Target Milestone: ---
Assignee: Michail Vourlakos
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-05-22 09:58 UTC by dreamcat4
Modified: 2023-07-22 23:33 UTC (History)
0 users

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 dreamcat4 2023-05-22 09:58:52 UTC
SUMMARY

Latte Dock:

It would be nice to have some better management or visibility of crashed plasmoids. As to record which plasmoid had crashed previously... and then have some management page to list them. And policies to disable next time auto, or manually, or to override those disablement.

Reasons: will it seems like a good idea. That if latte dock can be aware that a crash previously occured due to a plasmoid or a widget. Then to flag that widget to the user. So the user can have a simple and easy way to see which widget(s) are causing problems. Rather than to blame latte dock itself, or KDE. And to know which widget(s) amongst many the user should look to disable. Instead of being suspicious of many different widgets, usually only 1-2 of them might be causing any issues.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: 5.27.5
KDE Plasma Version: 5.27.5
KDE Frameworks Version: 5.106.0
Qt Version: 5.15.8

ADDITIONAL INFORMATION

Well clearly this might be a challenging feature to implement. Depending on what sort of evidence can be left behind to look at after such crash occured.

There might be some pretty hard obstacles. Since once latte dock crashes... it's crashed! So it can no longer actually 'do anything' about those crash, like look at who is responsible.

The ability of such a feature to be possible seems to depends on 1-2 factors. Either:

a) some protection encapsulation feature, or a sandbox, or some trap / try catch exception handling blocks around the code when the widget is passed control into the process. Such that latte can catch the exception and record which widget was to blame for who was caused the crash.

or b)

Something new checks that latte dock can do during it's startup routine. Such that after the next launch, it can examine some sort of a core dump file, "automatically". Or at least semi-auto (to display a relevant parts of core dump to user on next startup). And be like: ah! This lines of code here... it means this plasmoid was running and can see in the backtrace was on the stack at the time...

So this is hard problem(s) to solve.

But then after solving such hard problem(s).... then is also quite some number of decisions or directions to go about designing such feature around those collected evidence. To find some good mechanisms to give those feedback to the user within Latte GUI environment (rather than logs). To actually be a convenient and effective feature. For example do you throw up an alert box. Or do you overlay a little red '!' next to the icon of the widget. Or do you have a seperate page within latte dock settings. That just lists all of the widgets in a big table, and next to them has (individually for each widget). Options to grey out (auto disable), then manually override (re-enable) on a per widget basis those crashed ones. And so on.

There is a similar feature in another program i use here: in my DAW Bitwig studio. It has such table for all of the VST audio plugins. So that the user can see which of the plugins in the list had crashed. And then open a log (of that plugin errors). And enable / disable each VST plugin individually. However in that program, those plugins can be optionally sandboxed. So it is more advanced capabilities... we may not expect that is possible here in latte. If it is simply running the plasmoid or widget's code within the same process space "unmanaged". Then we are much more limited in terms of what can be done.

So it is a huge ask. I do not expect much hope for it. And maybe silly to make much serious discussions around. However in meantimes or otherwise if anybody can point to some good online debugging guides / existing documentation for best debugging crashed plasmoids / kde widgets. Then that of course is also welcome too. Have a good day now, best wishes.