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.

Reply via email to