https://bugs.freedesktop.org/show_bug.cgi?id=77028

          Priority: medium
            Bug ID: 77028
          Assignee: [email protected]
           Summary: Document load performance regression (4.1 -> 4.2)
          Severity: major
    Classification: Unclassified
                OS: All
          Reporter: [email protected]
          Hardware: All
            Status: UNCONFIRMED
           Version: 4.2.0.4 release
         Component: filters and storage
           Product: LibreOffice

Created attachment 96874
  --> https://bugs.freedesktop.org/attachment.cgi?id=96874&action=edit
Test Document (Microsoft Powerpoint)

We use LibreOffice for converting Microsoft Office and LibreOffice documents to
PDF via UNO. After updating from 4.1.3 to 4.2.0, we noticed a substantially
higher average conversion time (tested on Linux and Windows). I attached a
document that illustrates the performance regression after updating:

Test Document: test.pptx:

In the interactive case, LibreOffice blocks during load, so the issue can be
reproduced without using UNO. The increased load time is identical to what we
experience when using UNO.

4.1.3.2:           1.5s
4.2.0.4:          39.7s
4.3.0.0-20140403:  0.1s* (async load?, random crashes)

For easier timing, the issue can be reproduced via UNO using the DocumentLoader
sample provided in the SDK. Change the path to the input file in the makefile
before running the command.

  time make DocumentLoader.run

For this to work, LibreOffice must be started as follows:

/opt/libreoffice<major>.<minor>/program/soffice --nofirststartwizard --nologo
--headless --norestore --invisible
"--accept=socket,host=localhost,port=2083,tcpNoDelay=1;urp;"


With the 4.3 development build, the load returns within 0.1s. I assume that
some loading action is now performed asynchronously because the whole PDF
generation process (load and export) takes approximately the same amount of
time as with 4.1.3.2.

So it seems that the issue might have been fixed in a 4.3 development build.
Can you confirm that? Are there plans to backport related changes?

The major catch in respect to 4.3 is, however, that LibreOffice crashes at
random in case of the load and export sequence triggered via UNO
(XComponentLoader::loadComponentFromURL, XStorable::storeToURL). The stack
trace is as follows:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f918d7fb700 (LWP 12684)]
0x00007f91b0218151 in sfx2::sidebar::FocusManager::FocusDeckTitle() () from
/opt/libreofficedev4.3/program/libsfxlo.so
(gdb) bt
#0  0x00007f91b0218151 in sfx2::sidebar::FocusManager::FocusDeckTitle() () from
/opt/libreofficedev4.3/program/libsfxlo.so
#1  0x00007f91ae2a2a91 in Window::ImplGrabFocus(unsigned short) () from
/opt/libreofficedev4.3/program/libvcllo.so
#2  0x00007f91ae2b1d72 in Window::~Window() () from
/opt/libreofficedev4.3/program/libvcllo.so
#3  0x00007f91b0212879 in sfx2::sidebar::Deck::~Deck() () from
/opt/libreofficedev4.3/program/libsfxlo.so
#4  0x00007f91b0201a08 in sfx2::sidebar::SidebarController::disposing() () from
/opt/libreofficedev4.3/program/libsfxlo.so
#5  0x00007f91b0c545ef in cppu::WeakComponentImplHelperBase::dispose() () from
/opt/libreofficedev4.3/program/../ure-link/lib/libuno_cppuhelpergcc3.so.3
#6  0x00007f91b01ff055 in sfx2::sidebar::SidebarDockingWindow::DoDispose() ()
from /opt/libreofficedev4.3/program/libsfxlo.so
#7  0x00007f91b01ff0d7 in
sfx2::sidebar::SidebarDockingWindow::~SidebarDockingWindow() () from
/opt/libreofficedev4.3/program/libsfxlo.so
#8  0x00007f91b01ff139 in
sfx2::sidebar::SidebarDockingWindow::~SidebarDockingWindow() () from
/opt/libreofficedev4.3/program/libsfxlo.so
#9  0x00007f91afff8a24 in SfxChildWindow::~SfxChildWindow() () from
/opt/libreofficedev4.3/program/libsfxlo.so
#10 0x00007f91b01fef37 in
sfx2::sidebar::SidebarChildWindow::~SidebarChildWindow() () from
/opt/libreofficedev4.3/program/libsfxlo.so
#11 0x00007f91afff8bb9 in SfxChildWindow::Destroy() () from
/opt/libreofficedev4.3/program/libsfxlo.so
#12 0x00007f91b003a14b in SfxWorkWindow::DeleteControllers_Impl() () from
/opt/libreofficedev4.3/program/libsfxlo.so
#13 0x00007f91b0240330 in SfxFrame::DoClose_Impl() () from
/opt/libreofficedev4.3/program/libsfxlo.so
#14 0x00007f91b025407c in SfxBaseController::dispose() () from
/opt/libreofficedev4.3/program/libsfxlo.so
#15 0x00007f918c973015 in sd::DrawController::dispose() () from
/opt/libreofficedev4.3/program/../program/libsdlo.so
#16 0x00007f919d70875a in (anonymous
namespace)::Frame::setComponent(com::sun::star::uno::Reference<com::sun::star::awt::XWindow>
const&, com::sun::star::uno::Reference<com::sun::star::frame::XCo              
                            ntroller> const&) () from
