| Summary: | Creating a KIconLoader instance causes application to wait at application exit | ||
|---|---|---|---|
| Product: | [Frameworks and Libraries] frameworks-kiconthemes | Reporter: | Hernan Martinez <hernan.c.martinez> |
| Component: | general | Assignee: | Christoph Feck <cfeck> |
| Status: | REPORTED --- | ||
| Severity: | major | CC: | kdelibs-bugs-null, nathbappai |
| Priority: | NOR | ||
| Version First Reported In: | 6.0.0 | ||
| Target Milestone: | --- | ||
| Platform: | Microsoft Windows | ||
| OS: | Microsoft Windows | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: | Minimum code to repro | ||
Code to reproduce:
```
#include <QApplication>
#include <QWidget>
#include <KIconTheme>
int main(int arc, char *argv[])
{
QApplication app(arc, argv);
KIconLoader loader;
QWidget window;
window.resize(250, 150);
window.setWindowTitle("Close this window");
window.show();
return app.exec();
}
```
I just build all deps and KIconThemes with MINGW64 instead of UCRT64, the issue with the same stack trace persists. This may not be an issue in KDE. The issue was first reported here https://bugreports.qt.io/browse/QTBUG-84498 Then this patch fixed the issue https://invent.kde.org/packaging/craft-blueprints-kde/-/blob/06d9723560fbbf4b02a911206a1f4b077f82cd7f/libs/qt5/qtbase/qdbus-manager-quit-5.7.patch Then msys2 imported that patch for qt5-base here https://github.com/msys2/MINGW-packages/commit/f6eacbcdd74cc836294e8e7337c5d3cf772a3117 Understood At least now, with the repro code, one can reproduce the issue 100% of the time. |
Created attachment 167231 [details] Minimum code to repro SUMMARY I found this with Kdenlive when compiling it in MSYS2's UCRT64 in Windows. But attached there's minimum reproducible code. The application at exit displays the following message on the console before waiting indefinitely: `QEventDispatcherWin32::wakeUp: Failed to post a message (Invalid window handle.)` I don't know if that message is related to the issue. The main thread stack when the application waits indefinitely: ``` ntdll.dll!ntdll!ZwWaitForAlertByThreadId (Unknown Source:0) ntdll.dll!ntdll!TpWorkOnBehalfClearTicket (Unknown Source:0) ntdll.dll!ntdll!RtlDllShutdownInProgress (Unknown Source:0) ntdll.dll!ntdll!RtlWaitOnAddress (Unknown Source:0) KernelBase.dll!WaitOnAddress (Unknown Source:0) Qt6Core.dll![Unknown/Just-In-Time compiled code] (Unknown Source:0) libKF6IconThemes.dll!KIconLoaderGlobalData::~KIconLoaderGlobalData(KIconLoaderGlobalData * const this) (x:\Github\MINGW-packages\mingw-w64-kiconthemes\src\kiconthemes-6.0.0\src\kiconloader.cpp:146) libKF6IconThemes.dll!QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS_s_globalData>::~Holder(QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS_s_globalData> * const this) (c:\msys64\ucrt64\include\qt6\QtCore\qglobalstatic.h:48) libKF6IconThemes.dll!__tcf_2() (c:\msys64\ucrt64\include\qt6\QtCore\qglobalstatic.h:91) ucrtbase.dll!ucrtbase!.sys_nerr (Unknown Source:0) ucrtbase.dll!ucrtbase!_o_free (Unknown Source:0) ucrtbase.dll!ucrtbase!_execute_onexit_table (Unknown Source:0) libKF6IconThemes.dll!_CRT_INIT(HANDLE hDllHandle, HANDLE hDllHandle@entry, DWORD dwReason, DWORD dwReason@entry, LPVOID lpreserved, LPVOID lpreserved@entry) (c:\M\B\src\mingw-w64\mingw-w64-crt\crt\crtdll.c:130) libKF6IconThemes.dll!__DllMainCRTStartup(HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved) (c:\M\B\src\mingw-w64\mingw-w64-crt\crt\crtdll.c:196) ntdll.dll!ntdll!RtlActivateActivationContextUnsafeFast (Unknown Source:0) ntdll.dll!ntdll!LdrShutdownProcess (Unknown Source:0) ntdll.dll!ntdll!RtlExitUserProcess (Unknown Source:0) kernel32.dll!KERNEL32!ExitProcess (Unknown Source:0) ucrtbase.dll!ucrtbase!exit (Unknown Source:0) ucrtbase.dll!ucrtbase!exit (Unknown Source:0) __tmainCRTStartup() (c:\M\B\src\mingw-w64\mingw-w64-crt\crt\crtexe.c:269) mainCRTStartup() (c:\M\B\src\mingw-w64\mingw-w64-crt\crt\crtexe.c:188) ``` STEPS TO REPRODUCE 1. Build the attached source code 2. Run application and close the main window OBSERVED RESULT Application does not exit. EXPECTED RESULT Application exits. Package Type: Unknown/Default Qt: 6.6.2 (built against 6.6.2 x86_64-little_endian-llp64) Frameworks: 6.0.0 System: Windows 11 Version 23H2 Kernel: winnt 10.0.22631 CPU: x86_64 Windowing System: windows