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

Michael Meeks <michael.me...@collabora.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
                 CC|                            |caol...@redhat.com
     Ever confirmed|0                           |1

--- Comment #1 from Michael Meeks <michael.me...@collabora.com> ---
Interesting; so this just exposes a previous busy-loop here - we can slow down
layout with a timer and hurt our race-to-idle ;-) or we can identify and fix it
=) the idle handler is:

Thread 1 "soffice.bin" hit Breakpoint 1, sw::DocumentTimerManager::DoIdleJobs
(this=0x671edf0, pIdle=0x671ee08) at
/data/opt/libreoffice/master/sw/source/core/doc/DocumentTimerManager.cxx:90
90          SwRootFrame* pTmpRoot =
m_rDoc.getIDocumentLayoutAccess().GetCurrentLayout();
(gdb) c
Continuing.

Thread 1 "soffice.bin" hit Breakpoint 2, sw::DocumentTimerManager::DoIdleJobs
(this=0x671edf0, pIdle=0x671ee08) at
/data/opt/libreoffice/master/sw/source/core/doc/DocumentTimerManager.cxx:123
123                     pIdle->Start();
(gdb) c
Continuing.

Thread 1 "soffice.bin" hit Breakpoint 1, sw::DocumentTimerManager::DoIdleJobs
(this=0x671edf0, pIdle=0x671ee08) at
/data/opt/libreoffice/master/sw/source/core/doc/DocumentTimerManager.cxx:90
90          SwRootFrame* pTmpRoot =
m_rDoc.getIDocumentLayoutAccess().GetCurrentLayout();
(gdb) c
Continuing.

Thread 1 "soffice.bin" hit Breakpoint 2, sw::DocumentTimerManager::DoIdleJobs
(this=0x671edf0, pIdle=0x671ee08) at
/data/opt/libreoffice/master/sw/source/core/doc/DocumentTimerManager.cxx:123
123                     pIdle->Start();

It seems that we are repeatedly doing layout when comments are enabled from
this longer trace:

#3  0x00007f255f5d7b9e in SwDoc::GetAllLayouts() (this=0x5dc4c90) at
/data/opt/libreoffice/master/sw/source/core/doc/doclay.cxx:1649
#4  0x00007f255f65d897 in sw::DocumentTimerManager::DoIdleJobs(Idle*)
(this=0x671edf0, pIdle=0x671ee08) at
/data/opt/libreoffice/master/sw/source/core/doc/DocumentTimerManager.cxx:114
#5  0x00007f255f65d62d in sw::DocumentTimerManager::LinkStubDoIdleJobs(void*,
Idle*) (instance=0x671edf0, data=0x671ee08) at
/data/opt/libreoffice/master/sw/source/core/doc/DocumentTimerManager.cxx:82

#6  0x00007f258fe210c1 in Link<Idle*, void>::Call(Idle*) const (this=0x671ee28,
data=0x671ee08) at /data/opt/libreoffice/master/include/tools/link.hxx:84
#7  0x00007f25903ae33f in Idle::Invoke() (this=0x671ee08) at
/data/opt/libreoffice/master/vcl/source/app/idle.cxx:25
#8  0x00007f25903b0b53 in ImplSchedulerData::Invoke() (this=0x5e80730) at
/data/opt/libreoffice/master/vcl/source/app/scheduler.cxx:47
#9  0x00007f25903b0f83 in Scheduler::ProcessTaskScheduling(bool)
(bTimerOnly=false) at
/data/opt/libreoffice/master/vcl/source/app/scheduler.cxx:184
#10 0x00007f25903d4029 in ImplYield(bool, bool, unsigned long) (i_bWait=false,
i_bAllEvents=false, nReleased=0) at
/data/opt/libreoffice/master/vcl/source/app/svapp.cxx:518
#11 0x00007f25903d0328 in Application::Yield() () at
/data/opt/libreoffice/master/vcl/source/app/svapp.cxx:551
#12 0x00007f258feb46d9 in Dialog::Execute() (this=0x5d34460) at
/data/opt/libreoffice/master/vcl/source/window/dialog.cxx:912
#13 0x00007f2590306c29 in
Printer::PreparePrintJob(std::shared_ptr<vcl::PrinterController>, JobSetup
const&) (xController=..., i_rInitSetup=...) at
/data/opt/libreoffice/master/vcl/source/gdi/print3.cxx:473
#14 0x00007f2590307411 in
Printer::ImplPrintJob(std::shared_ptr<vcl::PrinterController> const&, JobSetup
const&) (xController=..., i_rInitSetup=...) at
/data/opt/libreoffice/master/vcl/source/gdi/print3.cxx:523
#15 0x00007f2590305b97 in PrintJobAsync::ExecJob(void*) (this=0x5cea870) at
/data/opt/libreoffice/master/vcl/source/gdi/print3.cxx:274
#16 0x00007f2590305b6d in PrintJobAsync::LinkStubExecJob(void*, void*)
(instance=0x5cea870, data=0x0) at
/data/opt/libreoffice/master/vcl/source/gdi/print3.cxx:272
#17 0x00007f258fffb8f9 in Link<void*, void>::Call(void*) const (this=0x5cea8a8,
data=0x0) at /data/opt/libreoffice/master/include/tools/link.hxx:84
#18 0x00007f258fff8dc7 in ImplHandleUserEvent(ImplSVEvent*)
(pSVEvent=0x5cea8a0) at
/data/opt/libreoffice/master/vcl/source/window/winproc.cxx:1946
#19 0x00007f258fffa411 in ImplWindowFrameProc(vcl::Window*, SalEvent, void
const*) (_pWindow=0x34ea140, nEvent=SalEvent::UserEvent, pEvent=0x5cea8a0) at
/data/opt/libreoffice/master/vcl/source/window/winproc.cxx:2496
#20 0x00007f25905193bb in SalFrame::CallCallback(SalEvent, void const*) const
(this=0x34ea8c0, nEvent=SalEvent::UserEvent, pEvent=0x5cea8a0) at
/data/opt/libreoffice/master/vcl/inc/salframe.hxx:280

Caolan - I guess you're the expert here =)

-- 
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