Summary: | Crash when closing digikam during face recognition | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | Jan Essert <netz> |
Component: | Faces-Recognition | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | caulier.gilles |
Priority: | NOR | ||
Version: | 2.6.0 | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/digikam/6af91def84f71b69c4b1767db23bb8ff34395d3d | Version Fixed In: | 4.0.0 |
Description
Jan Essert
2012-06-30 20:55:11 UTC
Thread is running during destruction, crash occurs when a singleton is accessed which was already destroyed. We need to cancel + wait for the thread in the shutdown process. Git commit 4268f3bb05b21b512aa6e9de79d048520db1a845 by Marcel Wiesweg. Committed on 01/07/2012 at 14:18. Pushed by mwiesweg into branch 'master'. Add a wait() method to FacePipeline which is called on destruction and waits for all dependent threads. M +8 -0 libs/threads/parallelworkers.cpp M +2 -0 libs/threads/parallelworkers.h M +44 -0 utilities/facedetection/facepipeline.cpp M +2 -0 utilities/facedetection/facepipeline_p.h http://commits.kde.org/digikam/4268f3bb05b21b512aa6e9de79d048520db1a845 Gilles, FaceDetector is a maintenance tool. Is there code which, at shutdown from DigikamApp::~DigikamApp() and similiar to FileActionMngr::requestShutDown(), waits for all remaining active maintenance tasks and then deletes the objects? Marcel, Nothing is implemented to kill all maintenance tools properly at shutdown if something is under process. I forget to do it. I just take a look in DigikamApp and MaintenanceMngr destructors. Gilles Caulier Git commit 6af91def84f71b69c4b1767db23bb8ff34395d3d by Gilles Caulier. Committed on 28/10/2013 at 20:38. Pushed by cgilles into branch 'master'. add eventloop in ProgressManager to wait progressitem deletion is complete when slotAbortAll() is called. By this way, if user close digiKam when progressitems are currently running in background (as some maintenance tools), this prevent violent crash due to close remain active objects in memory. FIXED-IN: 4.0.0 M +14 -1 libs/progressmanager/progressmanager.cpp M +1 -0 libs/progressmanager/progressmanager.h M +9 -2 libs/progressmanager/progressview.cpp M +4 -0 libs/progressmanager/progressview.h http://commits.kde.org/digikam/6af91def84f71b69c4b1767db23bb8ff34395d3d |