https://bugs.kde.org/show_bug.cgi?id=335776
Daniel Vrátil <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #5 from Daniel Vrátil <[email protected]> --- 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. _______________________________________________ Kdepim-bugs mailing list [email protected] https://mail.kde.org/mailman/listinfo/kdepim-bugs
