[Bug 304172] Plasma crashes on opening the Desktop settings

Christian joulupukin.tontut at yandex.ru
Sun Aug 5 19:57:47 BST 2012


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

--- Comment #10 from Christian <joulupukin.tontut at yandex.ru> ---
Hi once more! I tried to debug this bug a little bit myself, but I haven't got
very far because I haven't managed to set up a working debug environment for
plasma-desktop (see bug 304605). Anyway, here's what I've got:

The routines in strigi / akonadi are some kind of storage object, where for
each attribute a value can be stored. (But only one value.) It says in the code
that this should not be called to store more than one value under the same
attribute name, but the code has a provision for what to do then: delete the
old value(s) and store the new one. In my case, this code is called and tries
to delete an old attribute value's pointer *it. But the *it pointer cannot be
deleted. (I don't know why not; maybe it is a null pointer?)
So (A) if this is a bug in strigi or akonadi, then the bug is one of the
following:
(i) Before deleting an old value's pointer *it, it should test that this can
actually be deleted, and only store things that can be deleted. OR
(ii) When storing a value into an attribute, it has to make a copy of the value
so that it can be sure that the pointer can be deleted when necessary. OR
(iii) trigger an error if asked to store something into an attribute that
already has a value.

But maybe it's not a bug in strigi / akonadi and instead (B) the real bug is in
the plasma wallpaper section. Just before crashing, the wallpaper
backgroundimage selector code has successfully stored the attributes for Author
and Title. It fails at storing the attribute Resolution. Again, here are a few
hypotheses:
(i) The background code has stored Resolution previously and tries to store it
again, which may be against the strigi / akonadi specs. OR
(ii) Earlier it stored an invalid Resolution object (i.e., one that cannot be
deleted) to the same storage object, OR
(iii) Earlier it stored a valid Resolution object and this object was deleted
outside of strigi / akonadi so that, when strigi / akonadi tries to delete the
old value, it cannot do so any more.

Maybe I've missed something. Now, if I only knew how to test these hypotheses
myself I would ;-)

Another observation: The .xsession-errors log refers to a file called
/usr/share/wallpapers/metadata.desktop. That file doesn't exist. That could be
related to this bug... But then, I don't see how missing this file would not
mess up the Author and Title storing, which seems to happen without incident.

-- 
You are receiving this mail because:
You are the assignee for the bug.



More information about the Kdepim-bugs mailing list