/opt/libreofficedev4.3/program/../program/libfwklo.so
#17 0x00007f919d7063ab in (anonymous namespace)::Frame::close(unsigned char) ()
from /opt/libreofficedev4.3/program/../program/libfwklo.so
#18 0x00007f91b0242588 in SfxFrame::DoClose() () from
/opt/libreofficedev4.3/program/libsfxlo.so
#19 0x00007f91afbc114d in SfxBroadcaster::Broadcast(SfxHint const&) () from
/opt/libreofficedev4.3/program/libsvllo.so
#20 0x00007f91b01a1890 in
SfxModelListener_Impl::notifyClosing(com::sun::star::lang::EventObject const&)
() from /opt/libreofficedev4.3/program/libsfxlo.so
#21 0x00007f91b01baea4 in SfxBaseModel::close(unsigned char) () from
/opt/libreofficedev4.3/program/libsfxlo.so
#22 0x00007f91a0adcaf6 in gcc3::callVirtualMethod(void*, unsigned int, void*,
_typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int,
unsigned long*, unsigned int, double*, unsign                                  
        ed int) () from /opt/libreofficedev4.3/ure/lib/libgcc3_uno.so
#23 0x00007f91a0adbd5f in
cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*,
bridges::cpp_uno::shared::VtableSlot, _typelib_TypeDescriptionReference*, int,
_typelib_MethodParameter*, void*, v                                          
oid**, _uno_Any**) () from /opt/libreofficedev4.3/ure/lib/libgcc3_uno.so
#24 0x00007f91a0adc766 in
bridges::cpp_uno::shared::unoInterfaceProxyDispatch(_uno_Interface*,
_typelib_TypeDescription const*, void*, void**, _uno_Any**) ()
   from /opt/libreofficedev4.3/ure/lib/libgcc3_uno.so
#25 0x00007f919e6f697e in
binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny*,
std::vector<binaryurp::BinaryAny, std::allocator<binaryurp::BinaryAny> >*)
const ()
   from /opt/libreofficedev4.3/ure/lib/libbinaryurplo.so
#26 0x00007f919e6f74ae in binaryurp::IncomingRequest::execute() const () from
/opt/libreofficedev4.3/ure/lib/libbinaryurplo.so
#27 0x00007f919e6fb49d in request () from
/opt/libreofficedev4.3/ure/lib/libbinaryurplo.so
#28 0x00007f91b0eef2a9 in cppu_threadpool::JobQueue::enter(long, bool) () from
/opt/libreofficedev4.3/program/../ure-link/lib/libuno_cppu.so.3
#29 0x00007f91b0eef9ae in cppu_threadpool::ORequestThread::run() () from
/opt/libreofficedev4.3/program/../ure-link/lib/libuno_cppu.so.3
#30 0x00007f91b0ef030a in threadFunc () from
/opt/libreofficedev4.3/program/../ure-link/lib/libuno_cppu.so.3
#31 0x00007f91b174145f in osl_thread_start_Impl () from
/opt/libreofficedev4.3/program/../ure-link/lib/libuno_sal.so.3
#32 0x00000036a56079d1 in start_thread () from /lib64/libpthread.so.0
#33 0x00000036a52e8b6d in clone () from /lib64/libc.so.6

Please let know if further information is required.

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs

Reply via email to