[Kde-pim] Once a month

Guy Maurel guy.maurel at kde.org
Fri Jul 5 15:54:08 BST 2013


Hello!

On Wednesday 19 June 2013 11:01:11 Andras Mantia wrote:
> Guy Maurel wrote:
> > Hello!
> > 
> > I start kmail once a day. About once a month, the filtering is not done.
> > "Selecting all the messages" and "Applying all the filters" once more: no
> > filtering.
> > 
> > It needs to use "akonadictl restart" to get it run.
> > 
> > What to look after to get a log-file with any hints?
> 
> Does the filter log give you any hint? Like the filters were tested for
> matching at all or not?
> 
Hello Andras!

I see some similitudes to the bug we get fixed in Berlin.
Some timing problem?

Let me explain what I see (once a week...)
Some of the filters don't fire.
The most of them have a rule such as "any header".
The comparision of gives "false" because one of the string is empty.

This is because:
/home/guy-kde/projects/kdepimlibs/kmime/kmime_content.cpp
 140? QByteArray Content::head() const
 141? {
 142?>  return d_ptr->head;

is empty.

Which is set at:
/home/guy-kde/projects/kdepimlibs/kmime/kmime_content.cpp
 145? void Content::setHead( const QByteArray &head )
 146? {
 147?>  d_ptr->head = head;

called at
home/guy-kde/projects/kdepim-runtime/plugins/akonadi_serializer_mail.cpp
 92?       if ( msg->body().isEmpty() && msg->contents().isEmpty() ) {
 93?>        msg->setHead( buffer );

called at
home/guy-kde/projects/kdepimlibs/akonadi/itemserializer.cpp
100? void ItemSerializer::deserialize( Item& item, const QByteArray& label...
101? {
102?>  if ( !TypePluginLoader::defaultPluginForMimeType( item.mimeType() )-
>deserialize( item, label

called at
 94?>    deserialize( item, label, buffer, version );

called at
/home/guy-kde/projects/kdepimlibs/akonadi/protocolhelper.cpp
413?>          ItemSerializer::deserialize( item, plainKey, lineTokens. ...

============

in the normal case, the ProtocolHelper::parseItemFetchResult gets all the 
needed data:
(some personal data are anonymised)
kmail2(1075)/libakonadi Akonadi::ProtocolHelper::parseItemFetchResult:
  GM: 411 plainKey= "ENVELOPE"
kmail2(1075)/libakonadi Akonadi::ItemSerializer::deserialize:
  GM: 95 before deserialize with external-Variable
kmail2(1075) Akonadi::SerializerPluginMail::deserialize:
  GM: 90 buffer is not empty
kmail2(1075) Akonadi::SerializerPluginMail::deserialize: gm>>
kmail2(1075) Akonadi::SerializerPluginMail::deserialize: "("Thu, 04 Jul 2013 
14:45:52 +0000" "Re: [Kde-pim] Review Request 111289: Fix support for RSS 
feeds whose item links are not complete urls" (("F O" NIL "f.o" 
"kdemail.net")) ((NIL NIL "kde-pim-bounces" "kde.org")) (("F O" NIL "f.o" 
"kdemail.net") ("KDE PIM" NIL "kde-pim" "kde.org")) (("F O" NIL "f.o" 
"kdemail.net")) (("KDEPIM-Libraries" NIL "kde-pim" "kde.org")) NIL 
"<20130628140858.5366.33800 at v.de>" "<20130704144552.22567.27908 at v.de>" 
"<20130628140858.5366.33800 at v.de>")" <<gm

and

kmail2(1075)/libakonadi Akonadi::ItemSerializer::deserialize:
  GM: 95 before deserialize with external-Variable
kmail2(1075) Akonadi::SerializerPluginMail::deserialize:
  GM: 90 buffer is not empty
kmail2(1075) Akonadi::SerializerPluginMail::deserialize: gm>>
kmail2(1075) Akonadi::SerializerPluginMail::deserialize: "Return-Path: <kde-
pim-bounces at kde.org>
...
" <<gm

==========

in the case with the bug, ONLY the ENVELOPE can be seen.

Killing the process /usr/local/bin/akonadi_mailfilter_agent
is enough to get a new one, which filters pretty well.

===========

in the case with the bug, the problem is reproduceable. A dbg can be
used to look what occurs, set breakpoints, and see the Content::setHead
is not called.

The question is:
what can I do to check why the data is not seen at 
ProtocolHelper::parseItemFetchResult, may be not send at all?

Thanks for any hint
-- 
guy
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/



More information about the kde-pim mailing list