https://bugs.kde.org/show_bug.cgi?id=423651
Igor Kushnir <igor...@gmail.com> 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 <igor...@gmail.com> --- 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 -0 plugins/cmake/testing/ctestfindjob.cpp https://invent.kde.org/kdevelop/kdevelop/commit/ae9f45ae7451a33fe9fce66612140f9a13193bd6 -- You are receiving this mail because: You are watching all bug changes.