https://bugs.documentfoundation.org/show_bug.cgi?id=174060
Bug ID: 174060
Summary: LibreOffice hangs on startup ("Not Responding") in
Windows 11 Insider (Build 26100+) with Turkish system
locale due to std::runtime_error("bad locale name") in
Boost.Locale
Product: LibreOffice
Version: 26.8.1.1 release
Hardware: x86-64 (AMD64)
OS: Windows (All)
Status: UNCONFIRMED
Severity: normal
Priority: medium
Component: Localization
Assignee: [email protected]
Reporter: [email protected]
1. Description:
When launching LibreOffice Writer or opening any .odt file on Windows 11
Insider (Build 26100/26300+) where the Windows display/system format is set to
Turkish, LibreOffice hangs indefinitely at a blank window with "(Not
Responding)". Reinstalling or clearing user profiles does not resolve the
issue.
2. Root Cause Analysis (Disassembly & Memory Dump Verification):
- Windows 11 NLS Update: Windows 11 Build 26100+ updated the official English
country name in the Win32 NLS database from "Turkey" to "Türkiye"
(LOCALE_SENGLISHCOUNTRYNAME = 0x1002).
- Boost.Locale String Generation: During startup, boost::locale Win32 generator
inside mergedlo.dll queries:
* GetLocaleInfoA(lcid, LOCALE_SENGLISHLANGUAGENAME) -> "Turkish"
* GetLocaleInfoA(lcid, LOCALE_SENGLISHCOUNTRYNAME) -> "Türkiye"
It concatenates them into "Turkish_Türkiye".
- UCRT Rejection & C++ Exception: Because soffice.bin has
<activeCodePage>UTF-8</activeCodePage> enabled in its application manifest,
Microsoft UCRT (ucrtbase.dll _create_locale) fails to parse the non-ASCII
character 'ü' (\xc3\xbc) in "Turkish_Türkiye" and returns NULL.
msvcp140.dll immediately throws an unhandled C++ exception:
std::runtime_error("bad locale name").
- Crash Reporting Deadlock: The unhandled exception triggers Google Breakpad
crash reporting (mergedlo.dll+0x4952BFB), but on Windows 11 Insider,
dbgcore.dll / ntdll.dll deadlocks while generating the minidump. As a result:
* The UI message pump is frozen forever ("Not Responding").
* No crash dialog appears, and no telemetry crash dump is ever submitted to
crashreport.libreoffice.org.
3. Steps to Reproduce:
- On Windows 11 Build 26100+, set Windows Region / Format to Turkish (tr-TR).
- Launch soffice.exe or double-click an .odt file.
- Result: Window hangs indefinitely with "(Not Responding)".
4. Temporary Workaround:
In %APPDATA%\LibreOffice\4\user\registrymodifications.xcu:
Set ooSetupSystemLocale to "en-US" or "tr-TR" and DefaultLocale to "tr-TR".
5. Suggested Upstream Fix:
- In boost::locale Win32 locale mapping, query standard BCP-47 language tags
(LOCALE_SNAME -> "tr-TR") instead of concatenating LOCALE_SENGLISHLANGUAGENAME
and LOCALE_SENGLISHCOUNTRYNAME.
- Alternatively, enforce the ICU backend over Win32 NLS for Boost.Locale on
Windows.
--
You are receiving this mail because:
You are the assignee for the bug.