Bug 498113 - On Windows 10, digiKam background process remains running after app close
Summary: On Windows 10, digiKam background process remains running after app close
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Bundle-Windows (other bugs)
Version First Reported In: 8.6.0
Platform: Microsoft Windows Microsoft Windows
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-01-01 08:18 UTC by Roland
Modified: 2025-02-06 11:25 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 8.6.0
Sentry Crash Report:


Attachments
Debug log file (47.50 KB, text/plain)
2025-01-01 19:51 UTC, Roland
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Roland 2025-01-01 08:18:44 UTC
SUMMARY
With the past several dev builds- on Windows 10 Pro, closing the application via the standard bar 'x' control closes the GUI, but the digiKam.exe process remains loaded with memory allocated. Restarting and closing Digikam spawns a new instance of digiKam.exe, and this repeats. A manual kill process or a logout/login is required to close these background processes.

STEPS TO REPRODUCE
1. Start the application 
2. Close via the X control button


OBSERVED RESULT
In Task Manager, 1 or more instances of digiKam.exe remain running. Aside from this being a memory leak/resource waste, it will interrupt the updater program, where presumably an attempt to delete dikiKam.exe throws an internal error as Windows reports the process as locked/active.

EXPECTED RESULT
digiKam.exe should close gracefully, and there should be no instance of the background process active if the GUI is closed. 

SOFTWARE/OS VERSIONS
Windows:  10
macOS: 
(available in the Info Center app, or by running `kinfo` in a terminal window)
Linux/KDE Plasma: 
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 6.7.2

ADDITIONAL INFORMATION
Comment 1 Maik Qualmann 2025-01-01 14:31:04 UTC
I tested this just a few days ago to see if digiKam closes correctly under Windows. I could only reproduce the problem with the Qt5 version, but not with the Qt6 version.
Can you please create a log with DebugView?
Download DebugView from Microsoft. In the digiKam settings under Miscellaneous->System, activate the internal debug logging and close digiKam. Start DebugView and start digiKam and close it again. Post the log in the DebugView window.

Maik
Comment 2 Roland 2025-01-01 19:51:46 UTC
Created attachment 177022 [details]
Debug log file

Hi Maik- attached is the debug log per your instructions. If anything else is needed, please let me know.
Rob
Comment 3 Maik Qualmann 2025-01-01 20:02:03 UTC
Thanks for the log. This message after the end is strange and it looks like QWebEngine is being initialized again. This might give us a clue.

WARNING: QApplication was not created in the main() thread.

QtWebEngine::initialize() called with QCoreApplication object already created and should be call before.

Maik
Comment 4 Maik Qualmann 2025-01-01 20:11:32 UTC
Git commit 2752b9e0c229e2594c141f54d754a6e5f3485966 by Maik Qualmann.
Committed on 01/01/2025 at 20:10.
Pushed by mqualmann into branch 'master'.

disable for a test this signal/slot connection

M  +2    -2    core/app/main/main.cpp

https://invent.kde.org/graphics/digikam/-/commit/2752b9e0c229e2594c141f54d754a6e5f3485966
Comment 5 Roland 2025-01-01 20:24:56 UTC
I saw that also. I thought perhaps it was an effort to spawn a supervisor thread for managing updates etc, but on looking at it- it seems more like a reinit where the legacy process is treated as owned by another app. 

I dont know if the push referenced in the bug report is intended to address this, or add some additional tracing capability. The newest build does not change the process replication problem, but its entirely possible that was an earlier push and the reference is to a commit that will be published later. If it requires some additional tracing etc, please just let me know0 happy to help if I can-

And Maik- Happy New Year!

Best
R
Comment 6 Maik Qualmann 2025-01-29 19:17:53 UTC
Git commit 68186969522b7c72f1704345a895f48b08876f6d by Maik Qualmann.
Committed on 29/01/2025 at 19:17.
Pushed by mqualmann into branch 'master'.

try to fix hanging global static classes on Windows

M  +2    -2    core/libs/dnnmodelmanager/dnnmodelmanager.cpp
M  +2    -2    core/libs/facesengine/recognition/faceclassifier.cpp
M  +2    -2    core/libs/facesengine/recognition/identityprovider.cpp
M  +2    -2    core/utilities/facemanagement/pipelines/edit/facepipelineedit.cpp

https://invent.kde.org/graphics/digikam/-/commit/68186969522b7c72f1704345a895f48b08876f6d
Comment 7 Maik Qualmann 2025-01-30 19:41:59 UTC
Git commit db89bfc47a0df1ac26e224d592741f59e643aa72 by Maik Qualmann.
Committed on 30/01/2025 at 19:40.
Pushed by mqualmann into branch 'master'.

