Recent builds have been causing Calc to lock up when I navigate around large spreadsheets. Steps to reproduce 1. Open attachment 114686 [details] in a recent build of Calc 2. Quickly click on each sheet Results Depending on the order of the sheets you click on, one of the sheets will cause the UI to lock up. Console Errors: ** (soffice:31835): WARNING **: Unknown event notification 34 ** (soffice:31835): WARNING **: Invalidate all children called This warning repeats while the UI is frozen. If I use $ SAL_USE_VCLPLUGIN=gtk ./soffice I cannot reproduce this issue Tested with Ubuntu 14.4. Build ID: 419549b095a1bb95ce23bf3fc8866e6b582e6dde -> Bad Build ID: 589143bc486058e42df5484c111df38c236bc9b7 -> GOOD
I git bisected this bug to: http://cgit.freedesktop.org/libreoffice/core/commit/?id=6f1e77fc600f776433a759172323b4afec3d811e is the first bad commit Author: Stephan Bergmann <sbergman@redhat.com> committer:Eike Rathke <erack@redhat.com> rhbz#1264753: Avoid this being release()ed to 0 in ScAccessibleDocument ctor Stephan or Eike, Can you please take a look? I've noticed this regression in a couple of different spreadsheets already.
Could not repro. I tried to make sure it ran with GTK3: SAL_USE_VCLPLUGIN=gtk3 ./soffice But somehow the UI elements don't look very Gnome3-like.. It should work with a debug build, right? It did say this in the terminal: warn:vcl.plugadapt:9302:1:vcl/unx/generic/plugadapt/salplug.cxx:123: could not load shared object libvclplug_gtk3lo.so Antergos 64-bit, Gnome 3.18 LibO Version: 5.1.0.0.alpha1+ Build ID: 9d2cf7a61afa89139a9d189e11027abbd36b63f9 TinderBox: Linux-rpm_deb-x86_64@70-TDF-dbg, Branch:master, Time: 2015-10-04_23:30:36 Locale: fi-FI (fi_FI.utf8)
can reproduce; problem appears to be that ScTabViewShell::BroadcastAccessibility -> SfxBroadcaster::Broadcast -> ... -> SfxBroadcaster::AddListener keeps adding more listeners to the broadcaster's m_Listeners while it is broadcasting; > SfxBroadcaster::AddListener(SfxListener&) (this=0x87d7280, rListener=...) at svl/source/notify/SfxBroadcaster.cxx:98 > SfxListener::StartListening(SfxBroadcaster&, bool) (this=0x7f0a40b5af10, rBroadcaster=..., bPreventDups=false) at svl/source/notify/lstner.cxx:84 > ScTabViewShell::AddAccessibilityObject(SfxListener&) (this=0x8588bb0, rObject=...) at sc/source/ui/view/tabvwshh.cxx:226 > ScAccessibleSpreadsheet::ConstructScAccessibleSpreadsheet(ScAccessibleDocument*, ScTabViewShell*, short, ScSplitPos) (this=0x7f0a40b5ae70, pAccDoc=0x7f0a49c24208, pViewShell=0x8588bb0, nTab=2, eSplitPos=SC_SPLIT_BOTTOMLEFT) at sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx:300 > ScAccessibleSpreadsheet::ScAccessibleSpreadsheet(ScAccessibleDocument*, ScTabViewShell*, short, ScSplitPos) (this=0x7f0a40b5ae70, pAccDoc=0x7f0a49c24208, pViewShell=0x8588bb0, nTab=2, eSplitPos=SC_SPLIT_BOTTOMLEFT) at sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx:263 > ScAccessibleDocument::GetAccessibleSpreadsheet() (this=0x7f0a49c24208) at sc/source/ui/Accessibility/AccessibleDocument.cxx:2222 > ScAccessibleDocument::getAccessibleChild(int) (this=0x7f0a49c24208, nIndex=0) at sc/source/ui/Accessibility/AccessibleDocument.cxx:1813 > non-virtual thunk to ScAccessibleDocument::getAccessibleChild(int) () at sc/source/ui/Accessibility/AccessibleDocument.cxx:1795 > AtkListener::updateChildList(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleContext> const&) (this=0x7f0a4108f5b0, pContext=uno::Reference to (ScAccessibleDocument *) 0x7f0a49c24278) at vcl/unx/gtk3/a11y/../../gtk/a11y/atklistener.cxx:137 > AtkListener::handleInvalidateChildren(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleContext> const&) (this=0x7f0a4108f5b0, rxParent=uno::Reference to (ScAccessibleDocument *) 0x7f0a49c24278) at vcl/unx/gtk3/a11y/../../gtk/a11y/atklistener.cxx:231 > AtkListener::notifyEvent(com::sun::star::accessibility::AccessibleEventObject const&) (this=0x7f0a4108f5b0, aEvent=...) at vcl/unx/gtk3/a11y/../../gtk/a11y/atklistener.cxx:307 > comphelper::AccessibleEventNotifier::addEvent(unsigned int, com::sun::star::accessibility::AccessibleEventObject const&) (_nClient=9, _rEvent=...) at comphelper/source/misc/accessibleeventnotifier.cxx:281 > ScAccessibleContextBase::CommitChange(com::sun::star::accessibility::AccessibleEventObject const&) const (this=0x7f0a49c24208, rEvent=...) at sc/source/ui/Accessibility/AccessibleContextBase.cxx:519 > ScAccessibleDocument::Notify(SfxBroadcaster&, SfxHint const&) (this=0x7f0a49c24208, rBC=..., rHint=...) at sc/source/ui/Accessibility/AccessibleDocument.cxx:1581 > SfxBroadcaster::Broadcast(SfxHint const&) (this=0x87d7280, rHint=...) at svl/source/notify/SfxBroadcaster.cxx:51 > ScTabViewShell::BroadcastAccessibility(SfxHint const&) (this=0x8588bb0, rHint=...) at sc/source/ui/view/tabvwshh.cxx:252 > ScTabView::TabChanged(bool) (this=0x8588c18, bSameTabButMoved=false) at sc/source/ui/view/tabview5.cxx:288 > ScTabView::SetTabNo(short, bool, bool, bool) (this=0x8588c18, nTab=2, bNew=false, bExtendSelection=true, bSameTabButMoved=false) at sc/source/ui/view/tabview3.cxx:1651 > ScTabViewShell::Execute(SfxRequest&) (this=0x8588bb0, rReq=...) at sc/source/ui/view/tabvwsh3.cxx:459 > SfxStubScTabViewShellExecute(SfxShell*, SfxRequest&) (pShell=0x8588bb0, rReq=...) at workdir/SdiTarget/sc/sdi/scslots.hxx:1510 > SfxShell::CallExec(void (*)(SfxShell*, SfxRequest&), SfxRequest&) (this=0x8588bb0, pFunc=0x7f0ae7936b90 <SfxStubScTabViewShellExecute(SfxShell*, SfxRequest&)>, rReq=...) at include/sfx2/shell.hxx:208 > SfxDispatcher::Call_Impl(SfxShell&, SfxSlot const&, SfxRequest&, bool) (this=0x54acfd0, rShell=..., rSlot=..., rReq=..., bRecord=true) at sfx2/source/control/dispatch.cxx:259 > SfxDispatcher::_Execute(SfxShell&, SfxSlot const&, SfxRequest&, SfxCallMode) (this=0x54acfd0, rShell=..., rSlot=..., rReq=..., eCallMode=SfxCallMode::RECORD) at sfx2/source/control/dispatch.cxx:849 > SfxDispatcher::Execute(unsigned short, SfxCallMode, SfxPoolItem const*, ...) (this=0x54acfd0, nSlot=26042, eCall=SfxCallMode::RECORD, pArg1=0x7ffdef6effc8) at sfx2/source/control/dispatch.cxx:1067 > ScTabControl::Select() (this=0x859c040) at sc/source/ui/view/tabcont.cxx:275 > TabBar::ImplSelect() (this=0x859c040) at svtools/source/control/tabbar.cxx:1560 > TabBar::MouseButtonDown(MouseEvent const&) (this=0x859c040, rMEvt=...) at svtools/source/control/tabbar.cxx:1168 > ScTabControl::MouseButtonDown(MouseEvent const&) (this=0x859c040, rMEvt=...) at sc/source/ui/view/tabcont.cxx:178 > ImplHandleMouseEvent(vcl::Window*, MouseNotifyEvent, bool, long, long, unsigned long, unsigned short, MouseEventModifiers) (pWindow=0x200fe20, nSVEvent=MouseNotifyEvent::MOUSEBUTTONDOWN, bMouseLeave=false, nX=335, nY=966, nMsgTime=17329771, nCode=1, nMode=(MouseEventModifiers::SIMPLECLICK | MouseEventModifiers::SELECT)) at vcl/source/window/winproc.cxx:723 > ImplHandleSalMouseButtonDown(vcl::Window*, SalMouseEvent*) (pWindow=0x200fe20, pEvent=0x7ffdef6f1138) at vcl/source/window/winproc.cxx:2069 > ImplWindowFrameProc(vcl::Window*, SalFrame*, unsigned short, void const*) (_pWindow=0x200fe20, nEvent=3, pEvent=0x7ffdef6f1138) at vcl/source/window/winproc.cxx:2408 > SalFrame::CallCallback(unsigned short, void const*) const (this=0x1bfae00, nEvent=3, pEvent=0x7ffdef6f1138) at vcl/inc/salframe.hxx:255 > GtkSalFrame::signalButton(_GtkWidget*, _GdkEventButton*, void*) (pEvent=0x7f0ac0048600, frame=0x1bfae00) at vcl/unx/gtk3/window/../../gtk/window/gtksalframe.cxx:3470 > _gtk_marshal_BOOLEAN__BOXED () at /lib64/libgtk-3.so.0 > <emit signal ??? on instance 0x1bac480 [GtkEventBox]> (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3361 > g_closure_invoke (closure=0x200cda0, return_value=return_value@entry=0x7ffdef6f1310, n_param_values=2, param_values=param_values@entry=0x7ffdef6f1370, invocation_hint=invocation_hint@entry=0x7ffdef6f12f0) at gclosure.c:768 > signal_emit_unlocked_R (node=node@entry=0x19cd320, detail=detail@entry=0, instance=instance@entry=0x1bac480, emission_return=emission_return@entry=0x7ffdef6f1490, instance_and_params=instance_and_params@entry=0x7ffdef6f1370) at gsignal.c:3549 > g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffdef6f1540) at gsignal.c:3315 > gtk_widget_event_internal () at /lib64/libgtk-3.so.0 > propagate_event () at /lib64/libgtk-3.so.0 > gtk_main_do_event () at /lib64/libgtk-3.so.0 > gdk_event_source_dispatch () at /lib64/libgdk-3.so.0 > g_main_context_dispatch (context=0xeea450) at gmain.c:3122 > g_main_context_dispatch (context=context@entry=0xeea450) at gmain.c:3737 > g_main_context_iterate (context=context@entry=0xeea450, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3808 > g_main_context_iteration (context=0xeea450, may_block=1) at gmain.c:3869 > GtkData::Yield(bool, bool) (this=0xe2f4a0, bWait=true, bHandleAllCurrentEvents=false) at vcl/unx/gtk3/app/../../gtk/app/gtkdata.cxx:607 > GtkInstance::DoYield(bool, bool, unsigned long) (this=0xe2f2c0, bWait=true, bHandleAllCurrentEvents=false, nReleased=0) at vcl/unx/gtk3/app/../../gtk/app/gtkinst.cxx:406 > ImplYield(bool, bool, unsigned long) (i_bWait=true, i_bAllEvents=false, nReleased=0) at vcl/source/app/svapp.cxx:359 > Application::Yield() () at vcl/source/app/svapp.cxx:403 > Application::Execute() () at vcl/source/app/svapp.cxx:336 > desktop::Desktop::Main() (this=0x7ffdef6f26a8) at desktop/source/app/app.cxx:1588 > ImplSVMain() () at vcl/source/app/svmain.cxx:169 > SVMain() () at vcl/source/app/svmain.cxx:206 > soffice_main() () at desktop/source/app/sofficemain.cxx:96 > sal_main () at desktop/source/app/main.c:48 > main (argc=3, argv=0x7ffdef6f2858) at desktop/source/app/main.c:47
Stephan Bergmann committed a patch related to this issue. It has been pushed to "master": http://cgit.freedesktop.org/libreoffice/core/commit/?id=8a334eb222906909bf77006687411ff9e03d9da3 tdf#94687: Keep original ordering of overall initialization steps It will be available in 5.1.0. The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.