[Akonadi] [Bug 374734] Akonadiserver Crashes While Deleting Email

Daniel Vrátil bugzilla_noreply at kde.org
Fri Feb 24 16:28:47 GMT 2017


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

Daniel Vrátil <dvratil at kde.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|CONFIRMED                   |RESOLVED
      Latest Commit|https://commits.kde.org/ako |https://commits.kde.org/ako
                   |nadi/5219f770b998aad16a3d51 |nadi/1593c17da9cbdc1483541e
                   |bbd4f4c7ceb8b143c9          |1e7d7630f3c91f8208

--- Comment #29 from Daniel Vrátil <dvratil at kde.org> ---
Git commit 1593c17da9cbdc1483541e1e7d7630f3c91f8208 by Daniel Vrátil.
Committed on 24/02/2017 at 16:22.
Pushed by dvratil into branch 'Applications/16.12'.

Fix crash when Connection is closed while ItemRetriever is running

ItemRetriever::exec() runs a nested QEventLoop. If the parent
Connection is terminated while the event loop is running, the
delayed AkThread::quit() invocation is executed and the thread
is destroyed, while technically there is still execution going
on. To workaround that issue we don't destroy the thread in
Connection::quit() if we detect a nested QEventLoop but instead
we just notify the event loop to quit and destroy the thread
later when execution returns back to ItemRetriever::slotNewData().

This fixes a crash in QPSQLQuery, which was dereferencing a
QPSQLDriver after the driver has been deleted as the thread was
destroyed and avoids more of random crashes due to the Connection
being virtually deleted from its own nested event loop.
FIXED-IN: 5.4.3

M  +24   -1    src/server/connection.cpp
M  +3    -0    src/server/connection.h
M  +1    -0    src/server/storage/datastore.cpp
M  +2    -0    src/server/storage/itemretriever.cpp

https://commits.kde.org/akonadi/1593c17da9cbdc1483541e1e7d7630f3c91f8208

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the Kdepim-bugs mailing list