delete IdentityProvider QThreadPool

M  +2    -0    core/libs/facesengine/recognition/identityprovider.cpp

https://invent.kde.org/graphics/digikam/-/commit/db89bfc47a0df1ac26e224d592741f59e643aa72
Comment 8 Maik Qualmann 2025-02-03 07:20:04 UTC
Git commit 8cb37df9654046f206eccf2680efebc1aff3a279 by Maik Qualmann.
Committed on 03/02/2025 at 07:19.
Pushed by mqualmann into branch 'master'.

add test debug

M  +2    -0    core/libs/facesengine/recognition/recognitiontrainingupdatequeue.cpp

https://invent.kde.org/graphics/digikam/-/commit/8cb37df9654046f206eccf2680efebc1aff3a279
Comment 9 Maik Qualmann 2025-02-04 17:37:33 UTC
Git commit afb3e243e06edc4fad56c9715da8b80b829250d9 by Maik Qualmann.
Committed on 04/02/2025 at 17:36.
Pushed by mqualmann into branch 'master'.

global static class must be derived from QObject

M  +2    -0    core/libs/facesengine/recognition/identityprovider.cpp
M  +7    -1    core/libs/facesengine/recognition/identityprovider.h

https://invent.kde.org/graphics/digikam/-/commit/afb3e243e06edc4fad56c9715da8b80b829250d9
Comment 10 Maik Qualmann 2025-02-04 18:11:26 UTC
Git commit 2803d088cdd7f99950dc261e1bc3db52f815566c by Maik Qualmann.
Committed on 04/02/2025 at 18:10.
Pushed by mqualmann into branch 'master'.

global static class FaceClassifier must be derived from QObject

M  +6    -22   core/libs/facesengine/recognition/faceclassifier.cpp
M  +1    -1    core/libs/facesengine/recognition/faceclassifier.h
M  +2    -0    core/libs/mlfoundation/mlclassifierfoundation.cpp
M  +2    -1    core/libs/mlfoundation/mlclassifierfoundation.h

https://invent.kde.org/graphics/digikam/-/commit/2803d088cdd7f99950dc261e1bc3db52f815566c
Comment 11 Maik Qualmann 2025-02-05 19:27:13 UTC
Git commit ef7d49a775ec13b123adcde90833211307ae8ce4 by Maik Qualmann.
Committed on 05/02/2025 at 19:26.
Pushed by mqualmann into branch 'master'.

add test debug to check deconstruction of global static classes

M  +1    -0    core/libs/database/models/itemsortcollator.cpp
M  +1    -0    core/libs/facesengine/recognition/faceclassifier.cpp
M  +2    -0    core/libs/facesengine/recognition/identityprovider.cpp
M  +1    -1    core/libs/facesengine/recognition/recognitiontrainingupdatequeue.cpp
M  +1    -0    core/libs/metadataengine/exiftool/exiftoolprocess.cpp
M  +1    -1    core/libs/threadimageio/thumb/thumbnailloadthread.cpp

https://invent.kde.org/graphics/digikam/-/commit/ef7d49a775ec13b123adcde90833211307ae8ce4
Comment 12 Maik Qualmann 2025-02-06 11:24:44 UTC
Git commit f00a2a59b6b6b21783746be805a24a4edc5600f6 by Maik Qualmann.
Committed on 06/02/2025 at 11:23.
Pushed by mqualmann into branch 'master'.

remove test debug
FIXED-IN: 8.6.0

M  +1    -1    NEWS
M  +0    -2    core/app/main/main.cpp
M  +0    -1    core/libs/database/models/itemsortcollator.cpp
M  +0    -1    core/libs/facesengine/recognition/faceclassifier.cpp
M  +0    -2    core/libs/facesengine/recognition/identityprovider.cpp
M  +0    -2    core/libs/facesengine/recognition/recognitiontrainingupdatequeue.cpp
M  +0    -1    core/libs/metadataengine/exiftool/exiftoolprocess.cpp
M  +1    -1    core/libs/threadimageio/thumb/thumbnailloadthread.cpp

https://invent.kde.org/graphics/digikam/-/commit/f00a2a59b6b6b21783746be805a24a4edc5600f6
Comment 13 Maik Qualmann 2025-02-06 11:25:57 UTC
Finial fixed with this commit:

https://invent.kde.org/graphics/digikam/-/commit/ca25e4dedbcc094688a4e2022bfe55165e1e1a5f

Maik