https://bugs.documentfoundation.org/show_bug.cgi?id=112498

            Bug ID: 112498
           Summary: .doc document triggers high CPU usage
           Product: LibreOffice
           Version: 5.3.6.1 release
          Hardware: All
                OS: Linux (All)
            Status: UNCONFIRMED
          Severity: normal
          Priority: medium
         Component: Writer
          Assignee: libreoffice-bugs@lists.freedesktop.org
          Reporter: germano.massu...@gmail.com

Created attachment 136375
  --> https://bugs.documentfoundation.org/attachment.cgi?id=136375&action=edit
affected document

The attached .doc document (compressed to avoid search engines content
indexing), triggers Libreoffice high CPU usage, making very very slow the
scrolling between pages.

Operating system: Fedora 26


Version: 5.3.6.1
Build ID: 5.3.6.1-5.fc26
Thread CPU: 4; Versione SO: Linux 4.12; Interface: default; VCL: gtk3; layout
engine: new; 
local version: it-IT (it_IT.UTF-8); Calc: group


I attach gdb backtrace while Libreoffice was using a lot of CPU resources



$ gdb soffice.bin 8055
GNU gdb (GDB) Fedora 8.0.1-26.fc26
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
soffice.bin: No such file or directory.
Attaching to process 8055
[New LWP 8057]
[New LWP 8067]
[New LWP 8068]
[New LWP 8069]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
0x00007f68a01f6ad3 in BitmapReadAccess::SetPixelForN32BitTcBgra(unsigned char*,
long, BitmapColor const&, ColorMask const&) ()
   from /usr/lib64/libreoffice/program/libvcllo.so
(gdb) thread apply all backtrace

Thread 5 (Thread 0x7f6879dc0700 (LWP 8069)):
#0  0x00007f68a7b06acd in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f68a6188569 in g_main_context_poll (priority=<optimized out>,
n_fds=2, fds=0x7f68680010c0, timeout=<optimized out>, context=0x5615fb84d000)
    at gmain.c:4271
#2  0x00007f68a6188569 in g_main_context_iterate (context=0x5615fb84d000,
block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at
gmain.c:3967
#3  0x00007f68a6188902 in g_main_loop_run (loop=0x5615fb853870) at gmain.c:4168
#4  0x00007f689fb46cb6 in gdbus_shared_thread_func (user_data=0x5615fb857700)
at gdbusprivate.c:252
#5  0x00007f68a61af536 in g_thread_proxy (data=0x5615fb7f8f70) at gthread.c:784
#6  0x00007f68a77ea36d in start_thread (arg=0x7f6879dc0700) at
pthread_create.c:456
#7  0x00007f68a7b12bbf in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:97

Thread 4 (Thread 0x7f687a5c1700 (LWP 8068)):
#0  0x00007f68a7b06acd in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f68a6188569 in g_main_context_poll (priority=<optimized out>,
n_fds=2, fds=0x7f68700008e0, timeout=<optimized out>, context=0x5615fb847980)
    at gmain.c:4271
#2  0x00007f68a6188569 in g_main_context_iterate
(context=context@entry=0x5615fb847980, block=block@entry=1,
dispatch=dispatch@entry=1, self=<optimized out>)
    at gmain.c:3967
#3  0x00007f68a618867c in g_main_context_iteration (context=0x5615fb847980,
may_block=may_block@entry=1) at gmain.c:4033
#4  0x00007f68a61886c1 in glib_worker_main (data=<optimized out>) at
gmain.c:5824
#5  0x00007f68a61af536 in g_thread_proxy (data=0x5615fb7f8ed0) at gthread.c:784
#6  0x00007f68a77ea36d in start_thread (arg=0x7f687a5c1700) at
pthread_create.c:456
#7  0x00007f68a7b12bbf in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:97
---Type <return> to continue, or q <return> to quit---

Thread 3 (Thread 0x7f6880a0e700 (LWP 8067)):
#0  0x00007f68a7b137cd in accept () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f68a80b4f50 in osl_acceptPipe () at
/usr/lib64/libreoffice/program/libuno_sal.so.3
#2  0x00007f68a7e1f312 in desktop::PipeIpcThread::execute() () at
/usr/lib64/libreoffice/program/libsofficeapp.so
#3  0x00007f68a3e89966 in salhelper::Thread::run() () at
/usr/lib64/libreoffice/program/libuno_salhelpergcc3.so.3
#4  0x00007f68a3e89b4a in threadFunc () at
/usr/lib64/libreoffice/program/libuno_salhelpergcc3.so.3
#5  0x00007f68a80ba6c9 in osl_thread_start_Impl(void*) () at
/usr/lib64/libreoffice/program/libuno_sal.so.3
#6  0x00007f68a77ea36d in start_thread (arg=0x7f6880a0e700) at
pthread_create.c:456
#7  0x00007f68a7b12bbf in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:97

