Created attachment 196815 [details] DOCX document with Persian and English text Description: If you open the DOCX attachment in LibreOffice, it takes a while to open, and after a few seconds, LibreOffice hangs. I think this is also a regression from commit 04184aa7e3aada8f4d938d20dfdb54b3a7dd3896. Steps to Reproduce: 1. Open the attachment and wait for at least 30 minute. Actual Results: LibreOffice hangs Expected Results: LibreOffice should not hang Reproducible: Always User Profile Reset: Yes Additional Info: Version: 25.2.0.0.alpha0+ (X86_64) / LibreOffice Community Build ID: cd141a97c3a42f52e0207875c903433739336eb4 CPU threads: 20; OS: Windows 11 X86_64 (10.0 build 22631); UI render: Skia/Vulkan; VCL: win Locale: en-US (en_US); UI: en-US Calc: CL threaded
Not reproduced in Version: 25.2.0.0.alpha0+ (X86_64) / LibreOffice Community Build ID: 4787fd4fc86230893a6da309f45964116b3a67df CPU threads: 8; OS: Linux 6.1; UI render: default; VCL: gtk3 Locale: es-ES (es_ES.UTF-8); UI: en-US Calc: threaded Win only ?
I also reproduce on Linux: Version: 25.2.0.0.alpha0+ (X86_64) / LibreOffice Community Build ID: 0a3e1df7af87d5917e13c82b747cff27f20cb29a CPU threads: 12; OS: Linux 6.2; UI render: default; VCL: x11 Locale: en-US (en_US.UTF-8); UI: en-US Calc: CL threaded
Reproducible with Version: 25.2.0.0.alpha0+ (X86_64) / LibreOffice Community Build ID: 0679a5cee16ae96c0d11e7d4fc1e59fb0f9cc591 CPU threads: 16; OS: Windows 11 X86_64 (10.0 build 22631); UI render: Skia/Raster; VCL: win Locale: es-ES (es_ES); UI: en-US Calc: CL threaded regression from Version: 24.8.2.1 (X86_64) / LibreOffice Community Build ID: 0f794b6e29741098670a3b95d60478a65d05ef13 CPU threads: 16; OS: Windows 11 X86_64 (10.0 build 22631); UI render: Skia/Raster; VCL: win Locale: es-ES (es_ES); UI: en-US Calc: CL threaded
This is the stack dump for the place where LibreOffice hangs: swlo.dll!SwSubFont::GetTextSize_(SwDrawTextInfo & rInf) Line 1025 at sw\source\core\txtnode\swfont.cxx(1025) swlo.dll!SwFont::GetTextSize_(SwDrawTextInfo & rInf) Line 320 at sw\source\core\inc\swfont.hxx(320) swlo.dll!SwTextSizeInfo::GetTextSize(OutputDevice * pOutDev, const SwScriptInfo * pSI, const rtl::OUString & rText, o3tl::strong_int<long,Tag_TextFrameIndex> nIndex, o3tl::strong_int<long,Tag_TextFrameIndex> nLength) Line 414 at sw\source\core\text\inftxt.cxx(414) swlo.dll!SwTextSizeInfo::GetTextSize(const rtl::OUString & rText) Line 779 at sw\source\core\text\inftxt.hxx(779) swlo.dll!SwTextGuess::Guess(const SwTextPortion & rPor, SwTextFormatInfo & rInf, const unsigned short nPorHeight, long nSpacesInLine) Line 196 at sw\source\core\text\guess.cxx(196) swlo.dll!SwTextPortion::Format_(SwTextFormatInfo & rInf) Line 366 at sw\source\core\text\portxt.cxx(366) swlo.dll!SwTextPortion::Format(SwTextFormatInfo & rInf) Line 533 at sw\source\core\text\portxt.cxx(533) swlo.dll!SwTextFormatter::BuildPortions(SwTextFormatInfo & rInf) Line 608 at sw\source\core\text\itrform2.cxx(608) swlo.dll!SwTextFormatter::BuildMultiPortion(SwTextFormatInfo & rInf, SwMultiPortion & rMulti) Line 2210 at sw\source\core\text\pormulti.cxx(2210) swlo.dll!SwTextFormatter::BuildPortions(SwTextFormatInfo & rInf) Line 606 at sw\source\core\text\itrform2.cxx(606) swlo.dll!SwTextFormatter::FormatLine(o3tl::strong_int<long,Tag_TextFrameIndex> nStartPos) Line 2063 at sw\source\core\text\itrform2.cxx(2063) swlo.dll!SwTextFrame::FormatLine(SwTextFormatter & rLine, const bool bPrev) Line 1454 at sw\source\core\text\frmform.cxx(1454) swlo.dll!SwTextFrame::Format_(SwTextFormatter & rLine, SwTextFormatInfo & rInf, const bool bAdjust) Line 1821 at sw\source\core\text\frmform.cxx(1821) swlo.dll!SwTextFrame::FormatImpl(OutputDevice * pRenderContext, SwParaPortion * pPara, std::vector<SwAnchoredObject *,std::allocator<SwAnchoredObject *>> & rIntersectingObjs) Line 2012 at sw\source\core\text\frmform.cxx(2012) swlo.dll!SwTextFrame::Format(OutputDevice * pRenderContext, const SwBorderAttrs * __formal) Line 2264 at sw\source\core\text\frmform.cxx(2264) swlo.dll!SwContentFrame::MakeAll(OutputDevice * __formal) Line 1572 at sw\source\core\layout\calcmove.cxx(1572) swlo.dll!SwFrame::PrepareMake(OutputDevice * pRenderContext) Line 388 at sw\source\core\layout\calcmove.cxx(388) swlo.dll!SwFrame::Calc(OutputDevice * pRenderContext) Line 1850 at sw\source\core\layout\trvlfrm.cxx(1850) swlo.dll!SwContentFrame::CalcLowers(SwLayoutFrame & rLay, const SwLayoutFrame & rDontLeave, __int64 nBottom, bool bSkipRowSpanCells) Line 1780 at sw\source\core\layout\tabfrm.cxx(1780) swlo.dll!lcl_RecalcRow(SwRowFrame & rRow, __int64 nBottom) Line 1916 at sw\source\core\layout\tabfrm.cxx(1916) swlo.dll!SwTabFrame::MakeAll(OutputDevice * pRenderContext) Line 3089 at sw\source\core\layout\tabfrm.cxx(3089) swlo.dll!SwFrame::PrepareMake(OutputDevice * pRenderContext) Line 388 at sw\source\core\layout\calcmove.cxx(388) swlo.dll!SwFrame::Calc(OutputDevice * pRenderContext) Line 1850 at sw\source\core\layout\trvlfrm.cxx(1850) swlo.dll!SwLayAction::FormatLayoutTab(SwTabFrame * pTab, bool bAddRect) Line 1567 at sw\source\core\layout\layact.cxx(1567) swlo.dll!SwLayAction::FormatLayout(OutputDevice * pRenderContext, SwLayoutFrame * pLay, bool bAddRect) Line 1452 at sw\source\core\layout\layact.cxx(1452) swlo.dll!SwLayAction::FormatLayout(OutputDevice * pRenderContext, SwLayoutFrame * pLay, bool bAddRect) Line 1458 at sw\source\core\layout\layact.cxx(1458) swlo.dll!SwLayAction::InternalAction(OutputDevice * pRenderContext) Line 601 at sw\source\core\layout\layact.cxx(601) swlo.dll!SwLayAction::Action(OutputDevice * pRenderContext) Line 403 at sw\source\core\layout\layact.cxx(403) swlo.dll!SwLayIdle::SwLayIdle(SwRootFrame * pRt, SwViewShellImp * pI) Line 2383 at sw\source\core\layout\layact.cxx(2383) swlo.dll!SwViewShell::LayoutIdle() Line 827 at sw\source\core\view\viewsh.cxx(827) swlo.dll!sw::DocumentTimerManager::DoIdleJobs(Timer * __formal) Line 178 at sw\source\core\doc\DocumentTimerManager.cxx(178) swlo.dll!sw::DocumentTimerManager::LinkStubDoIdleJobs(void * instance, Timer * data) Line 156 at sw\source\core\doc\DocumentTimerManager.cxx(156) vcllo.dll!Link<Timer *,void>::Call(Timer * data) Line 111 at include\tools\link.hxx(111) vcllo.dll!Timer::Invoke() Line 75 at vcl\source\app\timer.cxx(75) vcllo.dll!Scheduler::CallbackTaskScheduling() Line 509 at vcl\source\app\scheduler.cxx(509) vcllo.dll!SalTimer::CallCallback() Line 53 at vcl\inc\saltimer.hxx(53) vclplug_winlo.dll!WinSalTimer::ImplHandleElapsedTimer() Line 169 at vcl\win\app\saltimer.cxx(169) vclplug_winlo.dll!ImplSalYield(bool bWait, bool bHandleAllCurrentEvents) Line 525 at vcl\win\app\salinst.cxx(525) vclplug_winlo.dll!WinSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents) Line 581 at vcl\win\app\salinst.cxx(581) vcllo.dll!ImplYield(bool i_bWait, bool i_bAllEvents) Line 385 at vcl\source\app\svapp.cxx(385) vcllo.dll!Application::Yield() Line 473 at vcl\source\app\svapp.cxx(473) vcllo.dll!Application::Execute() Line 361 at vcl\source\app\svapp.cxx(361) sofficeapp.dll!desktop::Desktop::Main(void) vcllo.dll!ImplSVMain() Line 228 at vcl\source\app\svmain.cxx(228) vcllo.dll!SVMain() Line 261 at vcl\source\app\svmain.cxx(261) sofficeapp.dll!soffice_main() soffice.bin!sal_main() Line 51 at desktop\source\app\main.c(51) soffice.bin!main(int argc, char * * argv) Line 49 at desktop\source\app\main.c(49) soffice.bin!invoke_main() Line 79 at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl(79) soffice.bin!__scrt_common_main_seh() Line 288 at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl(288) soffice.bin!__scrt_common_main() Line 331 at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl(331) soffice.bin!mainCRTStartup(void * __formal) Line 17 at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp(17) kernel32.dll!BaseThreadInitThunk() ntdll.dll!RtlUserThreadStart()