[kdepim-users] chatty akonadi apps

Martin Steigerwald Martin at lichtvoll.de
Sat Nov 8 13:10:52 GMT 2014


Am Samstag, 8. November 2014, 13:53:21 schrieb Kevin Krammer:
> On Saturday, 2014-11-08, 11:33:31, René J.V. Bertin wrote:
> > Hello,
> > 
> > As I just mentioned in another message, I'm using Kontact for my email
> > needs, also on a slow netbook. It works well enough as long as I don't
> > have
> > to get out of some kind of deadlock, but I notice that the various akonadi
> > applications run in the background are very chatty. That cannot but slow
> > down an already slow machine so I wonder if there's a way to make all
> > those
> > resources shut up at least about each and every successful operation?
> > 
> > Debug output is already off via kdebugdialog, so AFAIK I should NOT get
> > all
> > that output according to KDE debug output guidelines.
> 
> An application that has all its debug output turned off (its own and that of
> the libraries/subsystems it uses) should not log/write anything other than
> maybe warnings and errors [1].
> 
> Application developers sometimes use non KDE logging, e.g. qDebug()
> statments, which are unaffected by the debug settings.
> 
> This can be handy during development, e.g. a developer can also turn off
> anything else and only see this expectional output.
> But the general idea is to remove it from production code or to convert it
> to proper kDebug().
> 
> If you are still seeing output such as that you could report it as an issue
> with the software.

Akonadi is indeed very chatty in ~/.xsession-errors or as you can see from 
just doing akonadictl restart in a console window.

For me this chattyness makes it difficult to find *real* issues, errors.

> Having that said, porting to Qt5 should improve that situation at some point
> as well, since it now also has a logging framework capable of being
> configured and developers are urged to switched to that.

Hopefully it includes a severity tag for log messages.

> Kevin
> 
> [1] when I restart Akonadi through the shell in a Konsole window I currently
> almost only see warning and errors being logged, the only debug type
> messages seem to come from search related components and I am not sure I
> turned their logging of yet.

Hmmm… I see more than that. Things like:

Executing search "searchUpdate-1415451627" 
akonadiserver(13965) SearchPlugin::search: mail query
akonadiserver(13965) recursiveEmailTermMapping: "subject" QVariant(QString, 
"[…]")
akonadiserver(13965) SearchPlugin::search: "{ "term" : { "$and" : [ { "$or" : 
[ { "collection" : { "$ct" : "325" } } ] }, { "$and" : [ { "$or" : [ { 
"subject" : { "$ct" : "[…]" } } ] } ] } ] }, "type" : [ "Email" ] }"
akonadiserver(13965) SearchPlugin::search: Got 3 results
searchUpdateResultsAvailable 329 3 results 
Got 3 results, out of which 3 are already in the collection 
Added 0 
Search done "searchUpdate-1415451627" (without remote search) 
Search update finished 
All results: 3 
Removed results: 0 


or

request for item 1278344 succeeded 
posting retrieval request for item 1279832  there are  1  queues and  0  items 
in mine 
request for item 1279832 still pending - waiting 
processing retrieval request for item 1279832  parts: ("HEAD")  of resource: 
"akonadi_maildir_resource_0" 
continuing 
request for item 1279832 succeeded 
posting retrieval request for item 1281809  there are  1  queues and  0  items 
in mine 
request for item 1281809 still pending - waiting 
processing retrieval request for item 1281809  parts: ("HEAD")  of resource: 
"akonadi_maildir_resource_0" 
continuing 
request for item 1281809 succeeded 
posting retrieval request for item 1305409  there are  1  queues and  0  items 
in mine 
processing retrieval request for item 1305409  parts: ("HEAD")  of resource: 
"akonadi_maildir_resource_0" 
request for item 1305409 still pending - waiting 
continuing 
request for item 1305409 succeeded 

or