Thread 2 (Thread 0x7f688d63e700 (LWP 8057)):
#0  0x00007f68a77f0eb6 in futex_abstimed_wait_cancelable (private=<optimized
out>, abstime=0x7f688d63db30, expected=0, futex_word=0x7f68a82d42f0
<g_cache_list+656>)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  0x00007f68a77f0eb6 in __pthread_cond_wait_common (abstime=0x7f688d63db30,
mutex=0x7f68a82d4060 <g_cache_list>, cond=0x7f68a82d42c8 <g_cache_list+616>)
    at pthread_cond_wait.c:539
#2  0x00007f68a77f0eb6 in __pthread_cond_timedwait (cond=0x7f68a82d42c8
<g_cache_list+616>, mutex=0x7f68a82d4060 <g_cache_list>,
abstime=0x7f688d63db30)
    at pthread_cond_wait.c:667
#3  0x00007f68a809576d in rtl_cache_wsupdate_all(void*) () at
/usr/lib64/libreoffice/program/libuno_sal.so.3
#4  0x00007f68a77ea36d in start_thread (arg=0x7f688d63e700) at
pthread_create.c:456
#5  0x00007f68a7b12bbf in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:97

Thread 1 (Thread 0x7f68a83dfac0 (LWP 8055)):
---Type <return> to continue, or q <return> to quit---
#0  0x00007f68a01f6ad3 in BitmapReadAccess::SetPixelForN32BitTcBgra(unsigned
char*, long, BitmapColor const&, ColorMask const&) ()
    at /usr/lib64/libreoffice/program/libvcllo.so
#1  0x00007f6847034b45 in cairocanvas::CanvasBitmap::getFastPropertyValue(int)
() at /usr/lib64/libreoffice/program/../program/libcairocanvaslo.so
#2  0x00007f68a01f2fb2 in
BitmapEx::Create(com::sun::star::uno::Reference<com::sun::star::rendering::XBitmapCanvas>
const&, Size const&) ()
    at /usr/lib64/libreoffice/program/libvcllo.so
#3  0x00007f68a0216743 in GDIMetaFile::ImplPlayWithRenderer(OutputDevice*,
Point const&, Size) () at /usr/lib64/libreoffice/program/libvcllo.so
#4  0x00007f68a02170af in GDIMetaFile::Play(OutputDevice*, Point const&, Size
const&) () at /usr/lib64/libreoffice/program/libvcllo.so
#5  0x00007f68a022a5f7 in ImpGraphic::ImplDraw(OutputDevice*, Point const&,
Size const&) const () at /usr/lib64/libreoffice/program/libvcllo.so
#6  0x00007f68a022ddc7 in ImpGraphic::ImplGetBitmap(GraphicConversionParameters
const&) const () at /usr/lib64/libreoffice/program/libvcllo.so
#7  0x00007f68a022e25d in
ImpGraphic::ImplGetBitmapEx(GraphicConversionParameters const&) const () at
/usr/lib64/libreoffice/program/libvcllo.so
#8  0x00007f68a0224a81 in Graphic::GetBitmapEx(GraphicConversionParameters
const&) const () at /usr/lib64/libreoffice/program/libvcllo.so
#9  0x00007f6894a6a2fd in
cppcanvas::internal::ImplRenderer::processEMFPlus(MetaCommentAction*,
cppcanvas::internal::ActionFactoryParameters const&,
cppcanvas::internal::OutDevState&, std::shared_ptr<cppcanvas::Canvas> const&)
() at /usr/lib64/libreoffice/program/libcppcanvaslo.so
#10 0x00007f6894a76bdd in
cppcanvas::internal::ImplRenderer::createActions(GDIMetaFile&,
cppcanvas::internal::ActionFactoryParameters const&, bool) ()
    at /usr/lib64/libreoffice/program/libcppcanvaslo.so
