Bug 125459 - Document won't load, memory grows continually
Summary: Document won't load, memory grows continually
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
6.2.3.2 release
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords: bibisected, bisected, regression
Depends on:
Blocks: File-Opening Memory
  Show dependency treegraph
 
Reported: 2019-05-23 11:57 UTC by Luke Kendall
Modified: 2021-04-09 14:17 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments
One of the documents that won't load (624.79 KB, application/vnd.oasis.opendocument.text)
2019-05-23 11:57 UTC, Luke Kendall
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Luke Kendall 2019-05-23 11:57:13 UTC
Created attachment 151625 [details]
One of the documents that won't load

I tried to open an old version of my manuscript edited last with Writer 6.0 or so (containing many comments), with 6.2.3.2.

Doing so locks up any LO documents already open, and the new document doesn't load.  By which I mean, the "Loading progress bar is displayed, comnpletes, runs again, vanishes, and the document window stays greyed out. The main document canvas is never drawn in with any document content, and the normal toolbars are not even drawn.  (I killed the process after letting it run for 3h30m.)

Memory use grows steadily.  Looking at "top", the size slowly grew to the 2GB mark for Writer, then 3GB, then 4GB, and so on.

E.g. after about 20 mins trying to load:
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND     
 3679 luke      20   0 4635724 3.403g  43624 R  99.0 22.2  13:23.75 soffice.bin 

A few minutes later:

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND     
 3679 luke      20   0 4659036 3.426g  43624 R  99.7 22.3  14:38.69 soffice.bin 

I was able to open the file correctly with Writer 6.0.5.2. So I made an obfuscated version of the file and saved that.  

If examined with gdb, it seems to be mostly calling malloc.  Two sizes I saw were 296 bytes and 88 bytes.

(Because of the 100% CPU load bug in glib2 timer code, I run soffice after setting SAL_USE_VCLPLUGIN=gen.)

Example stack traceback:

(gdb) where
#0  _int_malloc (av=av@entry=0x7f425f066b20 <main_arena>, 
    bytes=bytes@entry=296) at malloc.c:3421
#1  0x00007f425ed26184 in __GI___libc_malloc (bytes=296) at malloc.c:2913
#2  0x00007f425f09a3af in ?? ()
   from /opt/libreoffice6.2/program/libuno_sal.so.3
#3  0x00007f425f098e1d in rtl_uStringbuffer_ensureCapacity ()
   from /opt/libreoffice6.2/program/libuno_sal.so.3
#4  0x00007f425f098f30 in rtl_uStringbuffer_insert ()
   from /opt/libreoffice6.2/program/libuno_sal.so.3
#5  0x00007f4261acf1c0 in INetURLObject::appendUCS4(rtl::OUStringBuffer&, unsigned int, INetURLObject::EscapeType, INetURLObject::Part, unsigned short, bool)
    () from /opt/libreoffice6.2/program/libmergedlo.so
#6  0x00007f4261ad2d40 in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#7  0x00007f4261ad5d1d in INetURLObject::setAbsURIRef(rtl::OUString const&, INetURLObject::EncodeMechanism, unsigned short, bool, FSysStyle) ()
   from /opt/libreoffice6.2/program/libmergedlo.so
#8  0x00007f426123611b in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#9  0x00007f42612362de in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#10 0x00007f42612362de in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#11 0x00007f42612362de in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#12 0x00007f42612362de in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#13 0x00007f42612362de in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#14 0x00007f42612362de in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#15 0x00007f42612362de in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#16 0x00007f42612362de in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#17 0x00007f42612362de in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#18 0x00007f42612362de in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#19 0x00007f42612362de in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#20 0x00007f42612362de in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#21 0x00007f42612362de in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#22 0x00007f42612362de in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#23 0x00007f4261238359 in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#24 0x00007f4261238efd in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#25 0x00007f4260e9f73e in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#26 0x00007f4260ea15ed in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#27 0x00007f4260e8b2a7 in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#28 0x00007f4260e8ccda in SfxDocumentTemplates::GetFull(rtl::OUString const&, rtl::OUString const&, rtl::OUString&) ()
   from /opt/libreoffice6.2/program/libmergedlo.so
#29 0x00007f4260ebfe9b in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#30 0x00007f4260f15e6c in SfxBaseModel::connectController(com::sun::star::uno::Reference<com::sun::star::frame::XController> const&) ()
   from /opt/libreoffice6.2/program/libmergedlo.so
