Summary: | Crash when project is closed before CTest evaluation finished | ||
---|---|---|---|
Product: | [Applications] kdevelop | Reporter: | Milian Wolff <mail> |
Component: | general | Assignee: | Igor Kushnir <igorkuo> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | aleixpol, igorkuo |
Priority: | NOR | Keywords: | drkonqi |
Version: | 4.6.60 | ||
Target Milestone: | --- | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/kdevelop/kdevelop/commit/103ab0be11f659cf52d86a5c01d749b70989091b | Version Fixed In: | 5.6.1 |
Description
Milian Wolff
2013-12-26 13:42:57 UTC
@Aleix: Ideas? Dear Bug Submitter, This bug has been stagnant for a long time. Could you help us out and re-test if the bug is valid in the latest version? I am setting the status to NEEDSINFO pending your response, please change the Status back to REPORTED when you respond. Thank you for helping us make KDE software even better for everyone! Dear Bug Submitter, This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information as soon as possible and set the bug status as REPORTED. Due to regular bug tracker maintenance, if the bug is still in NEEDSINFO status with no change in 30 days the bug will be closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging If you have already provided the requested information, please mark the bug as REPORTED so that the KDE team knows that the bug is ready to be confirmed. Thank you for helping us make KDE software even better for everyone! This bug has been in NEEDSINFO status with no change for at least 30 days. The bug is now closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging Thank you for helping us make KDE software even better for everyone! Still happens in KDevelop 5.6.0. I have fixes for this and related crash in Bug 423651. Will create a merge request soon, after some testing. 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 |