#11 0x00007f6894a7a383 in
cppcanvas::internal::ImplRenderer::ImplRenderer(std::shared_ptr<cppcanvas::Canvas>
const&, GDIMetaFile const&, cppcanvas::Renderer::Parameters const&) () at
/usr/lib64/libreoffice/program/libcppcanvaslo.so
#12 0x00007f6894a924a2 in
cppcanvas::VCLFactory::createRenderer(std::shared_ptr<cppcanvas::Canvas>
const&, GDIMetaFile const&, cppcanvas::Renderer::Parameters const&) () at
/usr/lib64/libreoffice/program/libcppcanvaslo.so
#13 0x00007f6846df5869 in MtfRenderer::draw(double, double) () at
/usr/lib64/libreoffice/program/../program/libmtfrendererlo.so
#14 0x00007f68a021671f in GDIMetaFile::ImplPlayWithRenderer(OutputDevice*,
Point const&, Size) () at /usr/lib64/libreoffice/program/libvcllo.so
#15 0x00007f68a02170af in GDIMetaFile::Play(OutputDevice*, Point const&, Size
const&) () at /usr/lib64/libreoffice/program/libvcllo.so
#16 0x00007f689ae35ef6 in
drawinglayer::processor2d::VclProcessor2D::RenderMetafilePrimitive2D(drawinglayer::primitive2d::MetafilePrimitive2D
const&) ()
---Type <return> to continue, or q <return> to quit---
    at /usr/lib64/libreoffice/program/libdrawinglayerlo.so
#17 0x00007f689ae33d2a in
drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D
const&) ()
    at /usr/lib64/libreoffice/program/libdrawinglayerlo.so
#18 0x00007f689ae246ef in
drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer
const&) ()
    at /usr/lib64/libreoffice/program/libdrawinglayerlo.so
#19 0x00007f689ae24a9f in
drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::BasePrimitive2D
const&) ()
    at /usr/lib64/libreoffice/program/libdrawinglayerlo.so
#20 0x00007f689ae33abb in
drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D
const&) ()
    at /usr/lib64/libreoffice/program/libdrawinglayerlo.so
#21 0x00007f689ae246ef in
drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer
const&) ()
    at /usr/lib64/libreoffice/program/libdrawinglayerlo.so
#22 0x00007f684b302414 in paintUsingPrimitivesHelper(OutputDevice&,
drawinglayer::primitive2d::Primitive2DContainer const&, basegfx::B2DRange
const&, basegfx::B2DRange const&) () at
/usr/lib64/libreoffice/program/../program/libswlo.so
#23 0x00007f684b303147 in paintGraphicUsingPrimitivesHelper(OutputDevice&,
GraphicObject const&, GraphicAttr const&, SwRect const&) ()
    at /usr/lib64/libreoffice/program/../program/libswlo.so