VERIFY IT: SearchRule::RequiredPart SearchRuleString::requiredPart() const use 
default "Envelope" for field : "Sender" 
VERIFY IT: SearchRule::RequiredPart SearchRuleString::requiredPart() const use 
default "Envelope" for field : "Sender" 
VERIFY IT: SearchRule::RequiredPart SearchRuleString::requiredPart() const use 
default "Envelope" for field : "Sender" 
VERIFY IT: SearchRule::RequiredPart SearchRuleString::requiredPart() const use 
default "Envelope" for field : "List-Post" 
VERIFY IT: SearchRule::RequiredPart SearchRuleString::requiredPart() const use 
default "Envelope" for field : "Sender" 
VERIFY IT: SearchRule::RequiredPart SearchRuleString::requiredPart() const use 
default "Envelope" for field : "Sender" 
VERIFY IT: SearchRule::RequiredPart SearchRuleString::requiredPart() const use 
default "Envelope" for field : "Sender" 
VERIFY IT: SearchRule::RequiredPart SearchRuleString::requiredPart() const use 
default "Envelope" for field : "List-Post" 
VERIFY IT: SearchRule::RequiredPart SearchRuleString::requiredPart() const use 
default "Envelope" for field : "Sender" 
VERIFY IT: SearchRule::RequiredPart SearchRuleString::requiredPart() const use 
default "Envelope" for field : "Sender" 
VERIFY IT: SearchRule::RequiredPart SearchRuleString::requiredPart() const use 
default "Envelope" for field : "Sender" 
VERIFY IT: SearchRule::RequiredPart SearchRuleString::requiredPart() const use 
default "Envelope" for field : "List-Post" 
VERIFY IT: SearchRule::RequiredPart SearchRuleString::requiredPart() const use 
default "Envelope" for field : "Sender" 
VERIFY IT: SearchRule::RequiredPart SearchRuleString::requiredPart() const use 
default "Envelope" for field : "Sender" 


or


Executing search "kmail2-603649082-SearchSession" 
akonadiserver(13965) recursiveContactTermMapping: "email" QVariant(QString, 
"some mail address")
akonadiserver(13965) SearchPlugin::search: "{ "term" : { "$and" : [ { "$or" : 
[ { "collection" : { "$ct" : "3" } }, { "collection" : { "$ct" : "3" 
} } ] }, { "$or" : [ { "email" : "some mail address
" } ] } ] }, "type" : [ "Contact" ] }"
akonadiserver(13965) SearchPlugin::search: Got 0 results
Search done "kmail2-603649082-SearchSession" (without remote search) 
        Result: 0 matches 
SEARCH: 
        Query: "{ "limit" : -1, "negated" : false, "rel" : 1, "subTerms" : [ { 
"cond" : 0, "key" : "email", "negated" : false, "value" : "joel.rees
@gmail.com" } ] }" 
        MimeTypes: ("text/directory") 
        Collections: QVector(3, 3) 
        Remote: false 
        Recursive true 
Executing search "kmail2-603649082-SearchSession"

Just for starters. I think I can find a ton more in ~/.xsession-errors


Debugging is disabled in kdebugdialog.


I now removed the "Last search" folder… maybe that gets rid of some of those. 
Or is there some other setting I need to disable for this? Maybe its not 
properly configured here. I know a filter log that one can activate somewhere. 
Only second item may be related to something else than search it seems to me.


What also concerns me that it inserts private data like mail addresses and 
subject lines in the log as well… making it unsuitable to send a copy of 
~/.xsession-errors for a bug report without sanitizing it before. I think by 
default its better if it is more cautious about putting private user data into 
the logs.

I think such debugging logs may be best separate to the regular operation log 
that only logs warnings and errors (in an anomyzed form as much as possible). 
On any account: Any serious errors the user needs to be notified in the GUI 
anyway. With usable information on how to act on the error.

I think Akonadi / KDEPIM can be improved a lot regarding this. I do not yet 
have any Plasma 5 packages on Debian except a test package of kf5attica or so. 
Its not packaged yet. But this may be good work after or during KDE Frameworks 
porting.

Ciao,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7
_______________________________________________
KDE PIM users mailing list
Subscription management: https://mail.kde.org/mailman/listinfo/kdepim-users


More information about the kdepim-users mailing list