Bug 163233 - Writer hangs on some DOCX files
Summary: Writer hangs on some DOCX files
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
25.2.0.0 alpha0+
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords: bibisectRequest, regression
Depends on:
Blocks: Performance
  Show dependency treegraph
 
Reported: 2024-10-01 11:49 UTC by Hossein
Modified: 2024-10-14 21:59 UTC (History)
4 users (show)

See Also:
Crash report or crash signature:


Attachments
DOCX document with Persian and English text (5.08 MB, application/vnd.openxmlformats-officedocument.wordprocessingml.document)
2024-10-01 11:49 UTC, Hossein
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Hossein 2024-10-01 11:49:57 UTC
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
Comment 1 Xisco Faulí 2024-10-01 12:21:50 UTC
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 ?
Comment 2 Hossein 2024-10-01 12:50:31 UTC
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
Comment 3 m_a_riosv 2024-10-01 17:06:11 UTC
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
Comment 4 Hossein 2024-10-02 12:44:15 UTC
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()