#24 0x00007f684b30389a in SwNoTextFrame::PaintPicture(OutputDevice*, SwRect
const&) const () at /usr/lib64/libreoffice/program/../program/libswlo.so
#25 0x00007f684b3049fb in SwNoTextFrame::Paint(OutputDevice&, SwRect const&,
SwPrintData const*) const () at
/usr/lib64/libreoffice/program/../program/libswlo.so
#26 0x00007f684b4ab6d0 in SwLayoutFrame::Paint(OutputDevice&, SwRect const&,
SwPrintData const*) const () at
/usr/lib64/libreoffice/program/../program/libswlo.so
#27 0x00007f684b4acf7f in SwFlyFrame::Paint(OutputDevice&, SwRect const&,
SwPrintData const*) const () at
/usr/lib64/libreoffice/program/../program/libswlo.so
#28 0x00007f684b55675f in SwFlyCntPortion::Paint(SwTextPaintInfo const&) const
() at /usr/lib64/libreoffice/program/../program/libswlo.so
#29 0x00007f684b54f30c in SwTextPainter::DrawTextLine(SwRect const&,
SwSaveClip&, bool) () at /usr/lib64/libreoffice/program/../program/libswlo.so
#30 0x00007f684b5312fa in SwTextFrame::Paint(OutputDevice&, SwRect const&,
SwPrintData const*) const () at
/usr/lib64/libreoffice/program/../program/libswlo.so
#31 0x00007f684b4ab6d0 in SwLayoutFrame::Paint(OutputDevice&, SwRect const&,
SwPrintData const*) const () at
/usr/lib64/libreoffice/program/../program/libswlo.so
---Type <return> to continue, or q <return> to quit---
#32 0x00007f684b4ab6d0 in SwLayoutFrame::Paint(OutputDevice&, SwRect const&,
SwPrintData const*) const () at
/usr/lib64/libreoffice/program/../program/libswlo.so
#33 0x00007f684b4afd80 in SwRootFrame::Paint(OutputDevice&, SwRect const&,
SwPrintData const*) const () at
/usr/lib64/libreoffice/program/../program/libswlo.so
#34 0x00007f684b7c9d24 in SwViewShell::Paint(OutputDevice&, Rectangle const&)
() at /usr/lib64/libreoffice/program/../program/libswlo.so
#35 0x00007f684b1fd8bd in SwCursorShell::Paint(OutputDevice&, Rectangle const&)
() at /usr/lib64/libreoffice/program/../program/libswlo.so
#36 0x00007f684b9578bd in SwEditWin::Paint(OutputDevice&, Rectangle const&) ()
at /usr/lib64/libreoffice/program/../program/libswlo.so
#37 0x00007f68a0042bdd in PaintHelper::DoPaint(vcl::Region const*) () at
/usr/lib64/libreoffice/program/libvcllo.so
#38 0x00007f68a0042fcb in vcl::Window::ImplCallPaint(vcl::Region const*,
unsigned short) () at /usr/lib64/libreoffice/program/libvcllo.so
#39 0x00007f68a0043744 in vcl::Window::Update() () at
/usr/lib64/libreoffice/program/libvcllo.so
#40 0x00007f684b7c9027 in SwViewShell::VisPortChgd(SwRect const&) () at
/usr/lib64/libreoffice/program/../program/libswlo.so
#41 0x00007f684b1fdaa0 in SwCursorShell::VisPortChgd(SwRect const&) () at
/usr/lib64/libreoffice/program/../program/libswlo.so
#42 0x00007f684ba4a042 in SwView::SetVisArea(Rectangle const&, bool) () at
/usr/lib64/libreoffice/program/../program/libswlo.so
#43 0x00007f684ba4a5e9 in SwView::SetVisArea(Point const&, bool) () at
/usr/lib64/libreoffice/program/../program/libswlo.so
#44 0x00007f684ba4b71f in SwView::EndScrollHdl(ScrollBar*) () at
/usr/lib64/libreoffice/program/../program/libswlo.so
#45 0x00007f684ba4b849 in SwView::ScrollHdl(ScrollBar*) () at
/usr/lib64/libreoffice/program/../program/libswlo.so
#46 0x00007f68a01328ea in Control::ImplCallEventListenersAndHandler(unsigned
long, std::function<void ()> const&) () at
/usr/lib64/libreoffice/program/libvcllo.so
#47 0x00007f68a0170df2 in ScrollBar::Scroll() () at
/usr/lib64/libreoffice/program/libvcllo.so
#48 0x00007f68a0170fef in ScrollBar::ImplScroll(long, bool) () at
/usr/lib64/libreoffice/program/libvcllo.so
#49 0x00007f68a0171468 in ScrollBar::DoScroll(long) () at
/usr/lib64/libreoffice/program/libvcllo.so
#50 0x00007f68a0102455 in vcl::Window::HandleScrollCommand(CommandEvent const&,
ScrollBar*, ScrollBar*) () at /usr/lib64/libreoffice/program/libvcllo.so
#51 0x00007f684ba4b39b in SwView::HandleWheelCommands(CommandEvent const&) ()
at /usr/lib64/libreoffice/program/../program/libswlo.so
#52 0x00007f684b94ce86 in SwEditWin::Command(CommandEvent const&) () at
/usr/lib64/libreoffice/program/../program/libswlo.so
#53 0x00007f68a0119e5f in HandleWheelEvent::CallCommand(vcl::Window*, Point
const&) () at /usr/lib64/libreoffice/program/libvcllo.so
#54 0x00007f68a0114e3b in HandleGestureEventBase::Dispatch(vcl::Window*) () at
/usr/lib64/libreoffice/program/libvcllo.so
---Type <return> to continue, or q <return> to quit---
#55 0x00007f68a01153fa in HandleWheelEvent::HandleEvent(SalWheelMouseEvent
const&) () at /usr/lib64/libreoffice/program/libvcllo.so
#56 0x00007f68a0115606 in ImplHandleWheelEvent(vcl::Window*, SalWheelMouseEvent
const&, bool) () at /usr/lib64/libreoffice/program/libvcllo.so
#57 0x00007f68a0118ce1 in ImplWindowFrameProc(vcl::Window*, SalEvent, void
const*) () at /usr/lib64/libreoffice/program/libvcllo.so
#58 0x00007f6885f2f0b9 in GtkSalFrame::CallCallbackExc(SalEvent, void const*)
const () at /usr/lib64/libreoffice/program/libvclplug_gtk3lo.so
#59 0x00007f6885f34695 in GtkSalFrame::signalScroll(_GtkWidget*, _GdkEvent*,
void*) () at /usr/lib64/libreoffice/program/libvclplug_gtk3lo.so
#60 0x00007f68857dc1f7 in _gtk_marshal_BOOLEAN__BOXEDv (closure=0x561600c6d690,
return_value=0x7ffc399a2690, instance=<optimized out>, args=<optimized out>,
marshal_data=<optimized out>, n_params=<optimized out>,
param_types=0x5615fb7e1fe0) at gtkmarshalers.c:128
#61 0x00007f68a6460546 in _g_closure_invoke_va (closure=0x561600c6d690,
return_value=0x7ffc399a2690, instance=0x5615fc06df90, args=0x7ffc399a2760,
n_params=1, param_types=0x5615fb7e1fe0) at gclosure.c:867
#62 0x00007f68a647ae69 in g_signal_emit_valist (instance=0x5615fc06df90,
signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7ffc399a2760)
    at gsignal.c:3300
