https://bugs.kde.org/show_bug.cgi?id=329246
Igor Kushnir <igor...@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Latest Commit| |https://invent.kde.org/kdev | |elop/kdevelop/commit/103ab0 | |be11f659cf52d86a5c01d749b70 | |989091b Resolution|--- |FIXED Version Fixed In| |5.6.1 --- Comment #6 from Igor Kushnir <igor...@gmail.com> --- Git commit 103ab0be11f659cf52d86a5c01d749b70989091b by Igor Kushnir. Committed on 07/10/2020 at 10:26. Pushed by igorkushnir into branch '5.6'. Kill CTestFindJob when its project is destroyed When a user closes a project while its associated CTestFindJob is still working, the job is not notified and keeps running. After that, when BackgroundParser eventually parses all documents requested by the job, the job calls TestController::addTestSuite(). Inside this call the CTestSuite::project() pointer is dereferenced in TestView::addTestSuite() => TestView::itemForProject(), which causes a segmentation fault. Ideally all associated CTestFindJob-s should be killed just before or just after a project is closed to revert their no longer useful requests to BackgroundParser as soon as possible. However, reliably detecting that the project is no longer open is not straightforward, especially if the project opening is aborted or the project is closed even before a CTestFindJob is created. My implementation of such a proper fix is intertwined with several other CTest-, TestController- and TestView-related fixes. The combined fix will be so large that it won't fit into the 5.6 branch. So this commit implements a simple temporary workaround for the fairly easy to trigger crash: check if the project is destroyed in CTestFindJob::updateReady() and kill the job if this is the case. FIXED-IN: 5.6.1 M +7 -0 plugins/cmake/testing/ctestfindjob.cpp M +2 -1 plugins/cmake/testing/ctestsuite.h https://invent.kde.org/kdevelop/kdevelop/commit/103ab0be11f659cf52d86a5c01d749b70989091b -- You are receiving this mail because: You are watching all bug changes.