https://bugs.kde.org/show_bug.cgi?id=469445

pallaswept <pallasw...@proton.me> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pallasw...@proton.me

--- Comment #12 from pallaswept <pallasw...@proton.me> ---
TL;DR the specific nature of this issue is two-fold: that not only desktop
items, but also the CONTENTS of desktop items, are stored in this file; and
that files which no longer exist are never removed. 
This results in an a) oversized due to inclusion of irrelevant items, and b)
ever-growing when items are removed from the desktop but not the config file;
single line of text in the config file, which inevitably eventually leads to a
failure to load the file and subsequent crash of plasma.


To fix this will require two parts, firstly to only track items directly ON the
desktop, and NOT their contents, and secondly, to REMOVE items that are no
longer present on the desktop.


>EXPECTED RESULT
> Is this config entry even needed? At least it should remove the files when 
> deleted from the desktop

The config entry is needed to track the position of desktop items when using
multiple displays.

The nature of the problem here is that it doesn't track positions of items on
the desktop, it tracks positions of items on the desktop RECURSIVELY. As in, if
I create a folder on my desktop, that folder needs an entry here, but the 8000
source files of the app I'm building which are within that folder do NOT need
to be tracked in this file, at all, ever. They never appear on the desktop.
They just happen to be stored beneath the desktop folder.

> STEPS TO REPRODUCE
> 1. Put a folder with many files on the desktop (I used the wine source code)
> 2. Look at the plasma-org.kde.plasma.desktop-appletsrc config

These steps given to cause the fault are not complete. I have a folder on my
desktop right now with thousands of source files within it, but only the items
I've positioned on the desktop are stored in this config file, and in this
case, only the top folder is there. I discovered this bug after building the
app, so something that happened during the course of building it made plasma
aware of all the subdirectories and all their file contents, and created an !!8
megabyte long single line of text!! in my config file, specifying the desktop
position of items that are never positioned on the desktop.

Further to this, many of those files were created during the build, and then
deleted, but the entries in the config file for them remained. 

Importantly, this shows that one could cause this failure by simply creating
and removing a sufficient number of files on (or within) the desktop folder. As
in, eventually, it will happen to everyone.


It was only after rebooting that I discovered the problem, and thanks to
Murphy's Law, the reason for rebooting was a system upgrade that included new
qt libs, new plasma components, a new kernel, and a new graphics driver, so
naturally I assumed one or more of those things to be the cause of the fault,
and some 8 hours of troubleshooting later, I managed to pin it down to this
config file. I restored from a copy from some time ago, and intended to compare
it to the offending file so I didn't need to spend an hour reconfiguring my
entire desktop, and Kate complained about the long line of text and then
crashed, and Kdiff crashed on it too. Once I found the offending line (thank
you micro text editor for being able to load it without dying), I removed it
and only had to drag a few desktop icons to their rightful place. 

The experience was sufficiently unpleasant for me to create an account here and
add some detail about the nature of the fault. I hope it is helpful and that
this case is treated with appropriately high priority, as fixing it is no
simple task. Shout out to BTRFS and snapper for saving me from a total
nightmare reconfiguring everything.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to