Summary: | Segfault in ProjectController::reparseProject()=>...=>RunController::checkState() when exiting KDevelop soon after a large project is opened | ||
---|---|---|---|
Product: | [Applications] kdevelop | Reporter: | Igor Kushnir <igorkuo> |
Component: | general | Assignee: | Igor Kushnir <igorkuo> |
Status: | RESOLVED FIXED | ||
Severity: | crash | ||
Priority: | NOR | ||
Version: | git master | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/kdevelop/kdevelop/commit/89077c7c9d97ab98fe832958afb5ab24d0dbae44 | Version Fixed In: | 5.6.1 |
Description
Igor Kushnir
2020-10-06 12:16:51 UTC
Git commit 89077c7c9d97ab98fe832958afb5ab24d0dbae44 by Igor Kushnir. Committed on 07/10/2020 at 10:11. Pushed by igorkushnir into branch '5.6'. Don't process events in ParseProjectJob::start() >From KJob::start() documentation: Warning: Never implement any synchronous workload in this method. This method should just trigger the job startup, not do any work itself. It is expected to be non-blocking. When a user exits KDevelop in the ParseProjectJob::start()'s nested event loop, RunController may be destroyed in the time between `job->start();` and `checkState();` statements in RunController::registerJob(). The result is a segmentation fault in RunController::checkState(). FIXED-IN: 5.6.1 M +9 -0 kdevplatform/language/backgroundparser/parseprojectjob.cpp M +1 -0 kdevplatform/language/backgroundparser/parseprojectjob.h https://invent.kde.org/kdevelop/kdevelop/commit/89077c7c9d97ab98fe832958afb5ab24d0dbae44 |