#63 0x00007f68a647bb0f in g_signal_emit
(instance=instance@entry=0x5615fc06df90, signal_id=<optimized out>,
detail=detail@entry=0) at gsignal.c:3447
#64 0x00007f68859269c4 in gtk_widget_event_internal
(widget=widget@entry=0x5615fc06df90 [GtkEventBox],
event=event@entry=0x561601b31680) at gtkwidget.c:7723
#65 0x00007f6885928b1a in gtk_widget_event (widget=widget@entry=0x5615fc06df90
[GtkEventBox], event=event@entry=0x561601b31680) at gtkwidget.c:7293
#66 0x00007f68857d90ce in propagate_event_up (topmost=<optimized out>,
event=<optimized out>, widget=0x5615fc06df90 [GtkEventBox]) at gtkmain.c:2578
#67 0x00007f68857d90ce in propagate_event (widget=<optimized out>,
event=0x561601b31680, captured=<optimized out>, topmost=0x0) at gtkmain.c:2680
#68 0x00007f68857db1f0 in gtk_main_do_event (event=<optimized out>) at
gtkmain.c:1911
#69 0x00007f68852ec685 in _gdk_event_emit (event=event@entry=0x561601b31680) at
gdkevents.c:73
#70 0x00007f688531db52 in gdk_event_source_dispatch (source=<optimized out>,
callback=<optimized out>, user_data=<optimized out>) at gdkeventsource.c:367
#71 0x00007f68a6188247 in g_main_dispatch (context=0x5615fac4cef0) at
gmain.c:3234
#72 0x00007f68a6188247 in g_main_context_dispatch
(context=context@entry=0x5615fac4cef0) at gmain.c:3899
#73 0x00007f68a61885e8 in g_main_context_iterate
(context=context@entry=0x5615fac4cef0, block=block@entry=0,
dispatch=dispatch@entry=1, self=<optimized out>)
    at gmain.c:3972
---Type <return> to continue, or q <return> to quit---
#74 0x00007f68a618867c in g_main_context_iteration (context=0x5615fac4cef0,
may_block=0) at gmain.c:4033
#75 0x00007f6885efb754 in GtkData::Yield(bool, bool) () at
/usr/lib64/libreoffice/program/libvclplug_gtk3lo.so
#76 0x00007f68a031aead in Application::Yield() () at
/usr/lib64/libreoffice/program/libvcllo.so
#77 0x00007f68a031cc45 in Application::Execute() () at
/usr/lib64/libreoffice/program/libvcllo.so
#78 0x00007f68a7df99ee in desktop::Desktop::Main() () at
/usr/lib64/libreoffice/program/libsofficeapp.so
#79 0x00007f68a03217a6 in ImplSVMain() () at
/usr/lib64/libreoffice/program/libvcllo.so
#80 0x00007f68a03218b0 in SVMain() () at
/usr/lib64/libreoffice/program/libvcllo.so
#81 0x00007f68a7e24025 in soffice_main () at
/usr/lib64/libreoffice/program/libsofficeapp.so
#82 0x00005615f9e3b76b in main ()

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
Libreoffice-bugs@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs

Reply via email to