[Kde-pim] Review Request 114995: Try to avoid another crash in the imap resource.
Christian Mollekopf
chrigi_1 at fastmail.fm
Mon Jan 13 00:20:52 GMT 2014
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/114995/
-----------------------------------------------------------
Review request for KDEPIM and Kevin Ottens.
Bugs: 319776
http://bugs.kde.org/show_bug.cgi?id=319776
Repository: kdepim-runtime
Description
-------
Try to avoid another crash in the imap resource.
This crash might have appeared when:
* KIMAP::LoginJob fails with connectionLost
* SessionPool::onLoginDone calls cancelSessionCreation
* the emit connectDone will hiddenly leave the function and
call IMAPResource::onConnectDone which again calls SessionPool::disconnect
thus potentially deleting all Sessions (although with deleteLater()).
* cancelSessionCreation later calls killSession again with the pointer
that is potentially already deleted using deleteLater from the call to
disconnect.
* The code finally crashes in killSession when calling QObject::disconnect on
the apparently invalid session pointer.
The analysis is based on the backtrace in 322440 (duplicate of 319776).
Note that this analysis makes only sense if the deleteLater was actually
executed for some reason (we somehow entered the eventloop),
and that I never managed to write a testcase reproducing the issue.
Since I'm out of ideas I try anyways, also, code that leaves the function
in the middle of the function due to signals gives me headaches.
BUG: 319776
Diffs
-----
resources/imap/sessionpool.cpp ad1c9aee2fd095524563af0fe9de31ab7942298e
Diff: https://git.reviewboard.kde.org/r/114995/diff/
Testing
-------
Doesn't seem to brake anything, tests still pass.
Thanks,
Christian Mollekopf
_______________________________________________
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