Hi there,
I am working on a bug around saving big file in Writer:
https://bugs.documentfoundation.org/show_bug.cgi?id=88314
The problem seems to be we deflate streams in parallel and run out of memory.
I thought there are temporary files used for deflating since
f92183833fa569006602ac7e93c906d2094e0d4d but I see this:
#2 0xb73c9e13 in __GI_abort () at abort.c:90
#3 0xb73c12c7 in __assert_fail_base (fmt=0xb7509564 "%s%s%s:%u:
%s%sAssertion `%s' failed.\n%n",
assertion=assertion@entry=0xb462e257 <.L.str31> "pBuf &&
\"Possibly Reallocate failed\"",
file=file@entry=0xb462df3b <.L.str13>
"/home/matus/git/dbgutil/tools/source/stream/stream.cxx",
line=line@entry=1828,
function=function@entry=0xb462e27c
<.L__PRETTY_FUNCTION__._ZN14SvMemoryStream7PutDataEPKvm> "virtual
sal_Size SvMemoryStream::PutData(const void *, sal_Size)") at
assert.c:92
#4 0xb73c1377 in __GI___assert_fail (assertion=0xb462e257 <.L.str31>
"pBuf && \"Possibly Reallocate failed\"",
file=0xb462df3b <.L.str13>
"/home/matus/git/dbgutil/tools/source/stream/stream.cxx", line=1828,
function=0xb462e27c
<.L__PRETTY_FUNCTION__._ZN14SvMemoryStream7PutDataEPKvm> "virtual
sal_Size SvMemoryStream::PutData(const void *, sal_Size)")
at assert.c:101
#5 0xb4614d46 in SvMemoryStream::PutData (this=0x6168b908,
pData=0x61b7f5e8, nCount=0)
at /home/matus/git/dbgutil/tools/source/stream/stream.cxx:1828
#6 0xb460da7a in SvStream::Write (this=0x6168b908, pData=0x61b7f5e8,
nCount=644) at /home/matus/git/dbgutil/tools/source/stream/stream.cxx:1359
#7 0xb437b197 in OTempFileService::writeBytes (this=0x6168b8a8,
aData=uno::Sequence of length 644 = {...})
at /home/matus/git/dbgutil/unotools/source/ucbhelper/xtempfile.cxx:268
#8 0xb437b369 in non-virtual thunk to
OTempFileService::writeBytes(com::sun::star::uno::Sequence<signed
char> const&) ()
at /home/matus/git/dbgutil/unotools/source/ucbhelper/xtempfile.cxx:272
#9 0xab02a77e in ZipOutputEntry::doDeflate (this=0x61a7e148) at
/home/matus/git/dbgutil/package/source/zipapi/ZipOutputEntry.cxx:180
#10 0xab02a0d6 in ZipOutputEntry::closeEntry (this=0x61a7e148) at
/home/matus/git/dbgutil/package/source/zipapi/ZipOutputEntry.cxx:90
#11 0xab0833eb in deflateZipEntry (pZipEntry=0x61a7e148,
xInStream=uno::Reference to (OInputCompStream *) 0xd56a3b4)
at /home/matus/git/dbgutil/package/source/zippackage/ZipPackageStream.cxx:456
#12 0xab08b07c in DeflateThread::doWork (this=0x61983c00) at
/home/matus/git/dbgutil/package/source/zippackage/ZipPackageStream.cxx:474
Does that mean css::io::TempFile UNO service I use in
package/source/zipapi/ZipOutputEntry.cxx provides in fact memory
stream?
OTempFileService::OTempFileService has
mpTempFile = new ::utl::TempFile;
and TempFile::GetStream has
if (!aName.isEmpty())
pStream = new SvFileStream(aName, eMode);
else
pStream = new SvMemoryStream(NULL, 0, eMode);
Should we fix that?
And/Or is there another way to get file stream?
package/ does not have many dependencies, so I would not like to
introduce some new.
Thanks,
All the best,
Matus
Context
- Need help with temporary files · Matúš Kukan
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.