Summary: | ASSERT failure in ResourceBase::collectionsRetrieved(): "Calling collectionsRetrieved() although no collection retrieval is in progress" | ||
---|---|---|---|
Product: | [Frameworks and Libraries] Akonadi | Reporter: | Milian Wolff <mail> |
Component: | IMAP resource | Assignee: | kdepim bugs <kdepim-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | dvratil |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | https://commits.kde.org/akonadi/4c98f59e21a524fc6feec901dd3ac0890d12d67d | Version Fixed In: | 5.11 |
Sentry Crash Report: | |||
Attachments: | Patch for Akonadi |
Description
Milian Wolff
2019-01-26 22:51:10 UTC
0.036 debug: Akonadi::ResourceBase::taskDone[/home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:1524]: Akonadi::ResourceBasePrivate(0x557139529a30) e "2 Custom startConnect " 0.036 debug: Akonadi::ResourceBase::taskDone[/home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:1526]: Akonadi::ResourceBasePrivate(0x557139529a30) d "4 Invalid (no task) " 0.036 debug: Akonadi::ResourceBase::synchronizeCollectionTree[/home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:1247]: Akonadi::ResourceBasePrivate(0x557139529a30) e "4 Invalid (no task) " 0.036 debug: Akonadi::ResourceBase::synchronizeCollectionTree[/home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:1249]: Akonadi::ResourceBasePrivate(0x557139529a30) d "4 Invalid (no task) " 0.113 debug: Akonadi::ResourceBasePrivate::changeProcessed[/home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:130]: Akonadi::ResourceBasePrivate(0x557139529a30) e "3 ChangeReplay " 0.113 debug: Akonadi::ResourceBasePrivate::changeProcessed[/home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:137]: Akonadi::ResourceBasePrivate(0x557139529a30) d "6 Invalid (no task) " 0.115 debug: Akonadi::ResourceBasePrivate::changeProcessed[/home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:130]: Akonadi::ResourceBasePrivate(0x557139529a30) e "5 SyncCollectionTree " 0.115 debug: Akonadi::ResourceBasePrivate::changeProcessed[/home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:137]: Akonadi::ResourceBasePrivate(0x557139529a30) d "7 Invalid (no task) " 0.192 debug: Akonadi::ResourceBase::collectionsRetrieved[/home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:814]: Akonadi::ResourceBasePrivate(0x557139529a30) e "7 Invalid (no task) " 70 0.192 debug: Akonadi::ResourceBase::collectionsRetrieved[/home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:815]: Akonadi::ResourceBasePrivate(0x557139529a30) "ResourceScheduler: Online\n current task: 7 Invalid (no task) \n queue 0 is empty\n queue 1 is empty\n queue 2 is empty\n queue 3 is empty\n queue 4 is empty\n\nIMAP tasks: RetrieveCollectionsTask" seems like the changeProcessed callback is at fault here, it sets the SyncCollectionTree as done, but it isn't actually done! 0.036 debug: Akonadi::ResourceBase::taskDone[/home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:1560]: Akonadi::ResourceBasePrivate(0x5571174e8250) e "2 Custom startConnect " 0.036 debug: Akonadi::ResourceBase::taskDone[/home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:1562]: Akonadi::ResourceBasePrivate(0x5571174e8250) d "4 Invalid (no task) " 0.037 debug: Akonadi::ResourceBase::synchronizeCollectionTree[/home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:1282]: Akonadi::ResourceBasePrivate(0x5571174e8250) e "4 Invalid (no task) " 0.037 debug: Akonadi::ResourceBase::synchronizeCollectionTree[/home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:1284]: Akonadi::ResourceBasePrivate(0x5571174e8250) d "4 Invalid (no task) " 0.107 debug: Akonadi::ResourceBasePrivate::changeProcessed[/home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:125]: Akonadi::ResourceBasePrivate(0x5571174e8250) QObject(0x0) "3 ChangeReplay " 0.108 debug: Akonadi::ResourceBasePrivate::changeProcessed[/home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:143]: Akonadi::ResourceBasePrivate(0x5571174e8250) e "3 ChangeReplay " 0.108 debug: Akonadi::ResourceBasePrivate::changeProcessed[/home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:150]: Akonadi::ResourceBasePrivate(0x5571174e8250) d "6 Invalid (no task) " backtrace to this call: Akonadi::ResourceBasePrivate::changeProcessed() /home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:136 Akonadi::AgentBasePrivate::collectionChanged(Akonadi::Collection const&) /home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/agentbase.cpp:713 Akonadi::ResourceBasePrivate::collectionChanged(Akonadi::Collection const&) /home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:397 Akonadi::ResourceBasePrivate::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/milian/projects/kf5/build/kde/pim/akonadi/src/agentbase/KF5AkonadiAgentBase_autogen/include/resourcebase.moc:174 then directly after: 0.110 debug: Akonadi::ResourceBasePrivate::changeCommittedResult[/home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:814]: ->changeProcessed 0.110 debug: Akonadi::ResourceBasePrivate::changeProcessed[/home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:125]: Akonadi::ResourceBasePrivate(0x5571174e8250) QObject(0x0) "5 SyncCollectionTree " with bt: Akonadi::ResourceBasePrivate::changeProcessed() /home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:136 Akonadi::ResourceBasePrivate::changeCommittedResult(KJob*) /home/milian/projects/kf5/src/kde/pim/akonadi/src/agentbase/resourcebase.cpp:816 (discriminator 4) Akonadi::ResourceBase::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/milian/projects/kf5/build/kde/pim/akonadi/src/agentbase/KF5AkonadiAgentBase_autogen/include/moc_resourcebase.cpp:309 Created attachment 119035 [details]
Patch for Akonadi
Hi Milian,
could you try with this patch? It appears that SyncCollectionTree here is just a victim of another bug triggered by the previous ChangeReply for collection modification.
@Dan: works for me, thanks a lot! Please commit :) Git commit 116ee0a56736b1bd4a9343e5cc71a2bea2a2482b by Daniel Vrátil. Committed on 26/03/2019 at 09:24. Pushed by dvratil into branch 'master'. Fix handling of collectionChanged() in AgentBase Since both overloads get called by Monitor, the first one would realize the second one is implemented and instead of ignoring the change it would call changeProcessed(). When the second overload gets called and dispatches an actual task, when the task finished and called changeProcessed(), it had effectively skipped a task, breaking the delicate Resource state machine FIXED-IN: 5.11 M +1 -1 src/agentbase/agentbase.cpp https://commits.kde.org/akonadi/116ee0a56736b1bd4a9343e5cc71a2bea2a2482b Git commit 4c98f59e21a524fc6feec901dd3ac0890d12d67d by Daniel Vrátil. Committed on 26/03/2019 at 09:26. Pushed by dvratil into branch 'Applications/19.04'. Fix handling of collectionChanged() in AgentBase Since both overloads get called by Monitor, the first one would realize the second one is implemented and instead of ignoring the change it would call changeProcessed(). When the second overload gets called and dispatches an actual task, when the task finished and called changeProcessed(), it had effectively skipped a task, breaking the delicate Resource state machine FIXED-IN: 5.11 M +1 -1 src/agentbase/agentbase.cpp https://commits.kde.org/akonadi/4c98f59e21a524fc6feec901dd3ac0890d12d67d |