[Akonadi] [Bug 335776] IMAP agent crashes frequently

Daniel Vrátil dvratil at redhat.com
Thu Sep 25 14:14:33 BST 2014


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

Daniel Vrátil <dvratil at redhat.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dvratil at redhat.com

--- Comment #5 from Daniel Vrátil <dvratil at redhat.com> ---
I discovered one of the possible causes of the crash:

In ItemSync, when the ItemCreateJob fails, the TransactionSequence is rolled
back and ItemSync emits finished() - to which ResourceBase reacts by marking
the task as done and scheduling another task. However the BatchFetcher in IMAP
resource is not aware of this and keeps feeding more items through
ResourceBase::itemsRetrieved() - which eventually hits the assert in
ResourceBase, because ResourceBase has already moved on to another non-sync
task.

Not sure how to solve this - ItemSync is internal to ResourceBase, so there's
no way how to tell resource implementation that ItemSync has failed and so that
they should stop sending more items. Good-enough fix would probably be to make
TransactionSequence in ItemSync to ignore ItemCreateJob failures and handle the
error manually (somehow) and continue, or just abort, but let the caller to
feed ItemSync all its items (just do nothing with them) and then terminate -
i.e. prevent ItemSync for ever aborting prematurely. Proper fix would be to
make Sync a cancellable operation, so that we can tell resource to stop feeding
ResourceBase with items because there was an error.


Regarding the reasons for ItemCreateJob failure: in my case this was happening
because somehow I had two items with the same RID in one Collection (probably
the RID wasn't reset during MOVE or something), so MERGE handler will abort
with "Multiple merge candidates" error and so the ItemCreateJob fails.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Kdepim-bugs mailing list