Bug 64915

Summary: Comment box has serious performance problems
Product: LibreOffice Reporter: ratyhe
Component: SpreadsheetAssignee: Not Assigned <libreoffice-bugs>
Status: NEW --- QA Contact:
Severity: major    
Priority: high CC: cno, michael.meeks, thb
Version: 4.0.3.3 release   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Example document of the problem i face every day.
Example document of the problem i face every day. Another try.

Description ratyhe 2013-05-23 13:44:04 UTC
Created attachment 79708 [details]
Example document of the problem i face every day.

Adding Comment box (CTRL+ALT+C) with lots of lines of text drains all power from the CPU and Calc gets super slow. Work around for this is zooming as far as possible before pasting text in it helps snd then widening the box. Box should also adjust it's size automatically wider and help prevent this problem. 

This problem was and still is in Libreoffice 3.6 and now in 4.03. I have tried this with 32bit machines with same results. 

See the attachement and test yourself. This bug sucks because i have to do these at work all the time.
Comment 1 ratyhe 2013-05-23 13:49:13 UTC
Created attachment 79710 [details]
Example document of the problem i face every day. Another try.
Comment 2 Cor Nouws 2013-05-24 11:14:36 UTC
hi ratyhe,

Impossible for me to understand exactly what you are doing.
I can open the documents and edit the comments without problem.

Maybe you can help with a step by step description and a screenshot of the result?
thanks, Cor
Comment 3 Michael Meeks 2013-05-25 16:50:25 UTC
Cor you need to right-click & 'show comment' in the cell at the bottom and then: wow :-) it is certainly slow alright. My LibreOffice wedges.

It'd be great to get some stack traces; run in gdb, break it and type 'finish' until you get to a method taking significant time - and log the trace from there :-)
Comment 4 Michael Meeks 2013-05-25 16:54:50 UTC
#5  0xb2884880 in XRenderCompositeTrapezoids (dpy=0x8c8c310, op=3, src=50339939, dst=50339995, maskFormat=0x8caa7c8, xSrc=0, ySrc=0, traps=
    0x9736cd0, ntrap=0) at Trap.c:67
#6  0xb297044c in XRenderPeer::CompositeTrapezoids(int, unsigned long, unsigned long, XRenderPictFormat const*, int, int, _XTrapezoid const*, int) const () from /opt/libreoffice4.0/program/libvclplug_genlo.so
#7  0xb296f3eb in X11SalGraphics::drawFilledTrapezoids(basegfx::B2DTrapezoid const*, int, double) ()
   from /opt/libreoffice4.0/program/libvclplug_genlo.so
---Type <return> to continue, or q <return> to quit---
#8  0xb296f6d8 in X11SalGraphics::drawPolyLine(basegfx::B2DPolygon const&, double, basegfx::B2DVector const&, basegfx::B2DLineJoin, com::sun::star::drawing::LineCap) () from /opt/libreoffice4.0/program/libvclplug_genlo.so
#9  0xb6200942 in SalGraphics::DrawPolyLine(basegfx::B2DPolygon const&, double, basegfx::B2DVector const&, basegfx::B2DLineJoin, com::sun::star::drawing::LineCap, OutputDevice const*) () from /opt/libreoffice4.0/program/libvcllo.so
#10 0xb6169b3c in OutputDevice::ImpTryDrawPolyLineDirect(basegfx::B2DPolygon const&, double, basegfx::B2DLineJoin, com::sun::star::drawing::LineCap) () from /opt/libreoffice4.0/program/libvcllo.so
#11 0xb616ecb4 in OutputDevice::DrawPolyLine(basegfx::B2DPolygon const&, double, basegfx::B2DLineJoin, com::sun::star::drawing::LineCap) ()
   from /opt/libreoffice4.0/program/libvcllo.so
#12 0xb5c903c4 in drawinglayer::processor2d::VclProcessor2D::RenderPolygonHairlinePrimitive2D(drawinglayer::primitive2d::PolygonHairlinePrimitive2D const&, bool) () from /opt/libreoffice4.0/program/libdrawinglayerlo.so
#13 0xb5c8eaa5 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) ()
   from /opt/libreoffice4.0/program/libdrawinglayerlo.so
#14 0xb5c79c70 in drawinglayer::processor2d::BaseProcessor2D::process(com::sun::star::uno::Sequence<com::sun::star::uno::Reference<com::sun::star::graphic::XPrimitive2D> > const&) () from /opt/libreoffice4.0/program/libdrawinglayerlo.so
#15 0xb5c8f14d in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) ()
   from /opt/libreoffice4.0/program/libdrawinglayerlo.so
#16 0xb5c79c70 in drawinglayer::processor2d::BaseProcessor2D::process(com::sun::star::uno::Sequence<com::sun::star::uno::Reference<com::sun::star::graphic::XPrimitive2D> > const&) () from /opt/libreoffice4.0/program/libdrawinglayerlo.so
#17 0xb5c91bad in drawinglayer::processor2d::VclProcessor2D::RenderMaskPrimitive2DPixel(drawinglayer::primitive2d::MaskPrimitive2D const&) ()
   from /opt/libreoffice4.0/program/libdrawinglayerlo.so
#18 0xb5c8ebde in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) ()
   from /opt/libreoffice4.0/program/libdrawinglayerlo.so
#19 0xb5c79c70 in drawinglayer::processor2d::BaseProcessor2D::process(com::sun::star::uno::Sequence<com::sun::star::uno::Reference<com::sun::star::graphic::XPrimitive2D> > const&) () from /opt/libreoffice4.0/program/libdrawinglayerlo.so
#20 0xb5c8f619 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) ()
   from /opt/libreoffice4.0/program/libdrawinglayerlo.so
