| Summary: | digiKam 8.0.0 crashes after second invocation of G'MIC-Qt | ||
|---|---|---|---|
| Product: | [Applications] digikam | Reporter: | Tom Cunningham <twcunningham627> |
| Component: | Plugin-Editor-GmicQt | Assignee: | Digikam Developers <digikam-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | crash | CC: | caulier.gilles, David.Tschumperle |
| Priority: | NOR | ||
| Version First Reported In: | 8.0.0 | ||
| Target Milestone: | --- | ||
| Platform: | Microsoft Windows | ||
| OS: | Microsoft Windows | ||
| Latest Commit: | Version Fixed/Implemented In: | 8.0.0 | |
| Sentry Crash Report: | |||
|
Description
Tom Cunningham
2023-03-29 01:55:07 UTC
Which version of Windows installer did you use exactly ? (In reply to caulier.gilles from comment #1) > Which version of Windows installer did you use exactly ? digiKam-8.0.0-beta1-Win64.exe Please try the last pre-release build available here: https://files.kde.org/digikam/ I tried to run more than one time GMIC-Qt on the same image while the same Image Editor instance, and it do not crash. Gilles Caulier (In reply to caulier.gilles from comment #4) > I tried to run more than one time GMIC-Qt on the same image while the same > Image Editor instance, and it do not crash. > > Gilles Caulier It doesn't crash with digiKam-8.0.0-20230328T121705-Win64.exe. Gilles, apparently this crash happens for some Windows users, with latest version 3.2.2 of the G'MIC-Qt plug-in. It also happens for the 8bf, GIMP and Paint.NET versions of the plug-in. We are currently investigating, but this bug seems hard to spot on : it clearly does not happen for everyone (we have been unable to reproduce the bug here on our Win7 and Win10 VM, neither on Linux). So we are moving forward a little blindly. So far, there are no developers who have been able to reproduce the bug and give us a backtrace. The bug for the digiKam plugin is due to and older Windows build used by Tom, where i forget to delete the MainWindow instance between sessions. I'm sure that this Bugzilla has nothing to do with your crash. Note: I seen a crash when you Apply a filter (eg. B&W for ex), the host update the contents in background, and if you press OK too quickly, especially on slow computer, the plugin crash violently due to a race condition on internal image data. It's a special use case of course, but something must be improved here... I don't yet investigated. For your crash, perhaps there is a problem in your Windows build. This depend of the compiler and the settings passed, as the famous stack size. In case of digiKam version, we use MXE (MinGW based cross compiler). There is no Windows computer to build the Windows installer at all. My tips concerning this king of in-deep crash : * Static analyzers: - pass cppcheck and verify all points reported. - for Qt specific code there are 2 static analyzers developed by KDE team : Krazy and Clazy. I already found petrol in source code with this kind of parsers. - finally, the best is a closed source static analyzer, but usable with open source project : Coverity. With this one the reports are differents and also i found important entries. * Run-time analyzers: - clang ASAN memory analyzers are very powerful and do not slow down the application. - valgrind can be used also of course, but application is slow down more than 20 times at least. very powerful with unit-tests, but for a large application, it's complicated to use. Use Linux as first time test OS, validate your code, and cross compile for Windows, compiler will be the same, this will prevent to much difference. Using MSVC is just a waste of time as it introduce more variable in the stability. MSVC is at least 10 years in the pass compared to GCC and Clang. *Gmic* cross compile very well, i'm sure i do it. Just my experience for digiKam where we have more than 1.5 M lines of Qt code, that we maintain since 20 years now... I apply also this kind of CI in my office where we have plenty of Qt codes used in stressing RT data acquisitions environments (nuclear reactor !). My best Gilles LINKS: https://github.com/danmar/cppcheck https://github.com/mxe/mxe https://github.com/Krazy-collection/krazy https://github.com/KDE/clazy https://scan.coverity.com/ https://valgrind.org/ https://clang.llvm.org/docs/AddressSanitizer.html - We are using the MSYS64 toolchain (from MSYS2) for compiling G'MIC-Qt on Windows (g++ 12). - We already tried ASAN but it didn't report anything on Linux, and it refused to compile on Windows (it seems that ASAN is not available for Windows). - Same for valgrind (didn't report anything on Linux, does not exist for MSYS2 on Windows). - We used cppcheck, it found nothing related. This seems to be a bug that happens only for Windows (and probably not that often because we tried hard to make it happen on our Windows VM, with no luck). If only we could be able to reproduce the bug somewhere, that would be probably a matter of a few hours before we can fix the bug. |