Details
-
Bug
-
Resolution: Fixed
-
Not Evaluated
-
5.14.2
-
None
-
Windows 10
-
-
1eeabc6652220ff263eaa63872cd52c1693cbf69 (qtbase/5.15)
Description
When changing regional setting in windows, we have some issues if the decimal symbol and digit grouping symbol are the same.
- In English language systems if both symbols are coma it will start and hang.
- In Dutch language systems if both symbols are dot it will start and hang.
In Qt there is a warning:
qtbase\src\corelib\text\qlocale.cpp:767 qWarning("System-supplied decimal and grouping character are both 0x%hx", group);
And in this case its the warning that causes the hang (a mutex can't be locked twice), it has to do with creating logging categories.
callstack:
ntdll.dll!NtWaitForAlertByThreadId() Unknown ntdll.dll!RtlSleepConditionVariableCS() Unknown KernelBase.dll!SleepConditionVariableCS() Unknown Qt5Core.dll!_Init_thread_header(int * pOnce) Line 212 C++ > [Inline Frame] Qt5Core.dll!?A0x4d6f832f::Q_QGS_qt_library_settings::innerFunction() Line 98 C++ [Inline Frame] Qt5Core.dll!QGlobalStatic<QLibrarySettings,&`anonymous namespace'::Q_QGS_qt_library_settings::innerFunction,&A0x4d6f832f::Q_QGS_qt_library_settings::guard>::operator()() Line 136 C++ Qt5Core.dll!QLibraryInfoPrivate::configuration() Line 124 C++ Qt5Core.dll!QLibraryInfo::location(QLibraryInfo::LibraryLocation loc) Line 722 C++ Qt5Core.dll!QLoggingRegistry::initializeRules() Line 332 C++ [Inline Frame] Qt5Core.dll!QLoggingRegistry::{ctor}() Line 281 C++ [Inline Frame] Qt5Core.dll!`anonymous-namespace'::Q_QGS_qtLoggingRegistry::innerFunction::__l2::Holder::{ctor}() Line 63 C++ [Inline Frame] Qt5Core.dll!?A0x5679da2e::Q_QGS_qtLoggingRegistry::innerFunction() Line 63 C++ [Inline Frame] Qt5Core.dll!QGlobalStatic<QLoggingRegistry,&`anonymous namespace'::Q_QGS_qtLoggingRegistry::innerFunction,&A0x5679da2e::Q_QGS_qtLoggingRegistry::guard>::operator()() Line 136 C++ Qt5Core.dll!QLoggingRegistry::instance() Line 432 C++ [Inline Frame] Qt5Core.dll!QLoggingCategory::init(const char *) Line 240 C++ [Inline Frame] Qt5Core.dll!QLoggingCategory::{ctor}(const char *) Line 211 C++ [Inline Frame] Qt5Core.dll!`anonymous-namespace'::Q_QGS_qtDefaultCategory::innerFunction::__l2::Holder::{ctor}() Line 47 C++ [Inline Frame] Qt5Core.dll!?A0xc13be24a::Q_QGS_qtDefaultCategory::innerFunction() Line 47 C++ [Inline Frame] Qt5Core.dll!QGlobalStatic<QLoggingCategory,&`anonymous namespace'::Q_QGS_qtDefaultCategory::innerFunction,&A0xc13be24a::Q_QGS_qtDefaultCategory::guard>::operator()() Line 136 C++ Qt5Core.dll!QLoggingCategory::defaultCategory() Line 376 C++ Qt5Core.dll!qt_message_print(QtMsgType msgType, const QMessageLogContext & context, const QString & message) Line 1828 C++ Qt5Core.dll!qt_message(QtMsgType msgType, const QMessageLogContext & context, const char * msg, char * ap) Line 379 C++ Qt5Core.dll!QMessageLogger::warning(const char * msg, ...) Line 656 C++ Qt5Core.dll!updateSystemPrivate() Line 770 C++ Qt5Core.dll!systemData() Line 802 C++ [Inline Frame] Qt5Core.dll!defaultData() Line 814 C++ [Inline Frame] Qt5Core.dll!`anonymous-namespace'::Q_QGS_defaultLocalePrivate::innerFunction::__l2::Holder::{ctor}() Line 865 C++ Qt5Core.dll!`anonymous namespace'::Q_QGS_defaultLocalePrivate::innerFunction() Line 865 C++ [Inline Frame] Qt5Core.dll!QGlobalStatic<QSharedDataPointer<QLocalePrivate>,&`anonymous namespace'::Q_QGS_defaultLocalePrivate::innerFunction,&A0x0cee378e::Q_QGS_defaultLocalePrivate::guard>::operator*() Line 145 C++ Qt5Core.dll!QLocale::QLocale() Line 954 C++ [Inline Frame] Qt5Core.dll!QResourceFileEnginePrivate::{ctor}() Line 1331 C++ Qt5Core.dll!QResourceFileEngine::QResourceFileEngine(const QString & file) Line 1360 C++ Qt5Core.dll!_q_resolveEntryAndCreateLegacyEngine_recursive(QFileSystemEntry & entry, QFileSystemMetaData & data, QAbstractFileEngine * & engine, bool resolvingEntry) Line 150 C++ Qt5Core.dll!QFileSystemEngine::resolveEntryAndCreateLegacyEngine(QFileSystemEntry & entry, QFileSystemMetaData & data) Line 196 C++ Qt5Core.dll!QFileInfo::exists(const QString & file) Line 712 C++ Qt5Core.dll!QLibraryInfoPrivate::findConfiguration() Line 191 C++ Qt5Core.dll!QLibrarySettings::load() Line 147 C++ [Inline Frame] Qt5Core.dll!QLibrarySettings::{ctor}() Line 141 C++ > [Inline Frame] Qt5Core.dll!`anonymous-namespace'::Q_QGS_qt_library_settings::innerFunction::__l2::Holder::{ctor}() Line 98 C++ [Inline Frame] Qt5Core.dll!?A0x4d6f832f::Q_QGS_qt_library_settings::innerFunction() Line 98 C++ [Inline Frame] Qt5Core.dll!QGlobalStatic<QLibrarySettings,&`anonymous namespace'::Q_QGS_qt_library_settings::innerFunction,&A0x4d6f832f::Q_QGS_qt_library_settings::guard>::operator()() Line 136 C++ Qt5Core.dll!QLibraryInfoPrivate::configuration() Line 124 C++ Qt5Core.dll!QLibraryInfo::location(QLibraryInfo::LibraryLocation loc) Line 722 C++ Qt5Core.dll!QCoreApplication::libraryPathsLocked() Line 2730 C++ Qt5Core.dll!QCoreApplication::libraryPaths() Line 2679 C++ Qt5Core.dll!QFactoryLoader::update() Line 188 C++ Qt5Core.dll!QFactoryLoader::QFactoryLoader(const char * iid, const QString & suffix, Qt::CaseSensitivity cs) Line 355 C++ [Inline Frame] Qt5Gui.dll!`anonymous-namespace'::Q_QGS_loader::innerFunction::__l2::Holder::{ctor}() Line 51 C++ [Inline Frame] Qt5Gui.dll!?A0x1be0468c::Q_QGS_loader::innerFunction() Line 51 C++ Qt5Gui.dll!QGlobalStatic<QFactoryLoader,&`anonymous namespace'::Q_QGS_loader::innerFunction,&A0x1be0468c::Q_QGS_loader::guard>::operator()() Line 136 C++ Qt5Gui.dll!QPlatformIntegrationFactory::keys(const QString & platformPluginPath) Line 100 C++ Qt5Gui.dll!init_platform(const QString & pluginNamesWithArguments, const QString & platformPluginPath, const QString & platformThemeName, int & argc, char * * argv) Line 1209 C++ Qt5Gui.dll!QGuiApplicationPrivate::createPlatformIntegration() Line 1476 C++ Qt5Gui.dll!QGuiApplicationPrivate::createEventDispatcher() Line 1493 C++ Qt5Core.dll!QCoreApplicationPrivate::init() Line 848 C++ Qt5Gui.dll!QGuiApplicationPrivate::init() Line 1524 C++ Qt5Gui.dll!QGuiApplication::QGuiApplication(int & argc, char * * argv, int flags) Line 663 C++ Qastor64.exe!main(int argc, char * * argv) Line 223 C++ Qastor64.exe!WinMain(HINSTANCE__ * __formal, HINSTANCE__ * __formal, char * __formal, int __formal) Line 97 C++ [Inline Frame] Qastor64.exe!invoke_main() Line 102 C++ Qastor64.exe!__scrt_common_main_seh() Line 288 C++ kernel32.dll!BaseThreadInitThunk() Unknown ntdll.dll!RtlUserThreadStart() Unknown