#21 0xb5c79c70 in drawinglayer::processor2d::BaseProcessor2D::process(com::sun::star::uno::Sequence<com::sun::star::uno::Reference<com::sun::star::graphic::XPrimitive2D> > const&) () from /opt/libreoffice4.0/program/libdrawinglayerlo.so
#22 0xb5c8f619 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) ()
   from /opt/libreoffice4.0/program/libdrawinglayerlo.so
#23 0xb5c79c70 in drawinglayer::processor2d::BaseProcessor2D::process(com::sun::star::uno::Sequence<com::sun::star::uno::Reference<com::sun::star::graphic::XPrimitive2D> > const&) () from /opt/libreoffice4.0/program/libdrawinglayerlo.so
#24 0xad591f52 in sdr::overlay::OverlayManager::ImpDrawMembers(basegfx::B2DRange const&, OutputDevice&) const ()
   from /opt/libreoffice4.0/program/../program/libsvxcorelo.so
#25 0xad58d37b in sdr::overlay::OverlayManagerBuffered::ImpBufferTimerHandler(AutoTimer*) ()
   from /opt/libreoffice4.0/program/../program/libsvxcorelo.so
#26 0xad58d4c2 in sdr::overlay::OverlayManagerBuffered::flush() () from /opt/libreoffice4.0/program/../program/libsvxcorelo.so
#27 0xad5d352c in SdrDragView::ShowDragObj() () from /opt/libreoffice4.0/program/../program/libsvxcorelo.so
#28 0xad5c9b47 in SdrDragMethod::Show() () from /opt/libreoffice4.0/program/../program/libsvxcorelo.so
#29 0xad5cd2ef in SdrDragObjOwn::MoveSdrDrag(Point const&) () from /opt/libreoffice4.0/program/../program/libsvxcorelo.so
#30 0xad5d363f in SdrDragView::MovDragObj(Point const&) () from /opt/libreoffice4.0/program/../program/libsvxcorelo.so
#31 0xad5d3952 in SdrDragView::MovAction(Point const&) () from /opt/libreoffice4.0/program/../program/libsvxcorelo.so
#32 0xad5c6afd in SdrCreateView::MovAction(Point const&) () from /opt/libreoffice4.0/program/../program/libsvxcorelo.so
---Type <return> to continue, or q <return> to quit---
#33 0xad539e6a in E3dView::MovAction(Point const&) () from /opt/libreoffice4.0/program/../program/libsvxcorelo.so
#34 0xae4f4bb1 in FuSelection::MouseMove(MouseEvent const&) () from /opt/libreoffice4.0/program/../program/libsclo.so
#35 0xae69db4e in ScGridWindow::DrawMouseMove(MouseEvent const&) () from /opt/libreoffice4.0/program/../program/libsclo.so
#36 0xae694441 in ScGridWindow::MouseMove(MouseEvent const&) () from /opt/libreoffice4.0/program/../program/libsclo.so
#37 0xb62b6b30 in ImplHandleMouseEvent(Window*, unsigned short, unsigned char, long, long, unsigned long, unsigned short, unsigned short) ()
   from /opt/libreoffice4.0/program/libvcllo.so
#38 0xb62b5ce8 in ImplHandleMouseEvent(Window*, unsigned short, unsigned char, long, long, unsigned long, unsigned short, unsigned short) ()
   from /opt/libreoffice4.0/program/libvcllo.so
#39 0xb62b844c in ImplHandleSalMouseButtonUp(Window*, SalMouseEvent*) () from /opt/libreoffice4.0/program/libvcllo.so
#40 0xb62b7189 in ImplWindowFrameProc(Window*, SalFrame*, unsigned short, void const*) () from /opt/libreoffice4.0/program/libvcllo.so
#41 0xb30d8f47 in SalFrame::CallCallback(unsigned short, void const*) const () from /opt/libreoffice4.0/program/libvclplug_gtklo.so

Is the trace - and this method:

0xb5c8f14d in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) ()
   from /opt/libreoffice4.0/program/libdrawinglayerlo.so

took about five seconds to complete - looks like another wonder-drawing-layer issue ;-)

by contrast this method:

Run till exit from #0  0xad58d37b in sdr::overlay::OverlayManagerBuffered::ImpBufferTimerHandler(AutoTimer*) ()
   from /opt/libreoffice4.0/program/../program/libsvxcorelo.so


Is taking a good 30 seconds before I got bored and gave up. :-)
Comment 5 Cor Nouws 2013-05-25 18:52:19 UTC
(In reply to comment #3)
> Cor you need to right-click & 'show comment' in the cell at the bottom and
> then: wow :-) it is certainly slow alright. My LibreOffice wedges.

Yes that is what I did :-)
I didn't notice any slowing down. Or maybe it was so slow, that it looked stable ;)
Comment 6 ratyhe 2013-05-26 20:51:34 UTC
(In reply to comment #5)
> (In reply to comment #3)
> > Cor you need to right-click & 'show comment' in the cell at the bottom and
> > then: wow :-) it is certainly slow alright. My LibreOffice wedges.
> 
> Yes that is what I did :-)
> I didn't notice any slowing down. Or maybe it was so slow, that it looked
> stable ;)

Create a new Comment (CTRL+ALT+C) where you copy all those those lines. Then you see the full horror of it.

I have tried this with "fast" computers and it still gets laggy as hell.
Comment 7 Michael Meeks 2013-07-26 11:44:48 UTC
Still extremely slow in 4.1.0 - Thorsten - some drawing layer issue, any ideas ? :-)

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.