Revision c69d27a...

Go back to digest for 15th December 2013

Bug Fixes in KDE-PIM

Christian Mollekopf committed changes in [kdepim-runtime] resources/imap/imapresource.cpp:

Fix some more potential sources for crashes in the imap resource.

* tasks should be always killed first, in order to avoid them getting signaled by the dropped session resulting form the sessionpool disconnect.
* always delete the tasks immediately, otherwise callbacks can occur to tasks that are already killed and have an invalid state.
* always stop the idlemanager first, and only delete it if it is also available

One particular case that I observed, was a RetrieveItemTask during which the
SessionPool was disconnected while the KIMAP::ItemFetchJob was running,
resulting in the RetrieveItemTask trying to deliver an item while it was already canceled.
This triggered: ASSERT: "d->scheduler->currentTask().type == ResourceScheduler::FetchItem"
Of course we're dealing with the more general case that a ResourceTask must not be called again,
once it's state becomes invalid.

File Changes

Modified 1 files
  • resources/imap/imapresource.cpp
1 files changed in total