#31 0x00007f4260fadf7a in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#32 0x00007f426091a0ba in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#33 0x00007f426091b7e6 in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#34 0x00007f42608b3835 in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#35 0x00007f42608b4528 in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#36 0x00007f42603b91c0 in comphelper::SynchronousDispatch::dispatch(com::sun::star::uno::Reference<com::sun::star::uno::XInterface> const&, rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) () from /opt/libreoffice6.2/program/libmergedlo.so
#37 0x00007f4261007b4e in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#38 0x00007f426101043f in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#39 0x00007f4261010bf1 in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#40 0x00007f4261dbad2f in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#41 0x00007f426200cd0a in SalUserEventList::DispatchUserEvents(bool) ()
   from /opt/libreoffice6.2/program/libmergedlo.so
#42 0x00007f424f034996 in SalX11Display::Yield() ()
   from /opt/libreoffice6.2/program/libvclplug_genlo.so
#43 0x00007f424f034a89 in ?? ()
   from /opt/libreoffice6.2/program/libvclplug_genlo.so
#44 0x00007f424f03321a in SalXLib::Yield(bool, bool) ()
   from /opt/libreoffice6.2/program/libvclplug_genlo.so
#45 0x00007f4262033532 in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#46 0x00007f42620353e5 in Application::Execute() ()
   from /opt/libreoffice6.2/program/libmergedlo.so
#47 0x00007f4260ff7fd3 in ?? () from /opt/libreoffice6.2/program/libmergedlo.so
#48 0x00007f426203c142 in ImplSVMain() ()
   from /opt/libreoffice6.2/program/libmergedlo.so
#49 0x00007f4261018a35 in soffice_main ()
   from /opt/libreoffice6.2/program/libmergedlo.so
#50 0x000000000040070b in ?? ()
#51 0x00007f425ecc2830 in __libc_start_main (main=0x400700, argc=2, 
    argv=0x7fff3fa34008, init=<optimised out>, fini=<optimised out>, 
    rtld_fini=<optimised out>, stack_end=0x7fff3fa33ff8)
    at ../csu/libc-start.c:291
#52 0x000000000040073f in ?? ()
Comment 1 Xisco Faulí 2019-05-24 07:53:10 UTC
it works fine in

Version: 6.3.0.0.alpha1+
Build ID: e3015d7021e689c71c2ed8e5dd01a74d832c84f0
CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk3; 
Locale: ca-ES (ca_ES.UTF-8); UI-Language: en-US
Calc: threaded

and

Version: 6.2.5.0.0+
Build ID: 6c3ceaf3e4d59c658d0f9e4e1b22204be25f74e2
CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk3; 
Locale: ca-ES (ca_ES.UTF-8); UI-Language: en-US
Calc: threaded

Could you please try to reproduce it with the latest version of LibreOffice
from https://www.libreoffice.org/download/libreoffice-fresh/ ?
I have set the bug's status to 'NEEDINFO'. Please change it back to
'UNCONFIRMED' if the bug is still present in the latest version.
Comment 2 Luke Kendall 2019-05-24 08:48:46 UTC
Bug does not appear.
I tested using the doc I provided, and the original unobfuscated version.
Both are good.

I used:

Version: 6.3.0.0.alpha1
Build ID: 547edd20e527fb02900f6174973770d26306e2e7
CPU threads: 4; OS: Linux 4.4; UI render: default; VCL: gtk3; 
Locale: en-AU (en_AU.UTF-8); UI-Language: en-US
Calc: threaded

I assume I leave it to you to mark this Resolved.

Thanks!
Comment 3 Xisco Faulí 2019-05-24 08:58:56 UTC
Thanks for retesting with the latest version.
Setting to RESOLVED WORKSFORME as the commit fixing this issue hasn't been identified.
Comment 4 Luke Kendall 2019-05-26 07:11:58 UTC
Editing another document today (a 1.2MB text file), it looked like Writer 6.2.3.2 locked up.
So I opened it with this alpha version.
After it loaded, it misreported the file size as 350,000 characters(approx.).
I did a find all of a string I could easily find, throughout the source - Find All correctly reported the number.
I selected all the text, but it still reported the 1/3 file size.
Then it crashed.
I can't share the source file, but I did allow the crash reporter to send a crash report.
Comment 5 Timur 2021-04-09 14:17:31 UTC
I bisected fix in Linux 6.2 to


commit 421b5a995b35d4072ca70f5ade40d72392e42218
Date:   Tue Jan 22 12:05:38 2019 +0100
   source 273330a55d7cf457da6d7ba9829527a961c40bc0
   previous source 35f4219155e7efa0eee231a886a0df8f7dc9c42e

author	himajin100000 <himajin100000@gmail.com>	2019-01-19 14:25:50 +0900
committer	Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>	2019-01-22 12:00:37 +0100
commit 273330a55d7cf457da6d7ba9829527a961c40bc0 (patch)
tree 0f3b7c77d0b3e0e28969067155211f7c3b0e0bc4
parent 35f4219155e7efa0eee231a886a0df8f7dc9c42e (diff)
Support AdoptOpenJDK