Repository navigation
Conversation
There was a problem hiding this comment.
Instead, change this to read: ... is to work on the code base, however. Overall...
This time, I will apply your patch through our Gerrit instance; please register there if you want to contribute further patches. This is only a mirror; LibreOffice doesn’t use GitHub for its development process.
Also, please send a license statement as described here: https://wiki.documentfoundation.org/Development/gerrit/SubmitPatch#Add_yourself_to_the_contributor_list
|
(When you submit the license statement, I’ll apply your patch, not before; it’s a prerequisite for new contributors. Sorry for not conveying this in my earlier comment.) |
...before the destruction of the std::unique_ptr<SbxAppData> xSbxAppData; member during the destruction of BasicDLLImpl can set that BasicDLLImpl::xSbxAppData to null. Because the destruction of SbxAppData::m_aGlobErr may call into SbxValue::Put -> SbxBase::GetError -> GetSbxData_Impl, which would recursively access that return *BasicDLLImpl::BASIC_DLL->xSbxAppData; This causes problems with libc++ (i.e., on macOS), where ~std::unique_ptr sets its internal pointer to null before calling the destructor of the pointed-to object. Whereas it happens to not cause problems with e.g. libstdc++, where ~std::unique_ptr calls the destructor of the pointed-to object first before setting the pointer to null. The problem showed up with <https://gerrit.libreoffice.org/c/core/+/85017/14> "VBA Err object raise method TestCases", where CppunitTest_basic_macros kept failing on macOS with > * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0) > frame #0: 0x00000001119f18e7 libsblo.dylib`SbxValue::Put(this=0x000000014c1cff00, rVal=0x00007ffeefbf1218) + 55 at basic/source/sbx/sbxvalue.cxx:414 > 411 bool SbxValue::Put( const SbxValues& rVal ) > 412 { > 413 bool bRes = false; > -> 414 ErrCode eOld = GetError(); > 415 if( eOld != ERRCODE_NONE ) > 416 ResetError(); > 417 if( !CanWrite() ) > Target 0: (cppunittester) stopped. > (lldb) bt > * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0) > * frame #0: 0x00000001119f18e7 libsblo.dylib`SbxValue::Put(this=0x000000014c1cff00, rVal=0x00007ffeefbf1218) + 55 at basic/source/sbx/sbxvalue.cxx:414 > frame #1: 0x00000001119f2399 libsblo.dylib`SbxValue::Clear(this=0x000000014c1cff00) + 553 at basic/source/sbx/sbxvalue.cxx:176 > frame #2: 0x00000001119f20d0 libsblo.dylib`SbxValue::~SbxValue(this=0x000000014c1cff00, vtt=0x0000000111a2af70) + 80 at basic/source/sbx/sbxvalue.cxx:139 > frame #3: 0x00000001119f825d libsblo.dylib`SbxVariable::~SbxVariable(this=0x000000014c1cff00, vtt=0x0000000111a2af68) + 381 at basic/source/sbx/sbxvar.cxx:125 > frame #4: 0x00000001119e619a libsblo.dylib`SbxProperty::~SbxProperty(this=0x000000014c1cff00, vtt=0x0000000111a2af60) + 42 at basic/source/sbx/sbxobj.cxx:861 > frame #5: 0x000000011188ce81 libsblo.dylib`SbUnoProperty::~SbUnoProperty(this=0x000000014c1cff00, vtt=0x0000000111a2af58) + 97 at basic/source/classes/sbunoobj.cxx:2591 > frame #6: 0x000000011188ceb3 libsblo.dylib`SbUnoProperty::~SbUnoProperty(this=0x000000014c1cff00) + 35 at basic/source/classes/sbunoobj.cxx:2591 > frame #7: 0x000000011188cf0c libsblo.dylib`SbUnoProperty::~SbUnoProperty(this=0x000000014c1cff00) + 28 at basic/source/classes/sbunoobj.cxx:2591 > frame #8: 0x000000011180c235 libsblo.dylib`SvRefBase::ReleaseRef(this=0x000000014c1cffa0) + 197 at include/tools/ref.hxx:163 > frame #9: 0x000000011184fda7 libsblo.dylib`tools::SvRef<SbxVariable>::~SvRef(this=0x000000014c1d2490) + 55 at include/tools/ref.hxx:56 > frame #10: 0x000000011184a545 libsblo.dylib`tools::SvRef<SbxVariable>::~SvRef(this=0x000000014c1d2490) + 21 at include/tools/ref.hxx:55 > frame #11: 0x00000001119be5af libsblo.dylib`SbxVarEntry::~SbxVarEntry(this=0x000000014c1d2490) + 47 at basic/source/sbx/sbxarray.cxx:31 > frame #12: 0x00000001119bc3d5 libsblo.dylib`SbxVarEntry::~SbxVarEntry(this=0x000000014c1d2490) + 21 at basic/source/sbx/sbxarray.cxx:31 > frame #13: 0x00000001119bed29 libsblo.dylib`std::__1::allocator<SbxVarEntry>::destroy(this=0x000000014c1940a0, __p=0x000000014c1d2490) + 25 at c++/v1/memory:1931 > frame #14: 0x00000001119becfd libsblo.dylib`void std::__1::allocator_traits<std::__1::allocator<SbxVarEntry> >::__destroy<SbxVarEntry>((null)=std::__1::true_type @ 0x00007ffeefbf1448, __a=0x000000014c1940a0, __p=0x000000014c1d2490) + 29 at c++/v1/memory:1793 > frame #15: 0x00000001119beccd libsblo.dylib`void std::__1::allocator_traits<std::__1::allocator<SbxVarEntry> >::destroy<SbxVarEntry>(__a=0x000000014c1940a0, __p=0x000000014c1d2490) + 29 at c++/v1/memory:1630 > frame #16: 0x00000001119bec7b libsblo.dylib`std::__1::__vector_base<SbxVarEntry, std::__1::allocator<SbxVarEntry> >::__destruct_at_end(this=0x000000014c194090, __new_last=0x000000014c1d2490) + 91 at c++/v1/vector:426 > frame #17: 0x00000001119bebab libsblo.dylib`std::__1::__vector_base<SbxVarEntry, std::__1::allocator<SbxVarEntry> >::clear(this=0x000000014c194090) + 27 at c++/v1/vector:369 > frame #18: 0x00000001119bea47 libsblo.dylib`std::__1::__vector_base<SbxVarEntry, std::__1::allocator<SbxVarEntry> >::~__vector_base(this=0x000000014c194090) + 39 at c++/v1/vector:463 > frame #19: 0x00000001119be958 libsblo.dylib`std::__1::vector<SbxVarEntry, std::__1::allocator<SbxVarEntry> >::~vector(this=0x000000014c194090 size=3) + 40 at c++/v1/vector:555 > frame #20: 0x00000001119bafa5 libsblo.dylib`std::__1::vector<SbxVarEntry, std::__1::allocator<SbxVarEntry> >::~vector(this=0x000000014c194090 size=3) + 21 at c++/v1/vector:550 > frame #21: 0x00000001119bb457 libsblo.dylib`SbxArray::~SbxArray(this=0x000000014c194080, vtt=0x0000000111a385e8) + 71 at basic/source/sbx/sbxarray.cxx:75 > frame #22: 0x00000001119bb4a3 libsblo.dylib`SbxArray::~SbxArray(this=0x000000014c194080) + 35 at basic/source/sbx/sbxarray.cxx:74 > frame #23: 0x00000001119bb4fc libsblo.dylib`SbxArray::~SbxArray(this=0x000000014c194080) + 28 at basic/source/sbx/sbxarray.cxx:74 > frame #24: 0x000000011180c235 libsblo.dylib`SvRefBase::ReleaseRef(this=0x000000014c194080) + 197 at include/tools/ref.hxx:163 > frame #25: 0x000000011184dbd7 libsblo.dylib`tools::SvRef<SbxArray>::~SvRef(this=0x000000014c1cfe58) + 55 at include/tools/ref.hxx:56 > frame #26: 0x000000011184cc25 libsblo.dylib`tools::SvRef<SbxArray>::~SvRef(this=0x000000014c1cfe58) + 21 at include/tools/ref.hxx:55 > frame #27: 0x00000001119e0d10 libsblo.dylib`SbxObject::~SbxObject(this=0x000000014c1cfdd0, vtt=0x0000000111a37d18) + 288 at basic/source/sbx/sbxobj.cxx:111 > frame #28: 0x000000011188b73d libsblo.dylib`SbUnoObject::~SbUnoObject(this=0x000000014c1cfdd0, vtt=0x0000000111a37d10) + 221 at basic/source/classes/sbunoobj.cxx:2387 > frame #29: 0x0000000111990d51 libsblo.dylib`SbxErrObject::~SbxErrObject(this=0x000000014c1cfdd0, vtt=0x0000000111a37d08) + 113 at basic/source/classes/errobject.cxx:184 > frame #30: 0x0000000111990d83 libsblo.dylib`SbxErrObject::~SbxErrObject(this=0x000000014c1cfdd0) + 35 at basic/source/classes/errobject.cxx:183 > frame #31: 0x0000000111990dfc libsblo.dylib`SbxErrObject::~SbxErrObject(this=0x000000014c1cfdd0) + 28 at basic/source/classes/errobject.cxx:183 > frame #32: 0x000000011180c235 libsblo.dylib`SvRefBase::ReleaseRef(this=0x000000014c1cfee8) + 197 at include/tools/ref.hxx:163 > frame #33: 0x00000001119bcac6 libsblo.dylib`tools::SvRef<SbxVariable>::clear(this=0x0000000110e365a8) + 70 at include/tools/ref.hxx:64 > frame #34: 0x00000001119ca764 libsblo.dylib`SbxAppData::~SbxAppData(this=0x0000000110e365a0) + 84 at basic/source/sbx/sbxbase.cxx:49 > frame #35: 0x00000001119ca965 libsblo.dylib`SbxAppData::~SbxAppData(this=0x0000000110e365a0) + 21 at basic/source/sbx/sbxbase.cxx:45 > frame #36: 0x000000011199272b libsblo.dylib`std::__1::default_delete<SbxAppData>::operator(this=0x0000000110e2cfb0, __ptr=0x0000000110e365a0)(SbxAppData*) const + 43 at c++/v1/memory:2363 > frame #37: 0x00000001119926af libsblo.dylib`std::__1::unique_ptr<SbxAppData, std::__1::default_delete<SbxAppData> >::reset(this=0x0000000110e2cfb0, __p=0x0000000000000000) + 95 at c++/v1/memory:2618 > frame #38: 0x0000000111992649 libsblo.dylib`std::__1::unique_ptr<SbxAppData, std::__1::default_delete<SbxAppData> >::~unique_ptr(this=0x0000000110e2cfb0) + 25 at c++/v1/memory:2572 > frame #39: 0x0000000111992625 libsblo.dylib`std::__1::unique_ptr<SbxAppData, std::__1::default_delete<SbxAppData> >::~unique_ptr(this=0x0000000110e2cfb0) + 21 at c++/v1/memory:2572 > frame #40: 0x00000001119925f5 libsblo.dylib`(anonymous namespace)::BasicDLLImpl::~BasicDLLImpl(this=0x0000000110e2cfa0) + 53 at basic/source/runtime/basrdll.cxx:33 > frame #41: 0x0000000111992415 libsblo.dylib`(anonymous namespace)::BasicDLLImpl::~BasicDLLImpl(this=0x0000000110e2cfa0) + 21 at basic/source/runtime/basrdll.cxx:33 > frame #42: 0x000000011199243c libsblo.dylib`(anonymous namespace)::BasicDLLImpl::~BasicDLLImpl(this=0x0000000110e2cfa0) + 28 at basic/source/runtime/basrdll.cxx:33 > frame #43: 0x000000011180c235 libsblo.dylib`SvRefBase::ReleaseRef(this=0x0000000110e2cfa0) + 197 at include/tools/ref.hxx:163 > frame #44: 0x0000000111992039 libsblo.dylib`tools::SvRef<SvRefBase>::clear(this=0x00007ffeefbf1bb0) + 57 at include/tools/ref.hxx:64 > frame #45: 0x0000000111991f0b libsblo.dylib`BasicDLL::~BasicDLL(this=0x00007ffeefbf1bb0) + 123 at basic/source/runtime/basrdll.cxx:69 > frame #46: 0x0000000111992055 libsblo.dylib`BasicDLL::~BasicDLL(this=0x00007ffeefbf1bb0) + 21 at basic/source/runtime/basrdll.cxx:66 > frame #47: 0x0000000110f07a5a libtest_basic_macros.dylib`MacroSnippet::~MacroSnippet(this=0x00007ffeefbf1ba8) + 74 at basic/qa/cppunit/basictest.hxx:23 > frame #48: 0x0000000110f07a05 libtest_basic_macros.dylib`MacroSnippet::~MacroSnippet(this=0x00007ffeefbf1ba8) + 21 at basic/qa/cppunit/basictest.hxx:23 > frame #49: 0x0000000110f269b7 libtest_basic_macros.dylib`(anonymous namespace)::VBATest::testMiscVBAFunctions(this=0x0000000100651890) + 1319 at basic/qa/cppunit/test_vba.cxx:168 [...] Change-Id: I776b7f0686e0915b69119b2e6a513e2a4b40822f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90967 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
…roller ...and not just add it to the new controller. It caused > $ SAL_USE_VCLPLUGIN=gen make UITest_chart UITEST_TEST_NAME=chartLegend.chartLegend.test_chart_display_legend_dialog to fail with > ==346284==ERROR: AddressSanitizer: heap-use-after-free on address 0x61a00049cca8 at pc 0x7f8496747751 bp 0x7fff7c483f10 sp 0x7fff7c483f08 > READ of size 8 at 0x61a00049cca8 thread T0 > #0 in chart::sidebar::ChartSidebarSelectionListener::selectionChanged(com::sun::star::lang::EventObject const&) at chart2/source/controller/sidebar/ChartSidebarSelectionListener.cxx:66:15 > #1 in chart::ChartController::impl_notifySelectionChangeListeners() at chart2/source/controller/main/ChartController_Window.cxx:1740:28 > #2 in chart::ChartController::impl_selectObjectAndNotiy() at chart2/source/controller/main/ChartController_Window.cxx:1756:5 > #3 in chart::ChartController::modeChanged(com::sun::star::util::ModeChangeEvent const&) at chart2/source/controller/main/ChartController.cxx:538:31 > #4 in chart::ChartView::impl_notifyModeChangeListener(rtl::OUString const&) at chart2/source/view/main/ChartView.cxx:2653:32 > #5 in chart::ChartView::impl_updateView(bool) at chart2/source/view/main/ChartView.cxx:2561:9 > #6 in chart::ChartView::update() at chart2/source/view/main/ChartView.cxx:2687:5 > #7 in chart::ChartController::execute_Paint(OutputDevice&, tools::Rectangle const&) at chart2/source/controller/main/ChartController_Window.cxx:485:25 > #8 in chart::ChartWindow::Paint(OutputDevice&, tools::Rectangle const&) at chart2/source/controller/main/ChartWindow.cxx:99:30 > #9 in PaintHelper::DoPaint(vcl::Region const*) at vcl/source/window/paint.cxx:309:24 > #10 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:613:17 > #11 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:549:30 > #12 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:619:1 > #13 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:549:30 > #14 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:619:1 > #15 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:549:30 > #16 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:619:1 > #17 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:549:30 > #18 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:619:1 > #19 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:549:30 > #20 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:619:1 > #21 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:549:30 > #22 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:619:1 > #23 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:549:30 > #24 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:619:1 > #25 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:549:30 > #26 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:619:1 > #27 in vcl::Window::ImplCallOverlapPaint() at vcl/source/window/paint.cxx:637:9 > #28 in vcl::Window::ImplHandlePaintHdl(Timer*) at vcl/source/window/paint.cxx:660:9 > #29 in vcl::Window::LinkStubImplHandlePaintHdl(void*, Timer*) at vcl/source/window/paint.cxx:641:1 > #30 in Link<Timer*, void>::Call(Timer*) const at include/tools/link.hxx:111:45 > #31 in Timer::Invoke() at vcl/source/app/timer.cxx:75:21 > #32 in Scheduler::ProcessTaskScheduling() at vcl/source/app/scheduler.cxx:478:20 > #33 in Scheduler::CallbackTaskScheduling() at vcl/source/app/scheduler.cxx:287:5 > #34 in SalTimer::CallCallback() at vcl/inc/saltimer.hxx:54:13 > #35 in X11SalData::Timeout() at vcl/unx/generic/app/saldata.cxx:551:41 > #36 in SalXLib::CheckTimeout(bool) at vcl/unx/generic/app/saldata.cxx:635:17 > #37 in SalXLib::Yield(bool, bool) at vcl/unx/generic/app/saldata.cxx:716:25 > #38 in X11SalInstance::DoYield(bool, bool) at vcl/unx/generic/app/salinst.cxx:182:20 > #39 in ImplYield(bool, bool) at vcl/source/app/svapp.cxx:454:48 > #40 in Application::Yield() at vcl/source/app/svapp.cxx:518:5 > #41 in Application::Execute() at vcl/source/app/svapp.cxx:433:9 > #42 in desktop::Desktop::Main() at desktop/source/app/app.cxx:1602:17 > #43 in ImplSVMain() at vcl/source/app/svmain.cxx:196:35 > #44 in SVMain() at vcl/source/app/svmain.cxx:228:12 > #45 in soffice_main at desktop/source/app/sofficemain.cxx:107:12 > #46 in sal_main at desktop/source/app/main.c:48:15 > #47 in main at desktop/source/app/main.c:47:1 > 0x61a00049cca8 is located 1064 bytes inside of 1160-byte region [0x61a00049c880,0x61a00049cd08) > freed by thread T0 here: > #0 in operator delete(void*, unsigned long) at compiler-rt/lib/asan/asan_new_delete.cpp:172:3 > #1 in chart::sidebar::ChartLinePanel::~ChartLinePanel() at chart2/source/controller/sidebar/ChartLinePanel.cxx:143:1 > #2 in VclReferenceBase::release() const at include/vcl/vclreferencebase.hxx:40:13 > #3 in rtl::Reference<vcl::Window>::~Reference() at include/rtl/ref.hxx:92:22 > #4 in VclPtr<vcl::Window>::disposeAndClear() at include/vcl/vclptr.hxx:208:5 > #5 in sfx2::sidebar::SidebarPanelBase::disposing() at sfx2/source/sidebar/SidebarPanelBase.cxx:81:15 > #6 in cppu::WeakComponentImplHelperBase::dispose() at cppuhelper/source/implbase.cxx:102:17 > #7 in cppu::PartialWeakComponentImplHelper<com::sun::star::ui::XContextChangeEventListener, com::sun::star::ui::XUIElement, com::sun::star::ui::XToolPanel, com::sun::star::ui::XSidebarPanel, com::sun::star::ui::XUpdateModel>::dispose() at include/cppuhelper/compbase.hxx:90:36 > #8 in sfx2::sidebar::Panel::dispose() at sfx2/source/sidebar/Panel.cxx:106:25 > #9 in VclReferenceBase::disposeOnce() at vcl/source/outdev/vclreferencebase.cxx:38:5 > #10 in VclPtr<sfx2::sidebar::Panel>::disposeAndClear() at include/vcl/vclptr.hxx:206:19 > #11 in sfx2::sidebar::Deck::dispose() at sfx2/source/sidebar/Deck.cxx:92:17 > #12 in VclReferenceBase::disposeOnce() at vcl/source/outdev/vclreferencebase.cxx:38:5 > #13 in VclPtr<sfx2::sidebar::Deck>::disposeAndClear() at include/vcl/vclptr.hxx:206:19 > #14 in sfx2::sidebar::SidebarController::CreateDeck(rtl::OUString const&, sfx2::sidebar::Context const&, bool) at sfx2/source/sidebar/SidebarController.cxx:664:19 > #15 in sfx2::sidebar::SidebarController::SwitchToDeck(sfx2::sidebar::DeckDescriptor const&, sfx2::sidebar::Context const&) at sfx2/source/sidebar/SidebarController.cxx:822:5 > #16 in sfx2::sidebar::SidebarController::UpdateConfigurations() at sfx2/source/sidebar/SidebarController.cxx:569:9 > #17 in sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, SfxViewFrame const*)::$_3::operator()() const at sfx2/source/sidebar/SidebarController.cxx:140:52 > #18 in void std::__invoke_impl<void, sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, SfxViewFrame const*)::$_3&>(std::__invoke_other, sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, SfxViewFrame const*)::$_3&) at include/c++/10.0.1/bits/invoke.h:60:14 > #19 in std::enable_if<is_invocable_r_v<void, sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, SfxViewFrame const*)::$_3&>, void>::type std::__invoke_r<void, sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, SfxViewFrame const*)::$_3&>(sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, SfxViewFrame const*)::$_3&) at include/c++/10.0.1/bits/invoke.h:110:2 > #20 in std::_Function_handler<void (), sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, SfxViewFrame const*)::$_3>::_M_invoke(std::_Any_data const&) at include/c++/10.0.1/bits/std_function.h:291:9 > #21 in std::function<void ()>::operator()() const at include/c++/10.0.1/bits/std_function.h:622:14 > #22 in sfx2::sidebar::AsynchronousCall::HandleUserCall(void*) at sfx2/source/sidebar/AsynchronousCall.cxx:66:9 > #23 in sfx2::sidebar::AsynchronousCall::LinkStubHandleUserCall(void*, void*) at sfx2/source/sidebar/AsynchronousCall.cxx:62:1 > #24 in Link<void*, void>::Call(void*) const at include/tools/link.hxx:111:45 > #25 in ImplHandleUserEvent(ImplSVEvent*) at vcl/source/window/winproc.cxx:2009:30 > #26 in ImplWindowFrameProc(vcl::Window*, SalEvent, void const*) at vcl/source/window/winproc.cxx:2562:13 > #27 in SalFrame::CallCallback(SalEvent, void const*) const at vcl/inc/salframe.hxx:306:29 > #28 in SalGenericDisplay::ProcessEvent(SalUserEventList::SalUserEvent) at vcl/unx/generic/app/gendisp.cxx:66:22 > #29 in SalUserEventList::DispatchUserEvents(bool) at vcl/source/app/salusereventlist.cxx:108:17 > #30 in SalGenericDisplay::DispatchInternalEvent(bool) at vcl/unx/generic/app/gendisp.cxx:51:12 > #31 in SalX11Display::Yield() at vcl/unx/generic/app/saldisp.cxx:1918:9 > #32 in DisplayYield(int, void*) at vcl/unx/generic/app/saldisp.cxx:414:13 > #33 in (anonymous namespace)::YieldEntry::HandleNextEvent() const at vcl/unx/generic/app/saldata.cxx:566:38 > #34 in SalXLib::Yield(bool, bool) at vcl/unx/generic/app/saldata.cxx:662:25 > #35 in X11SalInstance::DoYield(bool, bool) at vcl/unx/generic/app/salinst.cxx:182:20 > #36 in ImplYield(bool, bool) at vcl/source/app/svapp.cxx:454:48 > #37 in Application::Yield() at vcl/source/app/svapp.cxx:518:5 > #38 in Dialog::Execute() at vcl/source/window/dialog.cxx:1032:9 > #39 in SalInstanceDialog::run() at vcl/source/app/salvtables.cxx:1480:23 > #40 in weld::DialogController::run() at include/vcl/weld.hxx:2196:47 > #41 in chart::ChartController::executeDispatch_OpenLegendDialog() at chart2/source/controller/main/ChartController_Insert.cxx:227:18 > #42 in chart::ChartController::dispatch(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at chart2/source/controller/main/ChartController.cxx:1130:15 > #43 in ChartUIObject::PostCommand(void*) at chart2/source/controller/uitest/uiobject.cxx:76:41 > #44 in ChartUIObject::LinkStubPostCommand(void*, void*) at chart2/source/controller/uitest/uiobject.cxx:72:1 > #45 in Link<void*, void>::Call(void*) const at include/tools/link.hxx:111:45 > #46 in ImplHandleUserEvent(ImplSVEvent*) at vcl/source/window/winproc.cxx:2009:30 > #47 in ImplWindowFrameProc(vcl::Window*, SalEvent, void const*) at vcl/source/window/winproc.cxx:2562:13 > #48 in SalFrame::CallCallback(SalEvent, void const*) const at vcl/inc/salframe.hxx:306:29 > #49 in SalGenericDisplay::ProcessEvent(SalUserEventList::SalUserEvent) at vcl/unx/generic/app/gendisp.cxx:66:22 > #50 in SalUserEventList::DispatchUserEvents(bool) at vcl/source/app/salusereventlist.cxx:108:17 > #51 in SalGenericDisplay::DispatchInternalEvent(bool) at vcl/unx/generic/app/gendisp.cxx:51:12 > #52 in SalX11Display::Yield() at vcl/unx/generic/app/saldisp.cxx:1918:9 > #53 in DisplayYield(int, void*) at vcl/unx/generic/app/saldisp.cxx:414:13 > #54 in (anonymous namespace)::YieldEntry::HandleNextEvent() const at vcl/unx/generic/app/saldata.cxx:566:38 > #55 in SalXLib::Yield(bool, bool) at vcl/unx/generic/app/saldata.cxx:662:25 > #56 in X11SalInstance::DoYield(bool, bool) at vcl/unx/generic/app/salinst.cxx:182:20 > #57 in ImplYield(bool, bool) at vcl/source/app/svapp.cxx:454:48 > #58 in Application::Reschedule(bool) at vcl/source/app/svapp.cxx:467:12 > #59 in (anonymous namespace)::ExecuteWrapper::ExecuteActionHdl(Timer*) at vcl/source/uitest/uno/uiobject_uno.cxx:91:13 > #60 in (anonymous namespace)::ExecuteWrapper::LinkStubExecuteActionHdl(void*, Timer*) at vcl/source/uitest/uno/uiobject_uno.cxx:78:1 > #61 in Link<Timer*, void>::Call(Timer*) const at include/tools/link.hxx:111:45 > #62 in Timer::Invoke() at vcl/source/app/timer.cxx:75:21 > #63 in Scheduler::ProcessTaskScheduling() at vcl/source/app/scheduler.cxx:478:20 > #64 in Scheduler::CallbackTaskScheduling() at vcl/source/app/scheduler.cxx:287:5 > #65 in SalTimer::CallCallback() at vcl/inc/saltimer.hxx:54:13 > #66 in X11SalData::Timeout() at vcl/unx/generic/app/saldata.cxx:551:41 > #67 in SalXLib::CheckTimeout(bool) at vcl/unx/generic/app/saldata.cxx:635:17 > #68 in SalXLib::Yield(bool, bool) at vcl/unx/generic/app/saldata.cxx:716:25 > #69 in X11SalInstance::DoYield(bool, bool) at vcl/unx/generic/app/salinst.cxx:182:20 > #70 in ImplYield(bool, bool) at vcl/source/app/svapp.cxx:454:48 > #71 in Application::Yield() at vcl/source/app/svapp.cxx:518:5 > #72 in Application::Execute() at vcl/source/app/svapp.cxx:433:9 > #73 in desktop::Desktop::Main() at desktop/source/app/app.cxx:1602:17 > #74 in ImplSVMain() at vcl/source/app/svmain.cxx:196:35 > #75 in SVMain() at vcl/source/app/svmain.cxx:228:12 > #76 in soffice_main at desktop/source/app/sofficemain.cxx:107:12 > #77 in sal_main at desktop/source/app/main.c:48:15 > #78 in main at desktop/source/app/main.c:47:1 > previously allocated by thread T0 here: > #0 in operator new(unsigned long) at compiler-rt/lib/asan/asan_new_delete.cpp:99:3 > #1 in VclPtr<chart::sidebar::ChartLinePanel> VclPtr<chart::sidebar::ChartLinePanel>::Create<vcl::Window*&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, chart::ChartController*&>(vcl::Window*&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, chart::ChartController*&) at include/vcl/vclptr.hxx:129:42 > #2 in chart::sidebar::ChartLinePanel::Create(vcl::Window*, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, chart::ChartController*) at chart2/source/controller/sidebar/ChartLinePanel.cxx:117:12 > #3 in chart::sidebar::ChartPanelFactory::createUIElement(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at chart2/source/controller/sidebar/Chart2PanelFactory.cxx:107:22 > #4 in non-virtual thunk to chart::sidebar::ChartPanelFactory::createUIElement(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at chart2/source/controller/sidebar/Chart2PanelFactory.cxx > #5 in (anonymous namespace)::UIElementFactoryManager::createUIElement(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/uifactory/uielementfactorymanager.cxx:437:39 > #6 in non-virtual thunk to (anonymous namespace)::UIElementFactoryManager::createUIElement(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/uifactory/uielementfactorymanager.cxx > #7 in sfx2::sidebar::SidebarController::CreateUIElement(com::sun::star::uno::Reference<com::sun::star::awt::XWindowPeer> const&, rtl::OUString const&, bool, sfx2::sidebar::Context const&) at sfx2/source/sidebar/SidebarController.cxx:967:32 > #8 in sfx2::sidebar::SidebarController::CreatePanel(rtl::OUString const&, vcl::Window*, bool, sfx2::sidebar::Context const&, VclPtr<sfx2::sidebar::Deck> const&) at sfx2/source/sidebar/SidebarController.cxx:908:43 > #9 in sfx2::sidebar::SidebarController::CreatePanels(rtl::OUString const&, sfx2::sidebar::Context const&) at sfx2/source/sidebar/SidebarController.cxx:720:41 > #10 in sfx2::sidebar::SidebarController::CreateDeck(rtl::OUString const&, sfx2::sidebar::Context const&, bool) at sfx2/source/sidebar/SidebarController.cxx:672:5 > #11 in sfx2::sidebar::SidebarController::SwitchToDeck(sfx2::sidebar::DeckDescriptor const&, sfx2::sidebar::Context const&) at sfx2/source/sidebar/SidebarController.cxx:822:5 > #12 in sfx2::sidebar::SidebarController::UpdateConfigurations() at sfx2/source/sidebar/SidebarController.cxx:569:9 > #13 in sfx2::sidebar::SidebarController::notifyContextChangeEvent(com::sun::star::ui::ContextChangeEventObject const&) at sfx2/source/sidebar/SidebarController.cxx:323:9 > #14 in (anonymous namespace)::ContextChangeEventMultiplexer::addContextChangeEventListener(com::sun::star::uno::Reference<com::sun::star::ui::XContextChangeEventListener> const&, com::sun::star::uno::Reference<com::sun::star::uno::XInterface> const&) at framework/source/services/ContextChangeEventMultiplexer.cxx:176:29 > #15 in sfx2::sidebar::SidebarController::registerSidebarForFrame(sfx2::sidebar::SidebarController*, com::sun::star::uno::Reference<com::sun::star::frame::XController> const&) at sfx2/source/sidebar/SidebarController.cxx:213:19 > #16 in chart::ChartController::attachFrame(com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) at chart2/source/controller/main/ChartController.cxx:400:9 > #17 in chart::ChartFrameLoader::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) at chart2/source/controller/main/ChartFrameloader.cxx:133:22 > #18 in framework::LoadEnv::impl_loadContent() at framework/source/loadenv/loadenv.cxx:1157:37 > #19 in framework::LoadEnv::start() at framework/source/loadenv/loadenv.cxx:395:20 > #20 in framework::LoadEnv::startLoading(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, rtl::OUString const&, int, LoadEnvFeatures) at framework/source/loadenv/loadenv.cxx:300:5 > #21 in framework::LoadEnv::loadComponentFromURL(com::sun::star::uno::Reference<com::sun::star::frame::XComponentLoader> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/loadenv/loadenv.cxx:169:14 > #22 in (anonymous namespace)::XFrameImpl::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/services/frame.cxx:590:16 > #23 in non-virtual thunk to (anonymous namespace)::XFrameImpl::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/services/frame.cxx > #24 in DocumentHolder::LoadDocToFrame(bool) at embeddedobj/source/general/docholder.cxx:984:31 > #25 in DocumentHolder::ShowInplace(com::sun::star::uno::Reference<com::sun::star::awt::XWindowPeer> const&, com::sun::star::awt::Rectangle const&, com::sun::star::uno::Reference<com::sun::star::frame::XDispatchProvider> const&) at embeddedobj/source/general/docholder.cxx:477:15 > #26 in OCommonEmbeddedObject::SwitchStateTo_Impl(int) at embeddedobj/source/commonembedding/embedobj.cxx:252:42 > #27 in OCommonEmbeddedObject::changeState(int) at embeddedobj/source/commonembedding/embedobj.cxx:451:17 > #28 in OCommonEmbeddedObject::doVerb(int) at embeddedobj/source/commonembedding/embedobj.cxx:537:9 > #29 in SfxInPlaceClient::DoVerb(long) at sfx2/source/view/ipclient.cxx:950:40 > #30 in ScTabViewShell::ActivateObject(SdrOle2Obj*, long) at sc/source/ui/view/tabvwshb.cxx:205:29 > #31 in ScGridWinUIObject::execute(rtl::OUString const&, std::__debug::map<rtl::OUString const, rtl::OUString, std::less<rtl::OUString const>, std::allocator<std::pair<rtl::OUString const, rtl::OUString> > > const&) at sc/source/ui/uitest/uiobject.cxx:175:29 > #32 in UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0::operator()() const at vcl/source/uitest/uno/uiobject_uno.cxx:124:16 > #33 in void std::__invoke_impl<void, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&>(std::__invoke_other, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&) at include/c++/10.0.1/bits/invoke.h:60:14 > #34 in std::enable_if<is_invocable_r_v<void, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&>, void>::type std::__invoke_r<void, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&>(UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&) at include/c++/10.0.1/bits/invoke.h:110:2 > #35 in std::_Function_handler<void (), UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0>::_M_invoke(std::_Any_data const&) at include/c++/10.0.1/bits/std_function.h:291:9 > #36 in std::function<void ()>::operator()() const at include/c++/10.0.1/bits/std_function.h:622:14 > #37 in (anonymous namespace)::ExecuteWrapper::ExecuteActionHdl(Timer*) at vcl/source/uitest/uno/uiobject_uno.cxx:83:13 > #38 in (anonymous namespace)::ExecuteWrapper::LinkStubExecuteActionHdl(void*, Timer*) at vcl/source/uitest/uno/uiobject_uno.cxx:78:1 > #39 in Link<Timer*, void>::Call(Timer*) const at include/tools/link.hxx:111:45 > #40 in Timer::Invoke() at vcl/source/app/timer.cxx:75:21 > #41 in Scheduler::ProcessTaskScheduling() at vcl/source/app/scheduler.cxx:478:20 > #42 in Scheduler::CallbackTaskScheduling() at vcl/source/app/scheduler.cxx:287:5 > #43 in SalTimer::CallCallback() at vcl/inc/saltimer.hxx:54:13 > #44 in X11SalData::Timeout() at vcl/unx/generic/app/saldata.cxx:551:41 > #45 in SalXLib::CheckTimeout(bool) at vcl/unx/generic/app/saldata.cxx:635:17 > #46 in SalXLib::Yield(bool, bool) at vcl/unx/generic/app/saldata.cxx:716:25 > #47 in X11SalInstance::DoYield(bool, bool) at vcl/unx/generic/app/salinst.cxx:182:20 > #48 in ImplYield(bool, bool) at vcl/source/app/svapp.cxx:454:48 > #49 in Application::Yield() at vcl/source/app/svapp.cxx:518:5 > #50 in Application::Execute() at vcl/source/app/svapp.cxx:433:9 > #51 in desktop::Desktop::Main() at desktop/source/app/app.cxx:1602:17 > #52 in ImplSVMain() at vcl/source/app/svmain.cxx:196:35 > #53 in SVMain() at vcl/source/app/svmain.cxx:228:12 > #54 in soffice_main at desktop/source/app/sofficemain.cxx:107:12 > #55 in sal_main at desktop/source/app/main.c:48:15 > #56 in main at desktop/source/app/main.c:47:1 The changes that were necessary to fix that scenario are those in ChartAreaPanel.cxx and ChartLinePanel.cxx, but the other updateModel implementations look equally broken. Change-Id: I064fb701dc10e7cb7ef7ea5839f7dd1ae8d0ebba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91467 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
...presumably introduced by what looks like typos in e9164b9 "lok: shape scaling rework" > } > // size > if (SfxItemState::SET==rAttr.GetItemState(SID_ATTR_TRANSFORM_WIDTH,true,&pPoolItem)) { > - nSizX=static_cast<const SfxUInt32Item*>(pPoolItem)->GetValue(); > + nSizX=static_cast<const SfxInt32Item*>(pPoolItem)->GetValue(); > bChgSiz=true; > bChgWdh=true; > } > if (SfxItemState::SET==rAttr.GetItemState(SID_ATTR_TRANSFORM_HEIGHT,true,&pPoolItem)) { > - nSizY=static_cast<const SfxUInt32Item*>(pPoolItem)->GetValue(); > + nSizY=static_cast<const SfxInt32Item*>(pPoolItem)->GetValue(); > bChgSiz=true; > bChgHgt=true; > } but only showing up now (presumably due to newly added test code in 2f4ea95 "lok: unit test for metric field or formatted field control") during CppunitTest_desktop_lib: > svx/source/svdraw/svdedtv1.cxx:1602:15: runtime error: downcast of address 0x603001642720 which does not point to an object of type 'const SfxInt32Item' > 0x603001642720: note: object is of type 'SfxUInt32Item' > 7a 04 80 2b 50 bb 0f 7f cb 7f 00 00 01 00 00 00 6a 27 00 be bc e8 02 00 be be be be be be be be > ^~~~~~~~~~~~~~~~~~~~~~~ > vptr for 'SfxUInt32Item' > #0 in SdrEditView::SetGeoAttrToMarked(SfxItemSet const&) at svx/source/svdraw/svdedtv1.cxx:1602:15 > #1 in ScDrawShell::ExecDrawAttr(SfxRequest&) at sc/source/ui/drawfunc/drawsh.cxx:385:32 > #2 in SfxStubScDrawShellExecDrawAttr(SfxShell*, SfxRequest&) at workdir/SdiTarget/sc/sdi/scslots.hxx:2779:1 > #3 in SfxShell::CallExec(void (*)(SfxShell*, SfxRequest&), SfxRequest&) at include/sfx2/shell.hxx:197:35 > #4 in SfxDispatcher::Call_Impl(SfxShell&, SfxSlot const&, SfxRequest&, bool) at sfx2/source/control/dispatch.cxx:252:16 > #5 in SfxDispatcher::Execute_(SfxShell&, SfxSlot const&, SfxRequest&, SfxCallMode) at sfx2/source/control/dispatch.cxx:752:9 > #6 in SfxDispatcher::ExecuteList(unsigned short, SfxCallMode, std::initializer_list<SfxPoolItem const*>, std::initializer_list<SfxPoolItem const*>) at sfx2/source/control/dispatch.cxx:960:8 > #7 in svx::sidebar::PosSizePropertyPanel::executeSize() at svx/source/sidebar/possize/PosSizePropertyPanel.cxx:848:45 > #8 in svx::sidebar::PosSizePropertyPanel::ChangeWidthHdl(weld::MetricSpinButton&) at svx/source/sidebar/possize/PosSizePropertyPanel.cxx:378:5 > #9 in svx::sidebar::PosSizePropertyPanel::LinkStubChangeWidthHdl(void*, weld::MetricSpinButton&) at svx/source/sidebar/possize/PosSizePropertyPanel.cxx:360:1 > #10 in Link<weld::MetricSpinButton&, void>::Call(weld::MetricSpinButton&) const at include/tools/link.hxx:111:45 > #11 in weld::MetricSpinButton::signal_value_changed() at include/vcl/weld.hxx:1721:54 > #12 in weld::MetricSpinButton::spin_button_value_changed(weld::SpinButton&) at vcl/source/window/builder.cxx:192:9 > #13 in weld::MetricSpinButton::LinkStubspin_button_value_changed(void*, weld::SpinButton&) at vcl/source/window/builder.cxx:190:5 > #14 in Link<weld::SpinButton&, void>::Call(weld::SpinButton&) const at include/tools/link.hxx:111:45 > #15 in weld::SpinButton::signal_value_changed() at include/vcl/weld.hxx:1490:54 > #16 in SalInstanceSpinButton::UpDownHdl(SpinField&) at vcl/source/app/salvtables.cxx:5169:71 > #17 in SalInstanceSpinButton::LinkStubUpDownHdl(void*, SpinField&) at vcl/source/app/salvtables.cxx:5169:1 > #18 in Link<SpinField&, void>::Call(SpinField&) const at include/tools/link.hxx:111:45 > #19 in SpinField::Up()::$_0::operator()() const at vcl/source/control/spinfld.cxx:361:88 > #20 in void std::__invoke_impl<void, SpinField::Up()::$_0&>(std::__invoke_other, SpinField::Up()::$_0&) at include/c++/11.0.0/bits/invoke.h:60:14 > #21 in std::enable_if<is_invocable_r_v<void, SpinField::Up()::$_0&>, void>::type std::__invoke_r<void, SpinField::Up()::$_0&>(SpinField::Up()::$_0&) at include/c++/11.0.0/bits/invoke.h:110:2 > #22 in std::_Function_handler<void (), SpinField::Up()::$_0>::_M_invoke(std::_Any_data const&) at include/c++/11.0.0/bits/std_function.h:291:9 > #23 in std::function<void ()>::operator()() const at include/c++/11.0.0/bits/std_function.h:622:14 > #24 in Control::ImplCallEventListenersAndHandler(VclEventId, std::function<void ()> const&) at vcl/source/control/ctrl.cxx:315:13 > #25 in SpinField::Up() at vcl/source/control/spinfld.cxx:361:5 > #26 in FormattedField::SetValueFromString(rtl::OUString const&) at vcl/source/control/fmtfield.cxx:854:20 > #27 in FormattedFieldUIObject::execute(rtl::OUString const&, std::__debug::map<rtl::OUString const, rtl::OUString, std::less<rtl::OUString const>, std::allocator<std::pair<rtl::OUString const, rtl::OUString> > > const&) at vcl/source/uitest/uiobject.cxx:1361:31 > #28 in DesktopLOKTest::testMetricField() at desktop/qa/desktop_lib/test_desktop_lib.cxx:2858:13 Change-Id: I57988723e23f5a419639e37fe130bad92682a1a2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94178 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
Thank you for your contribution. We use GitHub as a read-only mirror, so please submit your patch into our own code review system: https://wiki.documentfoundation.org/Development/GetInvolved |
...introduced with 244a447 "Make Pivot table data source dialog async", as seen e.g. during UITest_calc_tests8: > ==1217030==ERROR: AddressSanitizer: stack-use-after-return on address 0x7f06d7133444 at pc 0x7f069f0cb613 bp 0x7ffe24058430 sp 0x7ffe24058428 > WRITE of size 2 at 0x7f06d7133444 thread T0 > #0 in ScAddress::operator=(ScAddress const&) at sc/inc/address.hxx:415:10 > #1 in ScCellShell::ExecuteDataPilotDialog()::$_4::operator()(int) const at sc/source/ui/view/cellsh1.cxx:3014:42 > #2 in void std::__invoke_impl<void, ScCellShell::ExecuteDataPilotDialog()::$_4&, int>(std::__invoke_other, ScCellShell::ExecuteDataPilotDialog()::$_4&, int&&) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/invoke.h:60:14 > #3 in std::enable_if<is_invocable_r_v<void, ScCellShell::ExecuteDataPilotDialog()::$_4&, int>, void>::type std::__invoke_r<void, ScCellShell::ExecuteDataPilotDialog()::$_4&, int>(ScCellShell::ExecuteDataPilotDialog()::$_4&, int&&) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/invoke.h:110:2 > #4 in std::_Function_handler<void (int), ScCellShell::ExecuteDataPilotDialog()::$_4>::_M_invoke(std::_Any_data const&, int&&) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/std_function.h:291:9 > #5 in std::function<void (int)>::operator()(int) const at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/std_function.h:560:9 > #6 in Dialog::EndDialog(long) at vcl/source/window/dialog.cxx:1137:9 > #7 in Dialog::ResponseHdl(Button*) at vcl/source/window/dialog.cxx:1391:5 > #8 in Dialog::LinkStubResponseHdl(void*, Button*) at vcl/source/window/dialog.cxx:1376:1 > #9 in Link<Button*, void>::Call(Button*) const at include/tools/link.hxx:111:45 > #10 in Button::Click()::$_0::operator()() const at vcl/source/control/button.cxx:124:87 > #11 in void std::__invoke_impl<void, Button::Click()::$_0&>(std::__invoke_other, Button::Click()::$_0&) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/invoke.h:60:14 > #12 in std::enable_if<is_invocable_r_v<void, Button::Click()::$_0&>, void>::type std::__invoke_r<void, Button::Click()::$_0&>(Button::Click()::$_0&) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/invoke.h:110:2 > #13 in std::_Function_handler<void (), Button::Click()::$_0>::_M_invoke(std::_Any_data const&) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/std_function.h:291:9 > #14 in std::function<void ()>::operator()() const at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/std_function.h:560:9 > #15 in Control::ImplCallEventListenersAndHandler(VclEventId, std::function<void ()> const&) at vcl/source/control/ctrl.cxx:315:13 > #16 in Button::Click() at vcl/source/control/button.cxx:124:5 > #17 in ButtonUIObject::execute(rtl::OUString const&, std::__debug::map<rtl::OUString const, rtl::OUString, std::less<rtl::OUString const>, std::allocator<std::pair<rtl::OUString const, rtl::OUString> > > const&) at vcl/source/uitest/uiobject.cxx:614:19 > #18 in UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0::operator()() const at vcl/source/uitest/uno/uiobject_uno.cxx:124:16 > #19 in void std::__invoke_impl<void, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&>(std::__invoke_other, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/invoke.h:60:14 > #20 in std::enable_if<is_invocable_r_v<void, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&>, void>::type std::__invoke_r<void, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&>(UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/invoke.h:110:2 > #21 in std::_Function_handler<void (), UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0>::_M_invoke(std::_Any_data const&) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/std_function.h:291:9 > #22 in std::function<void ()>::operator()() const at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/std_function.h:560:9 > #23 in (anonymous namespace)::ExecuteWrapper::ExecuteActionHdl(Timer*) at vcl/source/uitest/uno/uiobject_uno.cxx:83:13 > #24 in (anonymous namespace)::ExecuteWrapper::LinkStubExecuteActionHdl(void*, Timer*) at vcl/source/uitest/uno/uiobject_uno.cxx:78:1 > #25 in Link<Timer*, void>::Call(Timer*) const at include/tools/link.hxx:111:45 > #26 in Timer::Invoke() at vcl/source/app/timer.cxx:75:21 > #27 in Scheduler::ProcessTaskScheduling() at vcl/source/app/scheduler.cxx:486:20 > #28 in Scheduler::CallbackTaskScheduling() at vcl/source/app/scheduler.cxx:288:5 > #29 in SalTimer::CallCallback() at vcl/inc/saltimer.hxx:54:13 > #30 in SvpSalInstance::CheckTimeout(bool) at vcl/headless/svpinst.cxx:210:53 > #31 in SvpSalInstance::DoYield(bool, bool) at vcl/headless/svpinst.cxx:463:21 > #32 in ImplYield(bool, bool) at vcl/source/app/svapp.cxx:447:48 > #33 in Application::Yield() at vcl/source/app/svapp.cxx:511:5 > #34 in Application::Execute() at vcl/source/app/svapp.cxx:426:9 > #35 in desktop::Desktop::Main() at desktop/source/app/app.cxx:1588:13 > #36 in ImplSVMain() at vcl/source/app/svmain.cxx:196:35 > #37 in SVMain() at vcl/source/app/svmain.cxx:228:12 > #38 in soffice_main at desktop/source/app/sofficemain.cxx:98:12 > #39 in sal_main at desktop/source/app/main.c:49:15 > #40 in main at desktop/source/app/main.c:47:1 Change-Id: I7ff5148f4bf9170fc7add312053de5acc153125b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106919 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Skip attributes with empty string value in
'Qt5AccessibleWidget::attributes'.
Besides not being a useful value, I also
got a crash using Accerciser to navigate in Calc's
"Format Cells" dialog -> "Font Effects" -> "Text Decoration"
-> "Overlining" -> "Overlining".
'Qt5AccessibleWidget::attributes' had returned
"font-family:;font-size:0pt;font-weight:normal;"
and 'AtSpiAdaptor::getAttributes' (from the Qt library)
aborts, since it splits the "font-family:" part at the colon,
then expects two substrings: one for the attribute name, one
for the value - but there was no value set:
QString joined = interface->textInterface()->attributes(offset, &startOffset, &endOffset);
const QStringList attributes = joined.split (QLatin1Char(';'), Qt::SkipEmptyParts, Qt::CaseSensitive);
for (const QString &attr : attributes) {
QStringList items;
items = attr.split(QLatin1Char(':'), Qt::SkipEmptyParts, Qt::CaseSensitive);
-> AtSpiAttribute attribute = atspiTextAttribute(items[0], items[1]);
if (!attribute.isNull())
set[attribute.name] = attribute.value;
}
The IAccessible2 spec for the "background-color" text attribute [1]
doesn't specify any default value to be used.
Backtrace:
Thread 1 received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(rr) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007f4dcd0bd537 in __GI_abort () at abort.c:79
#2 0x00007f4dba7fd810 in qt_message_fatal(QtMsgType, QMessageLogContext const&, QString const&) (context=..., message=...) at global/qlogging.cpp:1914
#3 0x00007f4dba7f9d48 in QMessageLogger::fatal(char const*, ...) const (this=0x7ffc30a4a6b0, msg=0x7f4dbab9ebb0 "ASSERT failure in %s: \"%s\", file %s, line %d") at global/qlogging.cpp:893
#4 0x00007f4dba7f1484 in qt_assert_x(char const*, char const*, char const*, int) (where=0x7f4db778eb36 "QList<T>::operator[]", what=0x7f4db778eac8 "index out of range", file=0x7f4db778ea90 "../../../include/QtCore/../../src/corelib/tools/qlist.h", line=579)
at global/qglobal.cpp:3366
#5 0x00007f4db7736a65 in QList<QString>::operator[](int) (this=0x7ffc30a4a730, i=1) at ../../../include/QtCore/../../src/corelib/tools/qlist.h:579
#6 0x00007f4db773017e in AtSpiAdaptor::getAttributes(QAccessibleInterface*, int, bool) const (this=0x557748f27800, interface=0x7f4d8c07cc30, offset=9, includeDefaults=true) at atspiadaptor.cpp:2059
#7 0x00007f4db772cd74 in AtSpiAdaptor::textInterface(QAccessibleInterface*, QString const&, QDBusMessage const&, QDBusConnection const&) (this=0x557748f27800, interface=0x7f4d8c07cc30, function=..., message=..., connection=...) at atspiadaptor.cpp:1802
#8 0x00007f4db77274f8 in AtSpiAdaptor::handleMessage(QDBusMessage const&, QDBusConnection const&) (this=0x557748f27800, message=..., connection=...) at atspiadaptor.cpp:1286
#9 0x00007f4db7fe4d04 in QDBusConnectionPrivate::activateObject(QDBusConnectionPrivate::ObjectTreeNode&, QDBusMessage const&, int) (this=0x7f4d8c014b00, node=..., msg=..., pathStartPos=27) at qdbusintegrator.cpp:1458
#10 0x00007f4db7fe58ca in QDBusActivateObjectEvent::placeMetaCall(QObject*) (this=0x557753615310) at qdbusintegrator.cpp:1617
#11 0x00007f4dbaab3c66 in QObject::event(QEvent*) (this=0x557748f27800, e=0x557753615310) at kernel/qobject.cpp:1314
#12 0x00007f4db96be845 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=0x557747e30970, receiver=0x557748f27800, e=0x557753615310) at kernel/qapplication.cpp:3632
#13 0x00007f4db96bbcfb in QApplication::notify(QObject*, QEvent*) (this=0x557747f1d8b0, receiver=0x557748f27800, e=0x557753615310) at kernel/qapplication.cpp:2972
#14 0x00007f4dbaa70aba in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x557748f27800, event=0x557753615310) at kernel/qcoreapplication.cpp:1064
#15 0x00007f4dbaa71452 in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=0x557748f27800, event=0x557753615310) at kernel/qcoreapplication.cpp:1462
#16 0x00007f4dbaa7213a in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x557747eff460) at kernel/qcoreapplication.cpp:1821
#17 0x00007f4dbaa71acc in QCoreApplication::sendPostedEvents(QObject*, int) (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1680
#18 0x00007f4dbaaff079 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x557748056a30) at kernel/qeventdispatcher_glib.cpp:277
#19 0x00007f4dbfe4ce6b in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007f4dbfe4d118 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007f4dbfe4d1cf in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007f4dbaaff7a2 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x557748062a70, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#23 0x00007f4db76af8fc in QXcbGlibEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x557748062a70, flags=...) at qxcbeventdispatcher.cpp:143
#24 0x00007f4db9255353 in Qt5Instance::DoYield(bool, bool) (this=0x557747f22580, bWait=4, bHandleAllCurrentEvents=2) at .../libreoffice/vcl/qt5/Qt5Instance.cxx:400
#25 0x00007f4db9255465 in Qt5Instance::AnyInput(VclInputFlags) (this=0xd87f0c9bbde3ed00, nType=(VclInputFlags::PAINT | VclInputFlags::TIMER | VclInputFlags::OTHER | VclInputFlags::APPEVENT | unknown: 0x7fc0))
at .../libreoffice/vcl/qt5/Qt5Instance.cxx:422
#26 0x00007f4dc594b64a in ImplYield(bool, bool) (i_bWait=true, i_bAllEvents=false) at .../libreoffice/vcl/source/app/svapp.cxx:465
#27 0x00007f4dc594be0b in Application::Yield() () at .../libreoffice/vcl/source/app/svapp.cxx:532
#28 0x00007f4dc594b357 in Application::Execute() () at .../libreoffice/vcl/source/app/svapp.cxx:444
#29 0x00007f4dcd2c4226 in desktop::Desktop::Main() (this=0x7ffc30a4c540) at .../libreoffice/desktop/source/app/app.cxx:1602
#30 0x00007f4dc5967cc6 in ImplSVMain() () at .../libreoffice/vcl/source/app/svmain.cxx:199
#31 0x00007f4dc5967de7 in SVMain() () at .../libreoffice/vcl/source/app/svmain.cxx:231
#32 0x00007f4dcd324e9f in soffice_main() () at .../libreoffice/desktop/source/app/sofficemain.cxx:98
#33 0x000055774613895d in sal_main () at .../libreoffice/desktop/source/app/main.c:49
#34 0x0000557746138943 in main (argc=2, argv=0x7ffc30a4c8b8) at .../libreoffice/desktop/source/app/main.c:47
[1] https://wiki.linuxfoundation.org/accessibility/iaccessible2/textattributes
Change-Id: I5e9d5121e69340ff728a87b4a6cb5c182d9ad11b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119247
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
...as seen at least once during UITest_calc_tests9, with thread 1 at > Thread 1 (Thread 0x7f2c48958fc0 (LWP 439791) "soffice.bin"): > #0 0x00007f2caa2b17b0 in __lll_lock_wait () at /lib64/libpthread.so.0 > #1 0x00007f2caa2aa553 in pthread_mutex_lock () at /lib64/libpthread.so.0 > #2 0x00007f2ca399275b in __gthread_mutex_lock(pthread_mutex_t*) (__mutex=0x7f2ca40ce020 <cppu::getTypeEntries(cppu::class_data*)::aMutex>) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/x86_64-pc-linux-gnu/bits/gthr-default.h:749 > #3 0x00007f2ca39948cb in std::mutex::lock() (this=0x7f2ca40ce020 <cppu::getTypeEntries(cppu::class_data*)::aMutex>) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/std_mutex.h:100 > #4 0x00007f2ca39940eb in std::lock_guard<std::mutex>::lock_guard(std::mutex&) (this=0x7f2c4752d820, __m=...) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/std_mutex.h:229 > #5 0x00007f2ca3990fdb in cppu::getTypeEntries(cppu::class_data*) (cd=0x7f2c3eda4640 <cppu::detail::ImplClassData<cppu::WeakImplHelper<com::sun::star::i18n::XCollator, com::sun::star::lang::XServiceInfo>, com::sun::star::i18n::XCollator, com::sun::star::lang::XServiceInfo>::operator()()::s_cd>) at /home/sbergman/lo/core/cppuhelper/source/implbase_ex.cxx:71 > #6 0x00007f2ca398c616 in cppu::queryDeepNoXInterface(_typelib_TypeDescriptionReference const*, cppu::class_data*, void*) (pDemandedTDR=0x60f00020ec60, cd=0x7f2c3eda4640 <cppu::detail::ImplClassData<cppu::WeakImplHelper<com::sun::star::i18n::XCollator, com::sun::star::lang::XServiceInfo>, com::sun::star::i18n::XCollator, com::sun::star::lang::XServiceInfo>::operator()()::s_cd>, that=0x60e0002a2960) at /home/sbergman/lo/core/cppuhelper/source/implbase_ex.cxx:155 > #7 0x00007f2ca398ea93 in cppu::WeakImplHelper_query(com::sun::star::uno::Type const&, cppu::class_data*, void*, cppu::OWeakObject*) (rType=invalid uno::Type, cd=0x7f2c3eda4640 <cppu::detail::ImplClassData<cppu::WeakImplHelper<com::sun::star::i18n::XCollator, com::sun::star::lang::XServiceInfo>, com::sun::star::i18n::XCollator, com::sun::star::lang::XServiceInfo>::operator()()::s_cd>, that=0x60e0002a2960, pBase=0x60e0002a2960) at /home/sbergman/lo/core/cppuhelper/source/implbase_ex.cxx:283 > #8 0x00007f2c3ea61105 in cppu::WeakImplHelper<com::sun::star::i18n::XCollator, com::sun::star::lang::XServiceInfo>::queryInterface(com::sun::star::uno::Type const&) (this=0x60e0002a2960, aType=invalid uno::Type) at /home/sbergman/lo/core/include/cppuhelper/implbase.hxx:111 > #9 0x00007f2c7c491500 in com::sun::star::uno::BaseReference::iquery(com::sun::star::uno::XInterface*, com::sun::star::uno::Type const&) (pInterface=0x60e0002a2960, rType=invalid uno::Type) at /home/sbergman/lo/core/include/com/sun/star/uno/Reference.hxx:59 > #10 0x00007f2c7c8a1165 in com::sun::star::uno::Reference<com::sun::star::i18n::XCollator>::iquery(com::sun::star::uno::XInterface*) (pInterface=0x60e0002a2960) at /home/sbergman/lo/core/include/com/sun/star/uno/Reference.hxx:74 > #11 0x00007f2c7c8a015e in com::sun::star::uno::Reference<com::sun::star::i18n::XCollator>::Reference(com::sun::star::uno::BaseReference const&, com::sun::star::uno::UnoReference_Query) (this=0x7f2c47447020, rRef=...) at /home/sbergman/lo/core/include/com/sun/star/uno/Reference.hxx:176 > #12 0x00007f2c7c89ebaa in com::sun::star::i18n::Collator::create(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (the_context=uno::Reference to (class cppu::(anonymous namespace)::ComponentContext *) 0x611000005e50) at /home/sbergman/lo/core/workdir/UnoApiHeadersTarget/offapi/normal/com/sun/star/i18n/Collator.hpp:38 > #13 0x00007f2c7c89c324 in CollatorWrapper::CollatorWrapper(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x60200097c0f0, rxContext=uno::Reference to (class cppu::(anonymous namespace)::ComponentContext *) 0x611000005e50) at /home/sbergman/lo/core/unotools/source/i18n/collatorwrapper.cxx:30 > #14 0x00007f2c14889098 in ScGlobal::GetCaseCollator()::$_6::operator()() const (this=0x7f2c470e74a0) at /home/sbergman/lo/core/sc/source/core/data/global.cxx:1044 > #15 0x00007f2c14886efc in comphelper::doubleCheckedInit<CollatorWrapper, ScGlobal::GetCaseCollator()::$_6, osl::Guard<osl::Mutex>, osl::GetGlobalMutex>(std::atomic<CollatorWrapper*>&, ScGlobal::GetCaseCollator()::$_6, osl::GetGlobalMutex) (pointer=..., function=..., guardCtor=...) at /home/sbergman/lo/core/include/comphelper/doublecheckedinit.hxx:53 > #16 0x00007f2c14886d1c in ScGlobal::GetCaseCollator() () at /home/sbergman/lo/core/sc/source/core/data/global.cxx:1041 > #17 0x00007f2c1627adde in ScTypedStrData::LessCaseSensitive::operator()(ScTypedStrData const&, ScTypedStrData const&) const (this=0x7f2c471eab20, left=..., right=...) at /home/sbergman/lo/core/sc/source/core/tool/typedstrdata.cxx:26 > #18 0x00007f2c13ad7750 in std::sort<__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<ScTypedStrData*, std::__cxx1998::vector<ScTypedStrData, std::allocator<ScTypedStrData> > >, std::__debug::vector<ScTypedStrData, std::allocator<ScTypedStrData> >, std::random_access_iterator_tag>, ScTypedStrData::LessCaseSensitive>(__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<ScTypedStrData*, std::__cxx1998::vector<ScTypedStrData, std::allocator<ScTypedStrData> > >, std::__debug::vector<ScTypedStrData, std::allocator<ScTypedStrData> >, std::random_access_iterator_tag>, __gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<ScTypedStrData*, std::__cxx1998::vector<ScTypedStrData, std::allocator<ScTypedStrData> > >, std::__debug::vector<ScTypedStrData, std::allocator<ScTypedStrData> >, std::random_access_iterator_tag>, ScTypedStrData::LessCaseSensitive) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/stl_algo.h:4873 > #19 0x00007f2c13ab544d in (anonymous namespace)::sortAndRemoveDuplicates(std::__debug::vector<ScTypedStrData, std::allocator<ScTypedStrData> >&, bool) (rStrings=std::__debug::vector of length 1, capacity 1 = {...}, bCaseSens=true) at /home/sbergman/lo/core/sc/source/core/data/documen3.cxx:86 > #20 0x00007f2c13ab6bc9 in ScDocument::GetDataEntries(short, int, short, std::__debug::vector<ScTypedStrData, std::allocator<ScTypedStrData> >&, bool) (this=0x61e0000505c0, nCol=0, nRow=1, nTab=0, rStrings=std::__debug::vector of length 1, capacity 1 = {...}, bValidation=false) at /home/sbergman/lo/core/sc/source/core/data/documen3.cxx:1650 > #21 0x00007f2c1708a56e in ScInputHandler::GetColData() (this=0x614000068840) at /home/sbergman/lo/core/sc/source/ui/app/inputhdl.cxx:1943 > #22 0x00007f2c1709e132 in ScInputHandler::StartTable(char16_t, bool, bool, ScEditEngineDefaulter*) (this=0x614000068840, cTyped=66 u'B', bFromCommand=false, bInputActivated=false, pTopEngine=0x0) at /home/sbergman/lo/core/sc/source/ui/app/inputhdl.cxx:2501 > #23 0x00007f2c17057bc0 in ScInputHandler::DataChanging(char16_t, bool) (this=0x614000068840, cTyped=66 u'B', bFromCommand=false) at /home/sbergman/lo/core/sc/source/ui/app/inputhdl.cxx:2605 > #24 0x00007f2c170ad948 in ScInputHandler::KeyInput(KeyEvent const&, bool) (this=0x614000068840, rKEvt=..., bStartEdit=true) at /home/sbergman/lo/core/sc/source/ui/app/inputhdl.cxx:3714 > #25 0x00007f2c1723ac2b in ScModule::InputKeyEvent(KeyEvent const&, bool) (this=0x616000223880, rKEvt=..., bStartEdit=true) at /home/sbergman/lo/core/sc/source/ui/app/scmod.cxx:1356 > #26 0x00007f2c19ce48c9 in ScTabViewShell::TabKeyInput(KeyEvent const&) (this=0x61e000051080, rKEvt=...) at /home/sbergman/lo/core/sc/source/ui/view/tabvwsh4.cxx:1278 > #27 0x00007f2c196183ce in ScGridWindow::KeyInput(KeyEvent const&) (this=0x618000ee6880, rKEvt=...) at /home/sbergman/lo/core/sc/source/ui/view/gridwin.cxx:3414 > #28 0x00007f2c775e963f in WindowUIObject::execute(rtl::OUString const&, std::__debug::map<rtl::OUString, rtl::OUString, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::OUString> > > const&) at /home/sbergman/lo/core/vcl/source/uitest/uiobject.cxx:357 > #29 0x00007f2c186a5929 in ScGridWinUIObject::execute(rtl::OUString const&, std::__debug::map<rtl::OUString, rtl::OUString, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::OUString> > > const&) at /home/sbergman/lo/core/sc/source/ui/uitest/uiobject.cxx:317 > #30 0x00007f2c7766d9ba in UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0::operator()() const (this=0x603000f61240) at /home/sbergman/lo/core/vcl/source/uitest/uno/uiobject_uno.cxx:137 > #31 0x00007f2c7766d0dd in std::__invoke_impl<void, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&>(std::__invoke_other, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&) (__f=...) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/invoke.h:61 > #32 0x00007f2c7766cf8d in std::__invoke_r<void, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&>(UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&) (__fn=...) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/invoke.h:111 > #33 0x00007f2c7766ca9d in std::_Function_handler<void (), UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0>::_M_invoke(std::_Any_data const&) (__functor=...) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/std_function.h:291 > #34 0x00007f2c744b3c22 in std::function<void ()>::operator()() const (this=0x6070001d4d80) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/std_function.h:560 > #35 0x00007f2c7766c35c in (anonymous namespace)::ExecuteWrapper::ExecuteActionHdl(Timer*) (this=0x6070001d4d80) at /home/sbergman/lo/core/vcl/source/uitest/uno/uiobject_uno.cxx:100 > #36 0x00007f2c77668e29 in (anonymous namespace)::ExecuteWrapper::LinkStubExecuteActionHdl(void*, Timer*) (instance=0x6070001d4d80, data=0x608000148e20) at /home/sbergman/lo/core/vcl/source/uitest/uno/uiobject_uno.cxx:95 > #37 0x00007f2c76c645de in Link<Timer*, void>::Call(Timer*) const (this=0x608000148e40, data=0x608000148e20) at /home/sbergman/lo/core/include/tools/link.hxx:111 > #38 0x00007f2c76c63b7d in Timer::Invoke() (this=0x608000148e20) at /home/sbergman/lo/core/vcl/source/app/timer.cxx:75 > #39 0x00007f2c76abfd6c in Scheduler::CallbackTaskScheduling() () at /home/sbergman/lo/core/vcl/source/app/scheduler.cxx:471 > #40 0x00007f2c77b9a1a4 in SalTimer::CallCallback() (this=0x6030002f0bc0) at /home/sbergman/lo/core/vcl/inc/saltimer.hxx:54 > #41 0x00007f2c77b8dda1 in SvpSalInstance::CheckTimeout(bool) (this=0x611000001bc0, bExecuteTimers=true) at /home/sbergman/lo/core/vcl/headless/svpinst.cxx:215 > #42 0x00007f2c77b949a0 in SvpSalInstance::DoYield(bool, bool) (this=0x611000001bc0, bWait=true, bHandleAllCurrentEvents=false) at /home/sbergman/lo/core/vcl/headless/svpinst.cxx:460 > #43 0x00007f2c76bb2462 in ImplYield(bool, bool) (i_bWait=true, i_bAllEvents=false) at /home/sbergman/lo/core/vcl/source/app/svapp.cxx:465 > #44 0x00007f2c76bb1588 in Application::Yield() () at /home/sbergman/lo/core/vcl/source/app/svapp.cxx:532 > #45 0x00007f2c76bb11bf in Application::Execute() () at /home/sbergman/lo/core/vcl/source/app/svapp.cxx:444 > #46 0x00007f2caae21016 in desktop::Desktop::Main() (this=0x7f2c472b8080) at /home/sbergman/lo/core/desktop/source/app/app.cxx:1602 having locked the osl global mutex in comphelper::doubleCheckedInit in frame 15 and trying to lock the cppu::getTypeEntries mutex, while thread 4 at > Thread 4 (Thread 0x7f2c275b6640 (LWP 440147) "InitUpdateCheck"): > #0 0x00007f2caa2b17b0 in __lll_lock_wait () at /lib64/libpthread.so.0 > #1 0x00007f2caa2aa5d0 in pthread_mutex_lock () at /lib64/libpthread.so.0 > #2 0x00007f2cabc21967 in osl_acquireMutex(oslMutex) (pMutex=0x604000090d50) at /home/sbergman/lo/core/sal/osl/unx/mutex.cxx:100 > #3 0x00007f2bf58684da in osl::Mutex::acquire() (this=0x7f2cabe45c60 <osl_getGlobalMutex::g_Mutex>) at /home/sbergman/lo/core/include/osl/mutex.hxx:61 > #4 0x00007f2bf586694a in osl::Guard<osl::Mutex>::Guard(osl::Mutex*) (this=0x7f2c262d7420, pT_=0x7f2cabe45c60 <osl_getGlobalMutex::g_Mutex>) at /home/sbergman/lo/core/include/osl/mutex.hxx:135 > #5 0x00007f2bf58762f9 in com::sun::star::lang::cppu_detail_getUnoType(com::sun::star::lang::XServiceInfo const*) () at /home/sbergman/lo/core/workdir/UnoApiHeadersTarget/udkapi/normal/com/sun/star/lang/XServiceInfo.hpp:73 > #6 0x00007f2bf5875f09 in cppu::UnoType<com::sun::star::lang::XServiceInfo>::get() () at /home/sbergman/lo/core/include/cppu/unotype.hxx:300 > #7 0x00007f2bf5875ce9 in com::sun::star::lang::XServiceInfo::static_type(void*) () at /home/sbergman/lo/core/workdir/UnoApiHeadersTarget/udkapi/normal/com/sun/star/lang/XServiceInfo.hpp:145 > #8 0x00007f2ca39913be in cppu::getTypeEntries(cppu::class_data*) (cd=0x7f2bf58c73a8 <cppu::detail::ImplClassData<cppu::WeakImplHelper<com::sun::star::deployment::XUpdateInformationProvider, com::sun::star::ucb::XWebDAVCommandEnvironment, com::sun::star::lang::XServiceInfo>, com::sun::star::deployment::XUpdateInformationProvider, com::sun::star::ucb::XWebDAVCommandEnvironment, com::sun::star::lang::XServiceInfo>::operator()()::s_cd>) at /home/sbergman/lo/core/cppuhelper/source/implbase_ex.cxx:78 > #9 0x00007f2ca398c616 in cppu::queryDeepNoXInterface(_typelib_TypeDescriptionReference const*, cppu::class_data*, void*) (pDemandedTDR=0x60f0001cf420, cd=0x7f2bf58c73a8 <cppu::detail::ImplClassData<cppu::WeakImplHelper<com::sun::star::deployment::XUpdateInformationProvider, com::sun::star::ucb::XWebDAVCommandEnvironment, com::sun::star::lang::XServiceInfo>, com::sun::star::deployment::XUpdateInformationProvider, com::sun::star::ucb::XWebDAVCommandEnvironment, com::sun::star::lang::XServiceInfo>::operator()()::s_cd>, that=0x60e00022e7c0) at /home/sbergman/lo/core/cppuhelper/source/implbase_ex.cxx:155 > #10 0x00007f2ca398ea93 in cppu::WeakImplHelper_query(com::sun::star::uno::Type const&, cppu::class_data*, void*, cppu::OWeakObject*) (rType=invalid uno::Type, cd=0x7f2bf58c73a8 <cppu::detail::ImplClassData<cppu::WeakImplHelper<com::sun::star::deployment::XUpdateInformationProvider, com::sun::star::ucb::XWebDAVCommandEnvironment, com::sun::star::lang::XServiceInfo>, com::sun::star::deployment::XUpdateInformationProvider, com::sun::star::ucb::XWebDAVCommandEnvironment, com::sun::star::lang::XServiceInfo>::operator()()::s_cd>, that=0x60e00022e7c0, pBase=0x60e00022e7c0) at /home/sbergman/lo/core/cppuhelper/source/implbase_ex.cxx:283 > #11 0x00007f2bf58629e5 in cppu::WeakImplHelper<com::sun::star::deployment::XUpdateInformationProvider, com::sun::star::ucb::XWebDAVCommandEnvironment, com::sun::star::lang::XServiceInfo>::queryInterface(com::sun::star::uno::Type const&) (this=0x60e00022e7c0, aType=invalid uno::Type) at /home/sbergman/lo/core/include/cppuhelper/implbase.hxx:111 > #12 0x00007f2c3015cf60 in com::sun::star::uno::BaseReference::iquery(com::sun::star::uno::XInterface*, com::sun::star::uno::Type const&) (pInterface=0x60e00022e7c0, rType=invalid uno::Type) at /home/sbergman/lo/core/include/com/sun/star/uno/Reference.hxx:59 > #13 0x00007f2c302419c5 in com::sun::star::uno::Reference<com::sun::star::deployment::XUpdateInformationProvider>::iquery(com::sun::star::uno::XInterface*) (pInterface=0x60e00022e7c0) at /home/sbergman/lo/core/include/com/sun/star/uno/Reference.hxx:74 > #14 0x00007f2c3024010e in com::sun::star::uno::Reference<com::sun::star::deployment::XUpdateInformationProvider>::Reference(com::sun::star::uno::BaseReference const&, com::sun::star::uno::UnoReference_Query) (this=0x7f2c262bd420, rRef=...) at /home/sbergman/lo/core/include/com/sun/star/uno/Reference.hxx:176 > #15 0x00007f2c3023e98a in com::sun::star::deployment::UpdateInformationProvider::create(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (the_context=uno::Reference to (class cppu::(anonymous namespace)::ComponentContext *) 0x611000005e50) at /home/sbergman/lo/core/workdir/UnoApiHeadersTarget/offapi/normal/com/sun/star/deployment/UpdateInformationProvider.hpp:38 > #16 0x00007f2c30235e85 in dp_info::(anonymous namespace)::PackageInformationProvider::PackageInformationProvider(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x607000afd3e0, xContext=uno::Reference to (class cppu::(anonymous namespace)::ComponentContext *) 0x611000005e50) at /home/sbergman/lo/core/desktop/source/deployment/manager/dp_informationprovider.cxx:92 > #17 0x00007f2c30235932 in com_sun_star_comp_deployment_PackageInformationProvider_get_implementation(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&) (context=0x611000005e50) at /home/sbergman/lo/core/desktop/source/deployment/manager/dp_informationprovider.cxx:336 > #18 0x00007f2ca3c92795 in std::__invoke_impl<com::sun::star::uno::XInterface*, com::sun::star::uno::XInterface* (*&)(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&), com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&>(std::__invoke_other, com::sun::star::uno::XInterface* (*&)(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&), com::sun::star::uno::XComponentContext*&&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&) (__f=@0x612000035088: 0x7f2c302357f0 <com_sun_star_comp_deployment_PackageInformationProvider_get_implementation(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)>, __args=@0x7f2c25ecd960: 0x611000005e50, __args=empty uno::Sequence) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/invoke.h:61 > #19 0x00007f2ca3c9248d in std::__invoke_r<com::sun::star::uno::XInterface*, com::sun::star::uno::XInterface* (*&)(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&), com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&>(com::sun::star::uno::XInterface* (*&)(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&), com::sun::star::uno::XComponentContext*&&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&) (__fn=@0x612000035088: 0x7f2c302357f0 <com_sun_star_comp_deployment_PackageInformationProvider_get_implementation(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)>, __args=@0x7f2c25ecd960: 0x611000005e50, __args=empty uno::Sequence) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/invoke.h:114 > #20 0x00007f2ca3c91ebd in std::_Function_handler<com::sun::star::uno::XInterface* (com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&), com::sun::star::uno::XInterface* (*)(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)>::_M_invoke(std::_Any_data const&, com::sun::star::uno::XComponentContext*&&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&) (__functor=..., __args=@0x7f2c25ecd960: 0x611000005e50, __args=empty uno::Sequence) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/std_function.h:291 > #21 0x00007f2ca3b7d419 in std::function<com::sun::star::uno::XInterface* (com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)>::operator()(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&) const (this=0x612000035088, __args=0x611000005e50, __args=empty uno::Sequence) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/std_function.h:560 > #22 0x00007f2ca3b30861 in cppuhelper::ServiceManager::Data::Implementation::doCreateInstance(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x612000034fd0, context=uno::Reference to (class cppu::(anonymous namespace)::ComponentContext *) 0x611000005e50) at /home/sbergman/lo/core/cppuhelper/source/servicemanager.cxx:703 > #23 0x00007f2ca3b30394 in cppuhelper::ServiceManager::Data::Implementation::createInstance(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, bool) (this=0x612000034fd0, context=uno::Reference to (class cppu::(anonymous namespace)::ComponentContext *) 0x611000005e50, singletonRequest=true) at /home/sbergman/lo/core/cppuhelper/source/servicemanager.cxx:672 > #24 0x00007f2ca3b6bb9c in (anonymous namespace)::SingletonFactory::createInstanceWithContext(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x60700003a4e0, Context=uno::Reference to (class cppu::(anonymous namespace)::ComponentContext *) 0x611000005e50) at /home/sbergman/lo/core/cppuhelper/source/servicemanager.cxx:532 > #25 0x00007f2ca3b6c0af in non-virtual thunk to (anonymous namespace)::SingletonFactory::createInstanceWithContext(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) () at /home/sbergman/lo/core/cppuhelper/source/servicemanager.cxx:541 > #26 0x00007f2ca38c5545 in cppu::(anonymous namespace)::ComponentContext::lookupMap(rtl::OUString const&) (this=0x611000005e00, rName="/singletons/com.sun.star.deployment.PackageInformationProvider") at /home/sbergman/lo/core/cppuhelper/source/component_context.cxx:300 > #27 0x00007f2ca38ae9ab in cppu::(anonymous namespace)::ComponentContext::getValueByName(rtl::OUString const&) (this=0x611000005e00, rName="/singletons/com.sun.star.deployment.PackageInformationProvider") at /home/sbergman/lo/core/cppuhelper/source/component_context.cxx:374 > #28 0x00007f2ca38b279f in non-virtual thunk to cppu::(anonymous namespace)::ComponentContext::getValueByName(rtl::OUString const&) () at /home/sbergman/lo/core/cppuhelper/source/component_context.cxx:266 > #29 0x00007f2c2791c7e0 in checkForPendingUpdates(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (rxContext=uno::Reference to (class cppu::(anonymous namespace)::ComponentContext *) 0x611000005e50) at /home/sbergman/lo/core/extensions/source/update/check/updateprotocol.cxx:289 > #30 0x00007f2c277d3db3 in UpdateCheck::initialize(com::sun::star::uno::Sequence<com::sun::star::beans::NamedValue> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x6130001c9dc0, rValues=uno::Sequence of length 8 = {...}, xContext=uno::Reference to (class cppu::(anonymous namespace)::ComponentContext *) 0x611000005e50) at /home/sbergman/lo/core/extensions/source/update/check/updatecheck.cxx:776 > #31 0x00007f2c278acd2a in (anonymous namespace)::InitUpdateCheckJobThread::run() (this=0x608000163d20) at /home/sbergman/lo/core/extensions/source/update/check/updatecheckjob.cxx:143 having locked the cppu::getTypeEntries mutex in frame 1 and now trying to lock the osl global mutex. Of the many functions in sc/source/core/data/global.cxx that (implicitly, by default) use the osl global mutex in comphelper::doubleCheckedInit, change at least those two that call a CollatorWrapper (and are thus susceptible to the described deadlock). Change-Id: Ie41a1116518146bffcefab2373f1386afc03e544 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119319 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
...as had been the case prior to 12dce07 "loplugin:unusedfields - look for fields that can be const, in comphelper" (which this commit partly reverts; the const'ness of OInterfaceIteratorHelper2::bIsList had already been reverted, but for no apparent reason, in 31b0be0 "improve pahole script and pack a few classes"). That may or may not have been the cause of the apparently-sporadic UITest_sw_table failure at <https://ci.libreoffice.org//job/lo_ubsan/2096/>, > /comphelper/source/container/interfacecontainer2.cxx:54:29: runtime error: member call on address 0x606000ed5d20 which does not point to an object of type 'com::sun::star::uno::XInterface' > 0x606000ed5d20: note: object has invalid vptr > 22 04 00 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 be be be be b0 11 46 00 > ^~~~~~~~~~~~~~~~~~~~~~~ > invalid vptr > #0 0x2ab564a71e15 in comphelper::OInterfaceIteratorHelper2::OInterfaceIteratorHelper2(comphelper::OInterfaceContainerHelper2&) /comphelper/source/container/interfacecontainer2.cxx:54:29 > #1 0x2ab57614588f in void comphelper::OInterfaceContainerHelper2::forEach<com::sun::star::document::XDocumentEventListener, comphelper::OInterfaceContainerHelper2::NotifySingleListener<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent> >(comphelper::OInterfaceContainerHelper2::NotifySingleListener<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent> const&) /include/comphelper/interfacecontainer2.hxx:261:31 > #2 0x2ab576144a95 in void comphelper::OInterfaceContainerHelper2::notifyEach<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent>(void (com::sun::star::document::XDocumentEventListener::*)(com::sun::star::document::DocumentEvent const&), com::sun::star::document::DocumentEvent const&) /include/comphelper/interfacecontainer2.hxx:279:5 > #3 0x2ab57613b277 in (anonymous namespace)::SfxGlobalEvents_Impl::implts_notifyListener(com::sun::star::document::DocumentEvent const&) /sfx2/source/notify/globalevents.cxx:505:26 > #4 0x2ab576131faa in (anonymous namespace)::SfxGlobalEvents_Impl::documentEventOccured(com::sun::star::document::DocumentEvent const&) /sfx2/source/notify/globalevents.cxx:256:5 > #5 0x2ab575f4abfc in (anonymous namespace)::NotifySingleListenerIgnoreRE<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent>::operator()(com::sun::star::uno::Reference<com::sun::star::document::XDocumentEventListener> const&) const /sfx2/source/doc/sfxbasemodel.cxx:3200:13 > #6 0x2ab575f002ec in void cppu::OInterfaceContainerHelper::forEach<com::sun::star::document::XDocumentEventListener, (anonymous namespace)::NotifySingleListenerIgnoreRE<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent> >((anonymous namespace)::NotifySingleListenerIgnoreRE<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent> const&) /include/cppuhelper/interfacecontainer.h:292:17 > #7 0x2ab575efdd37 in SfxBaseModel::postEvent_Impl(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::frame::XController2> const&) /sfx2/source/doc/sfxbasemodel.cxx:3234:14 > #8 0x2ab575efa257 in SfxBaseModel::Notify(SfxBroadcaster&, SfxHint const&) /sfx2/source/doc/sfxbasemodel.cxx:2883:9 > #9 0x2ab57a796d83 in SfxBroadcaster::Broadcast(SfxHint const&) /svl/source/notify/SfxBroadcaster.cxx:39:24 > #10 0x2ab6010f0e1f in SwLayIdle::SwLayIdle(SwRootFrame*, SwViewShellImp*) /sw/source/core/layout/layact.cxx:2375:24 > #11 0x2ab60385d4e2 in SwViewShell::LayoutIdle() /sw/source/core/view/viewsh.cxx:723:19 > #12 0x2ab5ff549ffa in sw::DocumentTimerManager::DoIdleJobs(Timer*) /sw/source/core/doc/DocumentTimerManager.cxx:177:42 > #13 0x2ab5ff54552a in sw::DocumentTimerManager::LinkStubDoIdleJobs(void*, Timer*) /sw/source/core/doc/DocumentTimerManager.cxx:157:1 > #14 0x2ab599cf5f41 in Link<Timer*, void>::Call(Timer*) const /include/tools/link.hxx:111:45 > #15 0x2ab599cf5498 in Timer::Invoke() /vcl/source/app/timer.cxx:75:21 > #16 0x2ab599b388ea in Scheduler::CallbackTaskScheduling() /vcl/source/app/scheduler.cxx:471:20 > #17 0x2ab59ad34490 in SalTimer::CallCallback() /vcl/inc/saltimer.hxx:54:13 > #18 0x2ab59ad2785c in SvpSalInstance::CheckTimeout(bool) /vcl/headless/svpinst.cxx:215:53 > #19 0x2ab59ad2e67c in SvpSalInstance::DoYield(bool, bool) /vcl/headless/svpinst.cxx:460:21 > #20 0x2ab599c35aa9 in ImplYield(bool, bool) /vcl/source/app/svapp.cxx:465:48 > #21 0x2ab599c34c67 in Application::Yield() /vcl/source/app/svapp.cxx:532:5 > #22 0x2ab599c348ae in Application::Execute() /vcl/source/app/svapp.cxx:444:9 > #23 0x2ab55d699b4b in desktop::Desktop::Main() /desktop/source/app/app.cxx:1603:13 > #24 0x2ab599cde4e9 in ImplSVMain() /vcl/source/app/svmain.cxx:199:35 > #25 0x2ab599ce7510 in SVMain() /vcl/source/app/svmain.cxx:231:12 > #26 0x2ab55d890775 in soffice_main /desktop/source/app/sofficemain.cxx:98:12 > #27 0x4efc6c in sal_main /desktop/source/app/main.c:49:15 > #28 0x4efc46 in main /desktop/source/app/main.c:47:1 > #29 0x2ab55f48e554 in __libc_start_main (/lib64/libc.so.6+0x22554) > #30 0x41b5c1 in _start (/instdir/program/soffice.bin+0x41b5c1) Change-Id: Iaa930f1612a3bb6ad0bcad12f3995b7dbb2e5fa7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120205 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Jenkins
moving forward