https://bugs.kde.org/show_bug.cgi?id=423651
Igor Kushnir changed:
What|Removed |Added
Status|ASSIGNED|RESOLVED
Resolution|--- |FIXED
Latest Commit||https://invent.kde.org/kdev
||elop/kdevelop/commit/ae9f45
||ae7451a33fe9fce66612140f9a1
||3193bd6
Version Fixed In||5.6.1
--- Comment #5 from Igor Kushnir ---
Git commit ae9f45ae7451a33fe9fce66612140f9a13193bd6 by Igor Kushnir.
Committed on 07/10/2020 at 10:26.
Pushed by igorkushnir into branch '5.6'.
Early-return from CTestFindJob::updateReady() if the job is finished
When a user exits KDevelop while a CTestFindJob is still working, the
job is killed from RunController::cleanup() and its KJob parent calls
deleteLater(). But the killed job can be still not destroyed after
DUChain::shutdown() is called, which results in a crash if
CTestFindJob::updateReady() is then invoked via Qt::QueuedConnection.
Note that ~ParseJob() queues calls to CTestFindJob::updateReady(),
which can then be invoked after DUChain::shutdown(), if ParseJob-s are
running when the user exits KDevelop and no event loop is entered in the
time between the ~ParseJob() and DUChain::shutdown() calls (sometimes
the optional QCoreApplication::processEvents() call in
BackgroundParser::waitForIdle() intervenes and prevents the crash).
Core::cleanup() calls backgroundParser()->waitForIdle(), which ensures
that all parse jobs finish, are destroyed and queue "updateReady" calls.
FIXED-IN: 5.6.1
M +10 -0plugins/cmake/testing/ctestfindjob.cpp
https://invent.kde.org/kdevelop/kdevelop/commit/ae9f45ae7451a33fe9fce66612140f9a13193bd6
--
You are receiving this mail because:
You are watching all bug changes.