-
-
Couldn't load subscription status.
- Fork 744
don’t list Language Pack itself #25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
don’t list Language Pack itself as LibreOffice installation to update
|
Hi emsspree, thanks for contributing to LibreOffice’s code. Please note that the project does not use GitHub for development and a mirror is merely here for visibility and backup purposes. To submit contributions, please read the instructions in our wiki: |
...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 <[email protected]>
…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 <[email protected]>
...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 <[email protected]>
|
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 <[email protected]>
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 <[email protected]>
...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 <[email protected]>
...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 <[email protected]> Reviewed-by: Stephan Bergmann <[email protected]> Tested-by: Jenkins
#5 0x00007fffee606a72 in ImplDbgTestSolarMutex() () at vcl/source/app/dbggui.cxx:35 #6 0x00007ffff71186f0 in DbgTestSolarMutex() () at tools/source/debug/debug.cxx:54 #7 0x00007ffff3273e39 in SfxBroadcaster::RemoveListener(SfxListener&) (this=0x1a38230, rListener=...) at svl/source/notify/SfxBroadcaster.cxx:105 #8 0x00007ffff3296eb8 in SfxListener::~SfxListener() (this=0x33abce0) at svl/source/notify/lstner.cxx:53 #9 0x00007fffaaa0a0a4 in ScAccessibleContextBase::~ScAccessibleContextBase() (this=0x33abc40) at sc/source/ui/Accessibility/AccessibleContextBase.cxx:59 #10 0x00007fffaaaa6379 in ScAccessibleTableBase::~ScAccessibleTableBase() (this=0x33abc40) at sc/source/ui/Accessibility/AccessibleTableBase.cxx:52 #11 0x00007fffaaa831da in ScAccessibleSpreadsheet::~ScAccessibleSpreadsheet() (this=0x33abc40) at sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx:274 #12 0x00007fffaaa83229 in ScAccessibleSpreadsheet::~ScAccessibleSpreadsheet() (this=0x33abc40) at sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx:270 #13 0x00007ffff5f87fc0 in cppu::OWeakObject::release() (this=0x33abc40) at cppuhelper/source/weak.cxx:230 #14 0x00007ffff5f88690 in cppu::OWeakAggObject::release() (this=0x33abc40) at cppuhelper/source/weak.cxx:296 #15 0x00007ffff5e7e4d5 in cppu::WeakAggComponentImplHelperBase::release() (this=0x33abc40) at cppuhelper/source/implbase.cxx:211 #16 0x00007fffaaa0d875 in cppu::WeakAggComponentImplHelper5<com::sun::star::accessibility::XAccessible, com::sun::star::accessibility::XAccessibleComponent, com::sun::star::accessibility::XAccessibleContext, com::sun::star::accessibility::XAccessibleEventBroadcaster, com::sun::star::lang::XServiceInfo>::release() (this=0x33abc40) at include/cppuhelper/compbase5.hxx:142 #17 0x00007fffaaa0ab15 in ScAccessibleContextBase::release() (this=0x33abc40) at sc/source/ui/Accessibility/AccessibleContextBase.cxx:119 #18 0x00007fffaaaa6b75 in ScAccessibleTableBase::release() (this=0x33abc40) at sc/source/ui/Accessibility/AccessibleTableBase.cxx:86 #19 0x00007fffd8f4f11a in com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessible>::clear() (this=<error reading variable: Unhandled DWARF expression opcode 0x0>) at include/com/sun/star/uno/Reference.hxx:231 #20 0x00007fffd8f4c41d in atk_object_wrapper_finalize(_GObject*) (obj=0x7f71930) at vcl/unx/gtk3/a11y/atkwrapper.cxx:662 #21 0x00007ffff3538d32 in g_object_unref (_object=<optimized out>) at ../gobject/gobject.c:3678 #22 g_object_unref (_object=0x7f71930) at ../gobject/gobject.c:3553 #23 0x00007fffd9571fc5 in expiry_func () at /lib64/libatk-bridge-2.0.so.0 #24 0x00007fffea7197b1 in g_timeout_dispatch (source=0x313d360, callback=0x7fffd9571f60 <expiry_func>, user_data=0x7fffbc01bec0) at ../glib/gmain.c:4971 #25 0x00007fffea718faf in g_main_dispatch (context=0x5f8230) at ../glib/gmain.c:3417 Change-Id: If527f1cf1bfc59bb8df586afaf5da62bbcb08eea Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142691 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <[email protected]>
...avoiding > /writerfilter/source/dmapper/PropertyMap.cxx:324:71: runtime error: -2539 is outside the range of representable values of type 'unsigned int' > #0 0x7f80e9a3b6c3 in writerfilter::dmapper::PropertyMap::dumpXml() const /writerfilter/source/dmapper/PropertyMap.cxx:324:71 > #1 0x7f80e928eccb in writerfilter::dmapper::DomainMapperTableHandler::endTableGetTableStyle(writerfilter::dmapper::TableInfo&, std::__debug::vector<com::sun::star::beans::PropertyValue, std::allocator<com::sun::star::beans::PropertyValue> >&, bool) /writerfilter/source/dmapper/DomainMapperTableHandler.cxx:434:40 > #2 0x7f80e92b4b8f in writerfilter::dmapper::DomainMapperTableHandler::endTable(unsigned int, bool) /writerfilter/source/dmapper/DomainMapperTableHandler.cxx:1377:30 > #3 0x7f80e9c289de in writerfilter::dmapper::TableManager::resolveCurrentTable() /writerfilter/source/dmapper/TableManager.cxx:409:33 > #4 0x7f80e9c297a1 in writerfilter::dmapper::TableManager::endLevel() /writerfilter/source/dmapper/TableManager.cxx:427:9 > #5 0x7f80e936a997 in writerfilter::dmapper::DomainMapperTableManager::endLevel() /writerfilter/source/dmapper/DomainMapperTableManager.cxx:497:19 > #6 0x7f80e9c256d1 in writerfilter::dmapper::TableManager::endParagraphGroup() /writerfilter/source/dmapper/TableManager.cxx:338:9 > #7 0x7f80e9205974 in writerfilter::dmapper::DomainMapper::lcl_endParagraphGroup() /writerfilter/source/dmapper/DomainMapper.cxx:3511:35 > #8 0x7f80e984598e in writerfilter::LoggedStream::endParagraphGroup() /writerfilter/source/dmapper/LoggedResources.cxx:108:5 > #9 0x7f80e9d9addf in writerfilter::ooxml::OOXMLFastContextHandler::endParagraphGroup() /writerfilter/source/ooxml/OOXMLFastContextHandler.cxx:452:23 > #10 0x7f80ea042658 in writerfilter::ooxml::OOXMLFactory_wml::endAction(writerfilter::ooxml::OOXMLFastContextHandler*) /workdir/CustomTarget/writerfilter/source/ooxml/OOXMLFactory_wml.cxx:7574:19 > #11 0x7f80e9d8822a in writerfilter::ooxml::OOXMLFactory::endAction(writerfilter::ooxml::OOXMLFastContextHandler*) /writerfilter/source/ooxml/OOXMLFactory.cxx:157:19 > #12 0x7f80e9d944eb in writerfilter::ooxml::OOXMLFastContextHandler::lcl_endFastElement(int) /writerfilter/source/ooxml/OOXMLFastContextHandler.cxx:242:5 > #13 0x7f80e9d941da in writerfilter::ooxml::OOXMLFastContextHandler::endFastElement(int) /writerfilter/source/ooxml/OOXMLFastContextHandler.cxx:225:9 > #14 0x7f80f44ffe2a in (anonymous namespace)::Entity::endElement() /sax/source/fastparser/fastparser.cxx:515:27 > #15 0x7f80f44ff818 in sax_fastparser::FastSaxParserImpl::callbackEndElement() /sax/source/fastparser/fastparser.cxx:1343:17 > #16 0x7f80f44ef554 in (anonymous namespace)::call_callbackEndElement(void*, unsigned char const*, unsigned char const*, unsigned char const*) /sax/source/fastparser/fastparser.cxx:339:18 > #17 0x7f8179cde54a in xmlParseEndTag2 /workdir/UnpackedTarball/libxml2/parser.c:9742:2 > #18 0x7f8179c8ced0 in xmlParseTryOrFinish /workdir/UnpackedTarball/libxml2/parser.c:11642:14 > #19 0x7f8179c7acc9 in xmlParseChunk /workdir/UnpackedTarball/libxml2/parser.c:12351:13 > #20 0x7f80f44ea4f1 in sax_fastparser::FastSaxParserImpl::parse() /sax/source/fastparser/fastparser.cxx:1099:21 > #21 0x7f80f44e4146 in sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) /sax/source/fastparser/fastparser.cxx:904:9 > #22 0x7f80f4505300 in sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) /sax/source/fastparser/fastparser.cxx:1482:13 > #23 0x7f80e9d46e98 in writerfilter::ooxml::OOXMLDocumentImpl::resolve(writerfilter::Stream&) /writerfilter/source/ooxml/OOXMLDocumentImpl.cxx:508:18 > #24 0x7f80e9cfed05 in (anonymous namespace)::WriterFilter::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /writerfilter/source/filter/WriterFilter.cxx:208:24 > #25 0x7f8149202866 in SfxObjectShell::ImportFrom(SfxMedium&, com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&) /sfx2/source/doc/objstor.cxx:2272:34 > #26 0x7f81491c2434 in SfxObjectShell::DoLoad(SfxMedium*) /sfx2/source/doc/objstor.cxx:739:23 > #27 0x7f81493c9870 in SfxBaseModel::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /sfx2/source/doc/sfxbasemodel.cxx:1937:36 > #28 0x7f8149b20d71 in (anonymous namespace)::SfxFrameLoader_Impl::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) /sfx2/source/view/frmload.cxx:720:28 > #29 0x7f810e00256b in framework::LoadEnv::impl_loadContent() /framework/source/loadenv/loadenv.cxx:1167:37 > #30 0x7f810dff896b in framework::LoadEnv::start() /framework/source/loadenv/loadenv.cxx:403:20 > #31 0x7f810dff0dec 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) /framework/source/loadenv/loadenv.cxx:308:5 > #32 0x7f810dfec180 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&) /framework/source/loadenv/loadenv.cxx:168:14 > #33 0x7f810e0b541d in framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /framework/source/services/desktop.cxx:604:16 > #34 0x7f810e0b5646 in non-virtual thunk to framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /framework/source/services/desktop.cxx > #35 0x7f812a050c25 in unotest::MacrosTest::loadFromDesktop(rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /unotest/source/cpp/macros_test.cxx:70:62 > #36 0x7f81444fcad9 in UnoApiTest::load(rtl::OUString const&, char const*) /test/source/unoapi_test.cxx:115:11 > #37 0x7f812a8ae042 in SwModelTestBase::loadURL(rtl::OUString const&, char const*, char const*) /sw/qa/unit/swmodeltestbase.cxx:449:20 > #38 0x7f812a8b9452 in SwModelTestBase::load(char const*, char const*) /sw/qa/inc/swmodeltestbase.hxx:351:16 > #39 0x7f812a8af516 in SwModelTestBase::loadAndSave(char const*) /sw/qa/unit/swmodeltestbase.cxx:502:5 > #40 0x7f814fcfe242 in testTableThemePreservation::TestBody() /sw/qa/extras/ooxmlexport/ooxmlexport3.cxx:888:5 during CppunitTest_sw_ooxmlexport3 (<https://ci.libreoffice.org//job/lo_ubsan/2629/>). (The overload for is_integral parameters is needed now to avoid ambiguity errors when integer types other than sal_uInt32 could also match the newly added float overload.) Change-Id: I6482bccef2442655359c71e13f0c9bfe7e4d9dd4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144855 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]>
make -j 24 -rs -f /home/noel/libo-tsan/Makefile.gbuild
CppunitTest_filter_svg
[build CUT] filter_svg
==================
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
(pid=1138169)
Cycle in lock order graph: M0 (0x7b0c0043c8c0) => M1 (0x7b0c00459090)
=> M0
Mutex M1 acquired here while holding mutex M0 in main thread:
/home/noel/llvm-project/compiler-rt/lib/tsan/rtl/../../sanitizer_common/sanitizer_common_interceptors.inc:4481
(cppunittester+0x9b4c2)
#1 osl_acquireMutex ??:? (libuno_sal.so.3+0x783ca)
namespace)::AnimationNode::setParent(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>
const&) animcore.cxx:? (libanimcorelo.so+0x1d34f)
M1 try to lock
namespace)::AnimationNode::setParent(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>
const&) animcore.cxx:? (libanimcorelo.so+0x33bf2)
namespace)::AnimationNode::appendChild(com::sun::star::uno::Reference<com::sun::star::animations::XAnimationNode>
const&) animcore.cxx:? (libanimcorelo.so+0x27312)
M0 locked
namespace)::AnimationNode::appendChild(com::sun::star::uno::Reference<com::sun::star::animations::XAnimationNode>
const&) animcore.cxx:? (libanimcorelo.so+0x34d29)
xmloff::AnimationNodeContext::AnimationNodeContext(com::sun::star::uno::Reference<com::sun::star::animations::XAnimationNode>
const&, SvXMLImport&, int,
com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList>
const&, std::shared_ptr<xmloff::AnimationsImportHelperImpl> const&)
animationimport.cxx:? (libxolo.so+0x338060)
com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList>
const&) animationimport.cxx:? (libxolo.so+0x33e010)
com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList>
const&) ??:? (libxolo.so+0x2ca188)
com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList>
const&) ??:? (libxolo.so+0x2cb106)
namespace)::Event const*) fastparser.cxx:? (libexpwraplo.so+0x4731a)
sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource
const&) fastparser.cxx:? (libexpwraplo.so+0x407fa)
sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource
const&) ??:? (libexpwraplo.so+0x48d08)
const&) ??:? (libxolo.so+0x2c7296)
SvXMLImport::parseStream(com::sun::star::xml::sax::InputSource const&)
??:? (libxolo.so+0x2c74e2)
namespace)::ReadThroughComponent(com::sun::star::uno::Reference<com::sun::star::embed::XStorage>
const&, com::sun::star::uno::Reference<com::sun::star::lang::XComponent>
const&, char const*,
com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext>
const&, char const*,
com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&,
rtl::OUString const&, bool) sdxmlwrp.cxx:? (libsdlo.so+0x4f2088)
(libsdlo.so+0x4ef8ed)
#17 sd::DrawDocShell::Load(SfxMedium&) ??:? (libsdlo.so+0x5bdbeb)
(libsfxlo.so+0x596b65)
#19 SfxObjectShell::DoLoad(SfxMedium*) ??:? (libsfxlo.so+0x598732)
SfxBaseModel::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
const&) ??:? (libsfxlo.so+0x5e5222)
SfxBaseModel::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
const&) ??:? (libsfxlo.so+0x5e6135)
namespace)::SfxFrameLoader_Impl::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame>
const&) frmload.cxx:? (libsfxlo.so+0x6ca8fb)
namespace)::SfxFrameLoader_Impl::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame>
const&) frmload.cxx:? (libsfxlo.so+0x6cd749)
(libfwklo.so+0x30000f)
#25 framework::LoadEnv::start() loadenv.cxx:? (libfwklo.so+0x2fb828)
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) loadenv.cxx:?
(libfwklo.so+0x2f98d0)
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&) loadenv.cxx:? (libfwklo.so+0x2f8905)
rtl::OUString const&, int,
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
const&) ??:? (libfwklo.so+0x322cbf)
framework::Desktop::loadComponentFromURL(rtl::OUString const&,
rtl::OUString const&, int,
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
const&) ??:? (libfwklo.so+0x322f11)
rtl::OUString const&,
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
const&) ??:? (libunotest.so+0x13f41)
(libsubsequenttest.so+0x5fc93)
std::char_traits<char16_t> >, char const*) ??:?
(libsubsequenttest.so+0x60570)
(libtest_filter_svg.so+0x161bd)
Mutex M0 acquired here while holding mutex M1 in main thread:
/home/noel/llvm-project/compiler-rt/lib/tsan/rtl/../../sanitizer_common/sanitizer_common_interceptors.inc:4481
(cppunittester+0x9b4c2)
#1 osl_acquireMutex ??:? (libuno_sal.so.3+0x783ca)
namespace)::AnimationNode::fireChangeListener() animcore.cxx:?
(libanimcorelo.so+0x3832f)
M0 try to lock
namespace)::AnimationNode::fireChangeListener() animcore.cxx:?
(libanimcorelo.so+0x38814)
namespace)::AnimationNode::fireChangeListener() animcore.cxx:?
(libanimcorelo.so+0x38814)
namespace)::AnimationNode::setParent(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>
const&) animcore.cxx:? (libanimcorelo.so+0x1d514)
namespace)::AnimationNode::setParent(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>
const&) animcore.cxx:? (libanimcorelo.so+0x33bf2)
namespace)::AnimationNode::appendChild(com::sun::star::uno::Reference<com::sun::star::animations::XAnimationNode>
const&) animcore.cxx:? (libanimcorelo.so+0x27312)
M1 locked
namespace)::AnimationNode::appendChild(com::sun::star::uno::Reference<com::sun::star::animations::XAnimationNode>
const&) animcore.cxx:? (libanimcorelo.so+0x34d29)
xmloff::AnimationNodeContext::AnimationNodeContext(com::sun::star::uno::Reference<com::sun::star::animations::XAnimationNode>
const&, SvXMLImport&, int,
com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList>
const&, std::shared_ptr<xmloff::AnimationsImportHelperImpl> const&)
animationimport.cxx:? (libxolo.so+0x338060)
com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList>
const&) animationimport.cxx:? (libxolo.so+0x33e010)
com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList>
const&) ??:? (libxolo.so+0x2ca188)
com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList>
const&) ??:? (libxolo.so+0x2cb106)
namespace)::Event const*) fastparser.cxx:? (libexpwraplo.so+0x4731a)
sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource
const&) fastparser.cxx:? (libexpwraplo.so+0x407fa)
sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource
const&) ??:? (libexpwraplo.so+0x48d08)
const&) ??:? (libxolo.so+0x2c7296)
SvXMLImport::parseStream(com::sun::star::xml::sax::InputSource const&)
??:? (libxolo.so+0x2c74e2)
namespace)::ReadThroughComponent(com::sun::star::uno::Reference<com::sun::star::embed::XStorage>
const&, com::sun::star::uno::Reference<com::sun::star::lang::XComponent>
const&, char const*,
com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext>
const&, char const*,
com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&,
rtl::OUString const&, bool) sdxmlwrp.cxx:? (libsdlo.so+0x4f2088)
(libsdlo.so+0x4ef8ed)
#20 sd::DrawDocShell::Load(SfxMedium&) ??:? (libsdlo.so+0x5bdbeb)
(libsfxlo.so+0x596b65)
#22 SfxObjectShell::DoLoad(SfxMedium*) ??:? (libsfxlo.so+0x598732)
SfxBaseModel::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
const&) ??:? (libsfxlo.so+0x5e5222)
SfxBaseModel::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
const&) ??:? (libsfxlo.so+0x5e6135)
namespace)::SfxFrameLoader_Impl::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame>
const&) frmload.cxx:? (libsfxlo.so+0x6ca8fb)
namespace)::SfxFrameLoader_Impl::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame>
const&) frmload.cxx:? (libsfxlo.so+0x6cd749)
(libfwklo.so+0x30000f)
#28 framework::LoadEnv::start() loadenv.cxx:? (libfwklo.so+0x2fb828)
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) loadenv.cxx:?
(libfwklo.so+0x2f98d0)
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&) loadenv.cxx:? (libfwklo.so+0x2f8905)
rtl::OUString const&, int,
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
const&) ??:? (libfwklo.so+0x322cbf)
framework::Desktop::loadComponentFromURL(rtl::OUString const&,
rtl::OUString const&, int,
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
const&) ??:? (libfwklo.so+0x322f11)
rtl::OUString const&,
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
const&) ??:? (libunotest.so+0x13f41)
Change-Id: Iecb3f5c1e553d8f4278c7caf7e81f6cb1f589e9a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145335
Tested-by: Jenkins
Reviewed-by: Noel Grandin <[email protected]>
...introduced with 18f1e7a "sc: Use FormulaGrammarSwitch" (which gets partially reverted here), > ==7079==ERROR: AddressSanitizer: heap-use-after-free on address 0x61d0002d6cac at pc 0x7f3635905f9e bp 0x7ffdd2107b60 sp 0x7ffdd2107b58 > WRITE of size 4 at 0x61d0002d6cac thread T0 > #0 0x7f3635905f9d in ScDocument::SetGrammar(formula::FormulaGrammar::Grammar) /sc/source/core/data/documen3.cxx:507:14 > #1 0x7f362ce3da0c in FormulaGrammarSwitch::~FormulaGrammarSwitch() /sc/qa/unit/helper/qahelper.cxx:56:12 > #2 0x7f36529ad332 in ScExportTest2::testRefStringUnspecified() /sc/qa/unit/subsequent_export_test2.cxx:436:1 > > 0x61d0002d6cac is located 2092 bytes inside of 2280-byte region [0x61d0002d6480,0x61d0002d6d68) > freed by thread T0 here: > #0 0x4fe180 in operator delete(void*) /home/tdf/lode/packages/llvm-llvmorg-12.0.1.src/compiler-rt/lib/asan/asan_new_delete.cpp:160 > #1 0x7f36398e1b9e in __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<ScDocument, std::allocator<ScDocument>, (__gnu_cxx::_Lock_policy)2> >::deallocate(std::_Sp_counted_ptr_inplace<ScDocument, std::allocator<ScDocument>, (__gnu_cxx::_Lock_policy)2>*, unsigned long) /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/ext/new_allocator.h:125:2 > #2 0x7f36398e1b4e in std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<ScDocument, std::allocator<ScDocument>, (__gnu_cxx::_Lock_policy)2> > >::deallocate(std::allocator<std::_Sp_counted_ptr_inplace<ScDocument, std::allocator<ScDocument>, (__gnu_cxx::_Lock_policy)2> >&, std::_Sp_counted_ptr_inplace<ScDocument, std::allocator<ScDocument>, (__gnu_cxx::_Lock_policy)2>*, unsigned long) /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/alloc_traits.h:462:13 > #3 0x7f36398e0691 in std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<ScDocument, std::allocator<ScDocument>, (__gnu_cxx::_Lock_policy)2> > >::~__allocated_ptr() /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/allocated_ptr.h:73:4 > #4 0x7f36398e12b3 in std::_Sp_counted_ptr_inplace<ScDocument, std::allocator<ScDocument>, (__gnu_cxx::_Lock_policy)2>::_M_destroy() /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/shared_ptr_base.h:545:7 > #5 0x7f3635077f59 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/shared_ptr_base.h:170:10 > #6 0x7f3635077bf9 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/shared_ptr_base.h:684:11 > #7 0x7f36388ea06c in std::__shared_ptr<ScDocument, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/shared_ptr_base.h:1123:31 > #8 0x7f36388e02b8 in std::shared_ptr<ScDocument>::~shared_ptr() /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/shared_ptr.h:93:11 > #9 0x7f36398a45c7 in ScDocShell::~ScDocShell() /sc/source/ui/docshell/docsh.cxx:2941:1 > #10 0x7f36398a475f in ScDocShell::~ScDocShell() /sc/source/ui/docshell/docsh.cxx:2910:1 > #11 0x7f36398a4908 in ScDocShell::~ScDocShell() /sc/source/ui/docshell/docsh.cxx:2910:1 > #12 0x7f3627bd3f11 in SvRefBase::ReleaseRef() /include/tools/ref.hxx:163:29 > #13 0x7f3627bd350c in tools::SvRef<SfxObjectShell>::~SvRef() /include/tools/ref.hxx:56:36 > #14 0x7f3629662ce1 in IMPL_SfxBaseModel_DataContainer::~IMPL_SfxBaseModel_DataContainer() /sfx2/source/doc/sfxbasemodel.cxx:249:5 > #15 0x7f362966598a in void __gnu_cxx::new_allocator<IMPL_SfxBaseModel_DataContainer>::destroy<IMPL_SfxBaseModel_DataContainer>(IMPL_SfxBaseModel_DataContainer*) /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/ext/new_allocator.h:140:28 > #16 0x7f3629665746 in void std::allocator_traits<std::allocator<IMPL_SfxBaseModel_DataContainer> >::destroy<IMPL_SfxBaseModel_DataContainer>(std::allocator<IMPL_SfxBaseModel_DataContainer>&, IMPL_SfxBaseModel_DataContainer*) /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/alloc_traits.h:487:8 > #17 0x7f3629660583 in std::_Sp_counted_ptr_inplace<IMPL_SfxBaseModel_DataContainer, std::allocator<IMPL_SfxBaseModel_DataContainer>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/shared_ptr_base.h:535:2 > #18 0x7f3627b7b1fc in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/shared_ptr_base.h:154:6 > #19 0x7f3627b7b029 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/shared_ptr_base.h:684:11 > #20 0x7f362966a9cc in std::__shared_ptr<IMPL_SfxBaseModel_DataContainer, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/shared_ptr_base.h:1123:31 > #21 0x7f362962f893 in std::__shared_ptr<IMPL_SfxBaseModel_DataContainer, (__gnu_cxx::_Lock_policy)2>::reset() /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/shared_ptr_base.h:1235:9 > #22 0x7f3629572b96 in SfxBaseModel::dispose() /sfx2/source/doc/sfxbasemodel.cxx:765:13 > #23 0x7f3629591550 in SfxBaseModel::close(unsigned char) /sfx2/source/doc/sfxbasemodel.cxx:1496:5 > #24 0x7f36295702fd in SfxBaseModel::dispose() /sfx2/source/doc/sfxbasemodel.cxx:722:13 > #25 0x7f36247062aa in UnoApiTest::load(rtl::OUString const&, char const*) /test/source/unoapi_test.cxx:87:22 > #26 0x7f362470bb09 in UnoApiTest::saveAndReload(rtl::OUString const&, char const*) /test/source/unoapi_test.cxx:207:5 > #27 0x7f36529ad04f in ScExportTest2::testRefStringUnspecified() /sc/qa/unit/subsequent_export_test2.cxx:428:5 (<https://ci.libreoffice.org/job/lo_ubsan/2653/>) Change-Id: I34adf135a4ec79935295a21b34277324c531291b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145706 Reviewed-by: Xisco Fauli <[email protected]> Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]>
An ASan UITest_writer_tests7 UITEST_TEST_NAME=tdf135938.tdf135938.test_tdf135938_cross_reference_update occasionally failed for me with > ==1994973==ERROR: AddressSanitizer: heap-use-after-free on address 0x60f00014d718 at pc 0x7f95f4946ffa bp 0x7f95907fd720 sp 0x7f95907fd718 > READ of size 8 at 0x60f00014d718 thread T33 > #0 in std::__cxx1998::vector<std::unique_ptr<SvLBoxItem, std::default_delete<SvLBoxItem>>, std::allocator<std::unique_ptr<SvLBoxItem, std::default_delete<SvLBoxItem>>>>::size() const at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/stl_vector.h:988:40 > #1 in SvTreeListEntry::ItemCount() const at vcl/source/treelist/treelistentry.cxx:110:20 > #2 in SvTabListBox::GetEntryText(SvTreeListEntry const*, unsigned short) at vcl/source/treelist/svtabbx.cxx:289:37 > #3 in SvTabListBox::GetEntryText(SvTreeListEntry*) const at vcl/source/treelist/svtabbx.cxx:280:12 > #4 in TreeListEntryUIObject::get_state() at vcl/source/treelist/uiobject.cxx:119:32 > #5 in UIObjectUnoObj::getState() at vcl/source/uitest/uno/uiobject_uno.cxx:164:29 > #6 in non-virtual thunk to UIObjectUnoObj::getState() at vcl/source/uitest/uno/uiobject_uno.cxx > #7 in gcc3::callVirtualMethod(void*, unsigned int, void*, _typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int, unsigned long*, double*) at bridges/source/cpp_uno/gcc3_linux_x86-64/callvirtualmethod.cxx:77:5 > #8 in cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*, bridges::cpp_uno::shared::VtableSlot, _typelib_TypeDescriptionReference*, int, _typelib_MethodParameter*, void*, void**, _uno_Any**) at bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:233:13 > #9 in unoInterfaceProxyDispatch at bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:413:13 > #10 in binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny*, std::__debug::vector<binaryurp::BinaryAny, std::allocator<binaryurp::BinaryAny>>*) const at binaryurp/source/incomingrequest.cxx:236:13 > #11 in binaryurp::IncomingRequest::execute() const at binaryurp/source/incomingrequest.cxx:79:26 > #12 in request at binaryurp/source/reader.cxx:86:9 > #13 in cppu_threadpool::JobQueue::enter(void const*, bool) at cppu/source/threadpool/jobqueue.cxx:100:17 > #14 in cppu_threadpool::ORequestThread::run() at cppu/source/threadpool/thread.cxx:165:31 > > 0x60f00014d718 is located 120 bytes inside of 168-byte region [0x60f00014d6a0,0x60f00014d748) > freed by thread T0 here: > #0 in operator delete(void*, unsigned long) at ~/github.com/llvm/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:164:3 > #1 in SvTreeListEntry::~SvTreeListEntry() at vcl/source/treelist/treelistentry.cxx:62:1 > #2 in std::default_delete<SvTreeListEntry>::operator()(SvTreeListEntry*) const at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/unique_ptr.h:102:2 > #3 in std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>::~unique_ptr() at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/unique_ptr.h:407:4 > #4 in void std::destroy_at<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>>(std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/stl_construct.h:88:15 > #5 in void std::_Destroy<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>>(std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/stl_construct.h:149:7 > #6 in void std::_Destroy_aux<false>::__destroy<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*>(std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*, std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/stl_construct.h:163:6 > #7 in void std::_Destroy<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*>(std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*, std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/stl_construct.h:195:7 > #8 in void std::_Destroy<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*, std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>>(std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*, std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*, std::allocator<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>>&) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/alloc_traits.h:947:7 > #9 in std::__cxx1998::vector<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>, std::allocator<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>>>::_M_erase_at_end(std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/stl_vector.h:1932:6 > #10 in std::__cxx1998::vector<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>, std::allocator<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>>>::clear() at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/stl_vector.h:1601:9 > #11 in std::__debug::vector<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>, std::allocator<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>>>::clear() at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/debug/vector:729:9 > #12 in SvTreeListEntry::ClearChildren() at vcl/source/treelist/treelistentry.cxx:28:16 > #13 in SvTreeList::Clear() at vcl/source/treelist/treelist.cxx:123:16 > #14 in SvTreeListBox::Clear() at vcl/source/treelist/treelistbox.cxx:422:17 > #15 in SalInstanceTreeView::clear() at vcl/source/app/salvtables.cxx:4240:18 > #16 in SwFieldRefPage::Reset(SfxItemSet const*) at sw/source/ui/fldui/fldref.cxx:175:16 > #17 in SwFieldPage::EditNewField(bool) at sw/source/ui/fldui/fldpage.cxx:111:5 > #18 in SwFieldDlg::ReInitTabPage(std::basic_string_view<char, std::char_traits<char>>, bool) at sw/source/ui/fldui/fldtdlg.cxx:218:16 > #19 in SwFieldDlg::Activate() at sw/source/ui/fldui/fldtdlg.cxx:239:9 > #20 in SwChildWinWrapper::UpdateHdl(Timer*) at sw/source/uibase/fldui/fldwrap.cxx:42:26 > #21 in SwChildWinWrapper::LinkStubUpdateHdl(void*, Timer*) at sw/source/uibase/fldui/fldwrap.cxx:39:1 > #22 in Link<Timer*, void>::Call(Timer*) const at include/tools/link.hxx:111:45 > #23 in Timer::Invoke() at vcl/source/app/timer.cxx:75:21 > #24 in Scheduler::CallbackTaskScheduling() at vcl/source/app/scheduler.cxx:481:20 > #25 in SalTimer::CallCallback() at vcl/inc/saltimer.hxx:54:13 > #26 in SvpSalInstance::CheckTimeout(bool) at vcl/headless/svpinst.cxx:161:53 > #27 in SvpSalInstance::ImplYield(bool, bool) at vcl/headless/svpinst.cxx:399:17 > #28 in SvpSalInstance::DoYield(bool, bool) at vcl/headless/svpinst.cxx:471:21 > #29 in ImplYield(bool, bool) at vcl/source/app/svapp.cxx:475:48 > #30 in Application::Yield() at vcl/source/app/svapp.cxx:559:5 > #31 in Application::Execute() at vcl/source/app/svapp.cxx:453:13 > #32 in desktop::Desktop::Main() at desktop/source/app/app.cxx:1604:13 causing > ERROR: test_tdf135938_cross_reference_update (tdf135938.tdf135938) > ---------------------------------------------------------------------- > Traceback (most recent call last): > File "uitest/uitest/test.py", line 125, in execute_dialog_through_command > yield xDialog > File "uitest/uitest/test.py", line 140, in execute_modeless_dialog_through_command > yield xDialog > File "sw/qa/uitest/writer_tests7/tdf135938.py", line 40, in test_tdf135938_cross_reference_update > self.assertEqual("ABC", get_state_as_dict(xSelect.getChild(0))["Text"]) > File "uitest/uitest/uihelper/common.py", line 13, in get_state_as_dict > return convert_property_values_to_dict(ui_object.getState()) > uitest.uihelper.common.com.sun.star.lang.DisposedException: Binary URP bridge disposed during call at binaryurp/source/bridge.cxx:613 The issue apparently is that TreeListEntryUIObject UNO objects, introduced in 71f562f "uitest: support tree lists", reference SvTreeListEntry instances by pointers that can apparently go stale while those UNO objects are still alive. I'm not sure there would be an easy fix for this, short of making those SvTreeListEntry instances ref-counted, or ripping out UITest support for those TreeListEntryUIObjects again. However, that underlying issue would presumably not be of practical concern if the test_tdf135938_cross_reference_update Python code would have waited for processEventsToIdle between its > xInsert.executeAction("CLICK", tuple()) and the following block > self.assertEqual("2", get_state_as_dict(xSelect)["Children"]) > self.assertEqual("ABC", get_state_as_dict(xSelect.getChild(0))["Text"]) > self.assertEqual("DEF", get_state_as_dict(xSelect.getChild(1))["Text"]) That way, there should be no more opportunity for the pointers in the passed-out TreeListEntryUIObjects to become stale while the Python code accesses them. And in Python UITest code, having to follow a call to executeAction by a call to processEventsToIdle appears to be a common and recurring requirement, just look at the most recent af1ca68 "another stab at making this test reliable", d183dae "tdf#153161: (Ab)use a call to XTextRange::getString to flush edits", 3cc6b87 "make an effort to fix the UITest_inputLine intermittent failure", f466854 "tdf#150443 sw: fix crash of rejecting table row deletion". So make executeAction always call ProcessEventsToIdle, to simplify this and hopefully make UITests more robust. (Removing any now-redundant calls to processEventsToIdle, following calls to executeAction, from Python test code is left as follow-up clean up for now.) (I /think/ that the implementation of UIObjectUnoObj::executeAction could be simplified now, as waiting for Scheduler::ProcessEventsToIdle() should already make sure that aIdle has been processed, removing the need for the Notifier. But lets leave that as a follow-up TODO for now.) Change-Id: I41a5d51515dedaae44fb810b0ad3b0264c90abf3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146434 Reviewed-by: Xisco Fauli <[email protected]> Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]>
sporadically reproducible with tsan and ./instdir/program/soffice.bin --headless --convert-to pdf ~/forum-mso-en4-802501.xlsx move getTables().applyAutoFilters(), which wants to query tab 1 while tab 1 is still getting imported, until after the threaded import has completed. This call was moved before in: commit edd51b8 Date: Thu Aug 15 16:23:46 2013 +0100 fix for bnc#834705 missing drop downs for autofilter ================== WARNING: ThreadSanitizer: data race (pid=3791886) Read of size 8 at 0x7b5000040f20 by thread T7 (mutexes: write M0, write M1): #0 __gnu_cxx::__normal_iterator<unsigned long const*, std::vector<unsigned long, std::allocator<unsigned long>>>::__normal_iterator(unsigned long const* const&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_iterator.h:1073:20 (libsclo.so+0x3d31c4) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #1 std::vector<unsigned long, std::allocator<unsigned long>>::cend() const /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_vector.h:960:16 (libsclo.so+0x3d31c4) #2 mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::cbegin() const core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:3771:34 (libsclo.so+0x3d31c4) #3 mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::begin() const core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:3753:12 (libsclo.so+0x3d31c4) #4 ScColumn::InitBlockPosition(sc::ColumnBlockConstPosition&) const core/sc/source/core/data/column3.cxx:1135:35 (libsclo.so+0x3d31c4) #5 ScTable::GetDataArea(short&, int&, short&, int&, bool, bool) const core/sc/source/core/data/table1.cxx:908:19 (libsclo.so+0x637b39) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #6 ScDocument::GetDataArea(short, short&, int&, short&, int&, bool, bool) const core/sc/source/core/data/document.cxx:1104:23 (libsclo.so+0x49b696) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #7 ScDBData::ExtendDataArea(ScDocument const&) core/sc/source/core/tool/dbdata.cxx:654:10 (libsclo.so+0x741e77) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #8 ScDocument::GetFilterEntries(short, int, short, ScFilterEntries&) core/sc/source/core/data/documen3.cxx:1577:14 (libsclo.so+0x46e7a6) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #9 (anonymous namespace)::fillQueryParam(ScQueryParam&, ScDocument*, com::sun::star::uno::Sequence<com::sun::star::sheet::TableFilterField3> const&) core/sc/source/ui/unoobj/datauno.cxx:1164:27 (libsclo.so+0xf7dd72) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #10 ScFilterDescriptorBase::setFilterFields3(com::sun::star::uno::Sequence<com::sun::star::sheet::TableFilterField3> const&) core/sc/source/ui/unoobj/datauno.cxx:1380:5 (libsclo.so+0xf7dd72) #11 non-virtual thunk to ScFilterDescriptorBase::setFilterFields3(com::sun::star::uno::Sequence<com::sun::star::sheet::TableFilterField3> const&) core/sc/source/ui/unoobj/datauno.cxx (libsclo.so+0xf7e2c2) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #12 oox::xls::AutoFilter::finalizeImport(com::sun::star::uno::Reference<com::sun::star::sheet::XDatabaseRange> const&, short) core/sc/source/filter/oox/autofilterbuffer.cxx:803:22 (libscfiltlo.so+0x3cca2c) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #13 oox::xls::AutoFilterBuffer::finalizeImport(com::sun::star::uno::Reference<com::sun::star::sheet::XDatabaseRange> const&, short) core/sc/source/filter/oox/autofilterbuffer.cxx:950:22 (libscfiltlo.so+0x3cdc0b) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #14 oox::xls::Table::applyAutoFilters() core/sc/source/filter/oox/tablebuffer.cxx:143:23 (libscfiltlo.so+0x4b9268) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #15 void std::__invoke_impl<void, void (oox::xls::Table::*&)(), oox::xls::Table&>(std::__invoke_memfun_ref, void (oox::xls::Table::*&)(), oox::xls::Table&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/invoke.h:67:14 (libscfiltlo.so+0x4b9d96) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #16 std::__invoke_result<void (oox::xls::Table::*&)(), oox::xls::Table&>::type std::__invoke<void (oox::xls::Table::*&)(), oox::xls::Table&>(void (oox::xls::Table::*&)(), oox::xls::Table&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/invoke.h:96:14 (libscfiltlo.so+0x4b9d96) #17 void std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>::__call<void, oox::xls::Table&, 0ul>(std::tuple<oox::xls::Table&>&&, std::_Index_tuple<0ul>) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/functional:495:11 (libscfiltlo.so+0x4b9d96) #18 void std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>::operator()<oox::xls::Table&, void>(oox::xls::Table&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/functional:580:17 (libscfiltlo.so+0x4b9d96) #19 oox::RefMap<int, oox::xls::Table, std::less<int>>::ForEachFunctor<std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>>::operator()(std::pair<int const, std::shared_ptr<oox::xls::Table>> const&) core/include/oox/helper/refmap.hxx:122:89 (libscfiltlo.so+0x4b9d96) #20 oox::RefMap<int, oox::xls::Table, std::less<int>>::ForEachFunctor<std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>> std::for_each<std::_Rb_tree_const_iterator<std::pair<int const, std::shared_ptr<oox::xls::Table>>>, oox::RefMap<int, oox::xls::Table, std::less<int>>::ForEachFunctor<std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>>>(std::_Rb_tree_const_iterator<std::pair<int const, std::shared_ptr<oox::xls::Table>>>, std::_Rb_tree_const_iterator<std::pair<int const, std::shared_ptr<oox::xls::Table>>>, oox::RefMap<int, oox::xls::Table, std::less<int>>::ForEachFunctor<std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>>) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:3787:2 (libscfiltlo.so+0x4b9d96) #21 void oox::RefMap<int, oox::xls::Table, std::less<int>>::forEach<std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>>(std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()> const&) const core/include/oox/helper/refmap.hxx:71:29 (libscfiltlo.so+0x4b9d96) #22 void oox::RefMap<int, oox::xls::Table, std::less<int>>::forEachMem<void (oox::xls::Table::*)()>(void (oox::xls::Table::*)()) const core/include/oox/helper/refmap.hxx:79:29 (libscfiltlo.so+0x4b9d96) #23 oox::xls::TableBuffer::applyAutoFilters() core/sc/source/filter/oox/tablebuffer.cxx:179:16 (libscfiltlo.so+0x4b9d96) #24 oox::xls::WorksheetGlobals::finalizeWorksheetImport() core/sc/source/filter/oox/worksheethelper.cxx:943:17 (libscfiltlo.so+0x4ee58e) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #25 oox::xls::WorksheetHelper::finalizeWorksheetImport() core/sc/source/filter/oox/worksheethelper.cxx:1625:17 (libscfiltlo.so+0x4f2cff) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #26 oox::xls::WorksheetFragment::finalizeImport() core/sc/source/filter/oox/worksheetfragment.cxx:632:5 (libscfiltlo.so+0x4e91cc) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #27 oox::core::FragmentHandler2::endDocument() core/oox/source/core/fragmenthandler2.cxx:53:5 (libooxlo.so+0x1c20d9) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #28 non-virtual thunk to oox::core::FragmentHandler2::endDocument() core/oox/source/core/fragmenthandler2.cxx (libooxlo.so+0x1c20d9) #29 sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) core/sax/source/fastparser/fastparser.cxx:910:36 (libexpwraplo.so+0x2a06a) (BuildId: 4c8d8739ce3b93f891afa1e160f975a2892a4af4) #30 sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) core/sax/source/fastparser/fastparser.cxx:1482:13 (libexpwraplo.so+0x31738) (BuildId: 4c8d8739ce3b93f891afa1e160f975a2892a4af4) #31 oox::core::FastParser::parseStream(com::sun::star::xml::sax::InputSource const&, bool) core/oox/source/core/fastparser.cxx:121:15 (libooxlo.so+0x1ae980) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #32 oox::core::FastParser::parseStream(com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, rtl::OUString const&) core/oox/source/core/fastparser.cxx:129:5 (libooxlo.so+0x1aebdf) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #33 oox::core::XmlFilterBase::importFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) core/oox/source/core/xmlfilterbase.cxx:412:21 (libooxlo.so+0x1d01ac) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #34 oox::xls::WorkbookHelper::importOoxFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) core/sc/source/filter/oox/workbookhelper.cxx:1024:27 (libscfiltlo.so+0x4dbbd2) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #35 oox::xls::(anonymous namespace)::WorkerThread::doWork() core/sc/source/filter/oox/workbookfragment.cxx:249:27 (libscfiltlo.so+0x4d3347) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #36 comphelper::ThreadTask::exec() core/comphelper/source/misc/threadpool.cxx:319:9 (libcomphelper.so+0x17dbc1) (BuildId: 30a9bf106ea764f860a55d99b75dd87a0f268335) #37 comphelper::ThreadPool::ThreadWorker::execute() core/comphelper/source/misc/threadpool.cxx:85:24 (libcomphelper.so+0x17dbc1) #38 salhelper::Thread::run() core/salhelper/source/thread.cxx:39:5 (libuno_salhelpergcc3.so.3+0x5267) (BuildId: d146f721ac5d8da923b02df0d671788655b81eb6) #39 non-virtual thunk to salhelper::Thread::run() core/salhelper/source/thread.cxx (libuno_salhelpergcc3.so.3+0x5267) #40 threadFunc core/include/osl/thread.hxx:189:15 (libuno_salhelpergcc3.so.3+0x551e) (BuildId: d146f721ac5d8da923b02df0d671788655b81eb6) #41 osl_thread_start_Impl(void*) core/sal/osl/unx/thread.cxx:265:9 (libuno_sal.so.3+0x6a9d5) (BuildId: 767a6cd7c58bf820064a10cf0ab0f15b30c2f4ac) Previous write of size 8 at 0x7b5000040f20 by thread T6 (mutexes: write M2): #0 std::vector<unsigned long, std::allocator<unsigned long>>::_M_fill_insert(__gnu_cxx::__normal_iterator<unsigned long*, std::vector<unsigned long, std::allocator<unsigned long>>>, unsigned long, unsigned long const&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/vector.tcc:556:29 (libsclo.so+0x2f6766) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #1 std::vector<unsigned long, std::allocator<unsigned long>>::insert(__gnu_cxx::__normal_iterator<unsigned long const*, std::vector<unsigned long, std::allocator<unsigned long>>>, unsigned long, unsigned long const&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_vector.h:1435:2 (libsclo.so+0x2ffd3a) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #2 mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::blocks_type::insert(unsigned long, unsigned long) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:99:15 (libsclo.so+0x2ffd3a) #3 mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::set_new_block_to_middle(unsigned long, unsigned long, unsigned long, bool) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:4326:19 (libsclo.so+0x2ffd3a) #4 mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::iterator_trait> mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::set_cell_to_middle_of_block<double>(unsigned long, unsigned long, double const&) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:3999:19 (libsclo.so+0x3259fe) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #5 mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::iterator_trait> mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::set_cell_to_empty_block<double>(unsigned long, unsigned long, double const&) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:3313:12 (libsclo.so+0x3259fe) #6 mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::iterator_trait> mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::set_impl<double>(unsigned long, unsigned long, double const&) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:1260:16 (libsclo.so+0x32492f) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #7 mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::iterator_trait> mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::set<double>(mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::iterator_trait> const&, unsigned long, double const&) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:754:20 (libsclo.so+0x4cc138) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #8 ScDocumentImport::setNumericCell(ScAddress const&, double) core/sc/source/core/data/documentimport.cxx:259:35 (libsclo.so+0x4cc138) #9 oox::xls::SheetDataBuffer::setValueCell(oox::xls::CellModel const&, double) core/sc/source/filter/oox/sheetdatabuffer.cxx:107:20 (libscfiltlo.so+0x4833c0) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #10 oox::xls::SheetDataContext::onEndElement() core/sc/source/filter/oox/sheetdatacontext.cxx:185:25 (libscfiltlo.so+0x48fed2) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #11 non-virtual thunk to oox::xls::SheetDataContext::onEndElement() core/sc/source/filter/oox/sheetdatacontext.cxx (libscfiltlo.so+0x48fff9) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #12 oox::core::ContextHandler2Helper::implEndElement(int) core/oox/source/core/contexthandler2.cxx:125:9 (libooxlo.so+0x1ac82b) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #13 oox::core::ContextHandler2::endFastElement(int) core/oox/source/core/contexthandler2.cxx:220:5 (libooxlo.so+0x1ac82b) #14 non-virtual thunk to oox::core::ContextHandler2::endFastElement(int) core/oox/source/core/contexthandler2.cxx (libooxlo.so+0x1ac82b) #15 (anonymous namespace)::Entity::endElement() core/sax/source/fastparser/fastparser.cxx:515:27 (libexpwraplo.so+0x3042f) (BuildId: 4c8d8739ce3b93f891afa1e160f975a2892a4af4) #16 sax_fastparser::FastSaxParserImpl::consume((anonymous namespace)::EventList&) core/sax/source/fastparser/fastparser.cxx:1029:25 (libexpwraplo.so+0x29d37) (BuildId: 4c8d8739ce3b93f891afa1e160f975a2892a4af4) #17 sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) core/sax/source/fastparser/fastparser.cxx:869:22 (libexpwraplo.so+0x29d37) #18 sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) core/sax/source/fastparser/fastparser.cxx:1482:13 (libexpwraplo.so+0x31738) (BuildId: 4c8d8739ce3b93f891afa1e160f975a2892a4af4) #19 oox::core::FastParser::parseStream(com::sun::star::xml::sax::InputSource const&, bool) core/oox/source/core/fastparser.cxx:121:15 (libooxlo.so+0x1ae980) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #20 oox::core::FastParser::parseStream(com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, rtl::OUString const&) core/oox/source/core/fastparser.cxx:129:5 (libooxlo.so+0x1aebdf) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #21 oox::core::XmlFilterBase::importFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) core/oox/source/core/xmlfilterbase.cxx:412:21 (libooxlo.so+0x1d01ac) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #22 oox::xls::WorkbookHelper::importOoxFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) core/sc/source/filter/oox/workbookhelper.cxx:1024:27 (libscfiltlo.so+0x4dbbd2) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #23 oox::xls::(anonymous namespace)::WorkerThread::doWork() core/sc/source/filter/oox/workbookfragment.cxx:249:27 (libscfiltlo.so+0x4d3347) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #24 comphelper::ThreadTask::exec() core/comphelper/source/misc/threadpool.cxx:319:9 (libcomphelper.so+0x17dbc1) (BuildId: 30a9bf106ea764f860a55d99b75dd87a0f268335) #25 comphelper::ThreadPool::ThreadWorker::execute() core/comphelper/source/misc/threadpool.cxx:85:24 (libcomphelper.so+0x17dbc1) #26 salhelper::Thread::run() core/salhelper/source/thread.cxx:39:5 (libuno_salhelpergcc3.so.3+0x5267) (BuildId: d146f721ac5d8da923b02df0d671788655b81eb6) #27 non-virtual thunk to salhelper::Thread::run() core/salhelper/source/thread.cxx (libuno_salhelpergcc3.so.3+0x5267) #28 threadFunc core/include/osl/thread.hxx:189:15 (libuno_salhelpergcc3.so.3+0x551e) (BuildId: d146f721ac5d8da923b02df0d671788655b81eb6) #29 osl_thread_start_Impl(void*) core/sal/osl/unx/thread.cxx:265:9 (libuno_sal.so.3+0x6a9d5) (BuildId: 767a6cd7c58bf820064a10cf0ab0f15b30c2f4ac) Change-Id: I7542432749fded8ab5e35f79cb221ad712f7802d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146430 Tested-by: Jenkins Tested-by: Caolán McNamara <[email protected]> Reviewed-by: Caolán McNamara <[email protected]>
An ASan UITest_writer_tests7 UITEST_TEST_NAME=tdf135938.tdf135938.test_tdf135938_cross_reference_update occasionally failed for me with > ==1994973==ERROR: AddressSanitizer: heap-use-after-free on address 0x60f00014d718 at pc 0x7f95f4946ffa bp 0x7f95907fd720 sp 0x7f95907fd718 > READ of size 8 at 0x60f00014d718 thread T33 > #0 in std::__cxx1998::vector<std::unique_ptr<SvLBoxItem, std::default_delete<SvLBoxItem>>, std::allocator<std::unique_ptr<SvLBoxItem, std::default_delete<SvLBoxItem>>>>::size() const at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/stl_vector.h:988:40 > #1 in SvTreeListEntry::ItemCount() const at vcl/source/treelist/treelistentry.cxx:110:20 > #2 in SvTabListBox::GetEntryText(SvTreeListEntry const*, unsigned short) at vcl/source/treelist/svtabbx.cxx:289:37 > #3 in SvTabListBox::GetEntryText(SvTreeListEntry*) const at vcl/source/treelist/svtabbx.cxx:280:12 > #4 in TreeListEntryUIObject::get_state() at vcl/source/treelist/uiobject.cxx:119:32 > #5 in UIObjectUnoObj::getState() at vcl/source/uitest/uno/uiobject_uno.cxx:164:29 > #6 in non-virtual thunk to UIObjectUnoObj::getState() at vcl/source/uitest/uno/uiobject_uno.cxx > #7 in gcc3::callVirtualMethod(void*, unsigned int, void*, _typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int, unsigned long*, double*) at bridges/source/cpp_uno/gcc3_linux_x86-64/callvirtualmethod.cxx:77:5 > #8 in cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*, bridges::cpp_uno::shared::VtableSlot, _typelib_TypeDescriptionReference*, int, _typelib_MethodParameter*, void*, void**, _uno_Any**) at bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:233:13 > #9 in unoInterfaceProxyDispatch at bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:413:13 > #10 in binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny*, std::__debug::vector<binaryurp::BinaryAny, std::allocator<binaryurp::BinaryAny>>*) const at binaryurp/source/incomingrequest.cxx:236:13 > #11 in binaryurp::IncomingRequest::execute() const at binaryurp/source/incomingrequest.cxx:79:26 > #12 in request at binaryurp/source/reader.cxx:86:9 > #13 in cppu_threadpool::JobQueue::enter(void const*, bool) at cppu/source/threadpool/jobqueue.cxx:100:17 > #14 in cppu_threadpool::ORequestThread::run() at cppu/source/threadpool/thread.cxx:165:31 > > 0x60f00014d718 is located 120 bytes inside of 168-byte region [0x60f00014d6a0,0x60f00014d748) > freed by thread T0 here: > #0 in operator delete(void*, unsigned long) at ~/github.com/llvm/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:164:3 > #1 in SvTreeListEntry::~SvTreeListEntry() at vcl/source/treelist/treelistentry.cxx:62:1 > #2 in std::default_delete<SvTreeListEntry>::operator()(SvTreeListEntry*) const at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/unique_ptr.h:102:2 > #3 in std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>::~unique_ptr() at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/unique_ptr.h:407:4 > #4 in void std::destroy_at<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>>(std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/stl_construct.h:88:15 > #5 in void std::_Destroy<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>>(std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/stl_construct.h:149:7 > #6 in void std::_Destroy_aux<false>::__destroy<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*>(std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*, std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/stl_construct.h:163:6 > #7 in void std::_Destroy<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*>(std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*, std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/stl_construct.h:195:7 > #8 in void std::_Destroy<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*, std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>>(std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*, std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*, std::allocator<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>>&) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/alloc_traits.h:947:7 > #9 in std::__cxx1998::vector<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>, std::allocator<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>>>::_M_erase_at_end(std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/stl_vector.h:1932:6 > #10 in std::__cxx1998::vector<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>, std::allocator<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>>>::clear() at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/stl_vector.h:1601:9 > #11 in std::__debug::vector<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>, std::allocator<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>>>::clear() at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/debug/vector:729:9 > #12 in SvTreeListEntry::ClearChildren() at vcl/source/treelist/treelistentry.cxx:28:16 > #13 in SvTreeList::Clear() at vcl/source/treelist/treelist.cxx:123:16 > #14 in SvTreeListBox::Clear() at vcl/source/treelist/treelistbox.cxx:422:17 > #15 in SalInstanceTreeView::clear() at vcl/source/app/salvtables.cxx:4240:18 > #16 in SwFieldRefPage::Reset(SfxItemSet const*) at sw/source/ui/fldui/fldref.cxx:175:16 > #17 in SwFieldPage::EditNewField(bool) at sw/source/ui/fldui/fldpage.cxx:111:5 > #18 in SwFieldDlg::ReInitTabPage(std::basic_string_view<char, std::char_traits<char>>, bool) at sw/source/ui/fldui/fldtdlg.cxx:218:16 > #19 in SwFieldDlg::Activate() at sw/source/ui/fldui/fldtdlg.cxx:239:9 > #20 in SwChildWinWrapper::UpdateHdl(Timer*) at sw/source/uibase/fldui/fldwrap.cxx:42:26 > #21 in SwChildWinWrapper::LinkStubUpdateHdl(void*, Timer*) at sw/source/uibase/fldui/fldwrap.cxx:39:1 > #22 in Link<Timer*, void>::Call(Timer*) const at include/tools/link.hxx:111:45 > #23 in Timer::Invoke() at vcl/source/app/timer.cxx:75:21 > #24 in Scheduler::CallbackTaskScheduling() at vcl/source/app/scheduler.cxx:481:20 > #25 in SalTimer::CallCallback() at vcl/inc/saltimer.hxx:54:13 > #26 in SvpSalInstance::CheckTimeout(bool) at vcl/headless/svpinst.cxx:161:53 > #27 in SvpSalInstance::ImplYield(bool, bool) at vcl/headless/svpinst.cxx:399:17 > #28 in SvpSalInstance::DoYield(bool, bool) at vcl/headless/svpinst.cxx:471:21 > #29 in ImplYield(bool, bool) at vcl/source/app/svapp.cxx:475:48 > #30 in Application::Yield() at vcl/source/app/svapp.cxx:559:5 > #31 in Application::Execute() at vcl/source/app/svapp.cxx:453:13 > #32 in desktop::Desktop::Main() at desktop/source/app/app.cxx:1604:13 causing > ERROR: test_tdf135938_cross_reference_update (tdf135938.tdf135938) > ---------------------------------------------------------------------- > Traceback (most recent call last): > File "uitest/uitest/test.py", line 125, in execute_dialog_through_command > yield xDialog > File "uitest/uitest/test.py", line 140, in execute_modeless_dialog_through_command > yield xDialog > File "sw/qa/uitest/writer_tests7/tdf135938.py", line 40, in test_tdf135938_cross_reference_update > self.assertEqual("ABC", get_state_as_dict(xSelect.getChild(0))["Text"]) > File "uitest/uitest/uihelper/common.py", line 13, in get_state_as_dict > return convert_property_values_to_dict(ui_object.getState()) > uitest.uihelper.common.com.sun.star.lang.DisposedException: Binary URP bridge disposed during call at binaryurp/source/bridge.cxx:613 The issue apparently is that TreeListEntryUIObject UNO objects, introduced in 71f562f "uitest: support tree lists", reference SvTreeListEntry instances by pointers that can apparently go stale while those UNO objects are still alive. I'm not sure there would be an easy fix for this, short of making those SvTreeListEntry instances ref-counted, or ripping out UITest support for those TreeListEntryUIObjects again. However, that underlying issue would presumably not be of practical concern if the test_tdf135938_cross_reference_update Python code would have waited for processEventsToIdle between its > xInsert.executeAction("CLICK", tuple()) and the following block > self.assertEqual("2", get_state_as_dict(xSelect)["Children"]) > self.assertEqual("ABC", get_state_as_dict(xSelect.getChild(0))["Text"]) > self.assertEqual("DEF", get_state_as_dict(xSelect.getChild(1))["Text"]) That way, there should be no more opportunity for the pointers in the passed-out TreeListEntryUIObjects to become stale while the Python code accesses them. And in Python UITest code, having to follow a call to executeAction by a call to processEventsToIdle appears to be a common and recurring requirement, just look at the most recent af1ca68 "another stab at making this test reliable", d183dae "tdf#153161: (Ab)use a call to XTextRange::getString to flush edits", 3cc6b87 "make an effort to fix the UITest_inputLine intermittent failure", f466854 "tdf#150443 sw: fix crash of rejecting table row deletion". So make executeAction always call ProcessEventsToIdle, to simplify this and hopefully make UITests more robust. (Removing any now-redundant calls to processEventsToIdle, following calls to executeAction, from Python test code is left as follow-up clean up for now.) (I /think/ that the implementation of UIObjectUnoObj::executeAction could be simplified now, as waiting for Scheduler::ProcessEventsToIdle() should already make sure that aIdle has been processed, removing the need for the Notifier. But lets leave that as a follow-up TODO for now.) Change-Id: I41a5d51515dedaae44fb810b0ad3b0264c90abf3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146434 Reviewed-by: Xisco Fauli <[email protected]> Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]> (cherry picked from commit 51a2e1a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146404
An ASan UITest_writer_tests7 UITEST_TEST_NAME=tdf135938.tdf135938.test_tdf135938_cross_reference_update occasionally failed for me with > ==1994973==ERROR: AddressSanitizer: heap-use-after-free on address 0x60f00014d718 at pc 0x7f95f4946ffa bp 0x7f95907fd720 sp 0x7f95907fd718 > READ of size 8 at 0x60f00014d718 thread T33 > #0 in std::__cxx1998::vector<std::unique_ptr<SvLBoxItem, std::default_delete<SvLBoxItem>>, std::allocator<std::unique_ptr<SvLBoxItem, std::default_delete<SvLBoxItem>>>>::size() const at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/stl_vector.h:988:40 > #1 in SvTreeListEntry::ItemCount() const at vcl/source/treelist/treelistentry.cxx:110:20 > #2 in SvTabListBox::GetEntryText(SvTreeListEntry const*, unsigned short) at vcl/source/treelist/svtabbx.cxx:289:37 > #3 in SvTabListBox::GetEntryText(SvTreeListEntry*) const at vcl/source/treelist/svtabbx.cxx:280:12 > #4 in TreeListEntryUIObject::get_state() at vcl/source/treelist/uiobject.cxx:119:32 > #5 in UIObjectUnoObj::getState() at vcl/source/uitest/uno/uiobject_uno.cxx:164:29 > #6 in non-virtual thunk to UIObjectUnoObj::getState() at vcl/source/uitest/uno/uiobject_uno.cxx > #7 in gcc3::callVirtualMethod(void*, unsigned int, void*, _typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int, unsigned long*, double*) at bridges/source/cpp_uno/gcc3_linux_x86-64/callvirtualmethod.cxx:77:5 > #8 in cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*, bridges::cpp_uno::shared::VtableSlot, _typelib_TypeDescriptionReference*, int, _typelib_MethodParameter*, void*, void**, _uno_Any**) at bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:233:13 > #9 in unoInterfaceProxyDispatch at bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:413:13 > #10 in binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny*, std::__debug::vector<binaryurp::BinaryAny, std::allocator<binaryurp::BinaryAny>>*) const at binaryurp/source/incomingrequest.cxx:236:13 > #11 in binaryurp::IncomingRequest::execute() const at binaryurp/source/incomingrequest.cxx:79:26 > #12 in request at binaryurp/source/reader.cxx:86:9 > #13 in cppu_threadpool::JobQueue::enter(void const*, bool) at cppu/source/threadpool/jobqueue.cxx:100:17 > #14 in cppu_threadpool::ORequestThread::run() at cppu/source/threadpool/thread.cxx:165:31 > > 0x60f00014d718 is located 120 bytes inside of 168-byte region [0x60f00014d6a0,0x60f00014d748) > freed by thread T0 here: > #0 in operator delete(void*, unsigned long) at ~/github.com/llvm/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:164:3 > #1 in SvTreeListEntry::~SvTreeListEntry() at vcl/source/treelist/treelistentry.cxx:62:1 > #2 in std::default_delete<SvTreeListEntry>::operator()(SvTreeListEntry*) const at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/unique_ptr.h:102:2 > #3 in std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>::~unique_ptr() at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/unique_ptr.h:407:4 > #4 in void std::destroy_at<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>>(std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/stl_construct.h:88:15 > #5 in void std::_Destroy<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>>(std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/stl_construct.h:149:7 > #6 in void std::_Destroy_aux<false>::__destroy<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*>(std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*, std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/stl_construct.h:163:6 > #7 in void std::_Destroy<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*>(std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*, std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/stl_construct.h:195:7 > #8 in void std::_Destroy<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*, std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>>(std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*, std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*, std::allocator<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>>&) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/alloc_traits.h:947:7 > #9 in std::__cxx1998::vector<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>, std::allocator<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>>>::_M_erase_at_end(std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>*) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/stl_vector.h:1932:6 > #10 in std::__cxx1998::vector<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>, std::allocator<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>>>::clear() at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/bits/stl_vector.h:1601:9 > #11 in std::__debug::vector<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>, std::allocator<std::unique_ptr<SvTreeListEntry, std::default_delete<SvTreeListEntry>>>>::clear() at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.0/../../../../include/c++/13.0.0/debug/vector:729:9 > #12 in SvTreeListEntry::ClearChildren() at vcl/source/treelist/treelistentry.cxx:28:16 > #13 in SvTreeList::Clear() at vcl/source/treelist/treelist.cxx:123:16 > #14 in SvTreeListBox::Clear() at vcl/source/treelist/treelistbox.cxx:422:17 > #15 in SalInstanceTreeView::clear() at vcl/source/app/salvtables.cxx:4240:18 > #16 in SwFieldRefPage::Reset(SfxItemSet const*) at sw/source/ui/fldui/fldref.cxx:175:16 > #17 in SwFieldPage::EditNewField(bool) at sw/source/ui/fldui/fldpage.cxx:111:5 > #18 in SwFieldDlg::ReInitTabPage(std::basic_string_view<char, std::char_traits<char>>, bool) at sw/source/ui/fldui/fldtdlg.cxx:218:16 > #19 in SwFieldDlg::Activate() at sw/source/ui/fldui/fldtdlg.cxx:239:9 > #20 in SwChildWinWrapper::UpdateHdl(Timer*) at sw/source/uibase/fldui/fldwrap.cxx:42:26 > #21 in SwChildWinWrapper::LinkStubUpdateHdl(void*, Timer*) at sw/source/uibase/fldui/fldwrap.cxx:39:1 > #22 in Link<Timer*, void>::Call(Timer*) const at include/tools/link.hxx:111:45 > #23 in Timer::Invoke() at vcl/source/app/timer.cxx:75:21 > #24 in Scheduler::CallbackTaskScheduling() at vcl/source/app/scheduler.cxx:481:20 > #25 in SalTimer::CallCallback() at vcl/inc/saltimer.hxx:54:13 > #26 in SvpSalInstance::CheckTimeout(bool) at vcl/headless/svpinst.cxx:161:53 > #27 in SvpSalInstance::ImplYield(bool, bool) at vcl/headless/svpinst.cxx:399:17 > #28 in SvpSalInstance::DoYield(bool, bool) at vcl/headless/svpinst.cxx:471:21 > #29 in ImplYield(bool, bool) at vcl/source/app/svapp.cxx:475:48 > #30 in Application::Yield() at vcl/source/app/svapp.cxx:559:5 > #31 in Application::Execute() at vcl/source/app/svapp.cxx:453:13 > #32 in desktop::Desktop::Main() at desktop/source/app/app.cxx:1604:13 causing > ERROR: test_tdf135938_cross_reference_update (tdf135938.tdf135938) > ---------------------------------------------------------------------- > Traceback (most recent call last): > File "uitest/uitest/test.py", line 125, in execute_dialog_through_command > yield xDialog > File "uitest/uitest/test.py", line 140, in execute_modeless_dialog_through_command > yield xDialog > File "sw/qa/uitest/writer_tests7/tdf135938.py", line 40, in test_tdf135938_cross_reference_update > self.assertEqual("ABC", get_state_as_dict(xSelect.getChild(0))["Text"]) > File "uitest/uitest/uihelper/common.py", line 13, in get_state_as_dict > return convert_property_values_to_dict(ui_object.getState()) > uitest.uihelper.common.com.sun.star.lang.DisposedException: Binary URP bridge disposed during call at binaryurp/source/bridge.cxx:613 The issue apparently is that TreeListEntryUIObject UNO objects, introduced in 71f562f "uitest: support tree lists", reference SvTreeListEntry instances by pointers that can apparently go stale while those UNO objects are still alive. I'm not sure there would be an easy fix for this, short of making those SvTreeListEntry instances ref-counted, or ripping out UITest support for those TreeListEntryUIObjects again. However, that underlying issue would presumably not be of practical concern if the test_tdf135938_cross_reference_update Python code would have waited for processEventsToIdle between its > xInsert.executeAction("CLICK", tuple()) and the following block > self.assertEqual("2", get_state_as_dict(xSelect)["Children"]) > self.assertEqual("ABC", get_state_as_dict(xSelect.getChild(0))["Text"]) > self.assertEqual("DEF", get_state_as_dict(xSelect.getChild(1))["Text"]) That way, there should be no more opportunity for the pointers in the passed-out TreeListEntryUIObjects to become stale while the Python code accesses them. And in Python UITest code, having to follow a call to executeAction by a call to processEventsToIdle appears to be a common and recurring requirement, just look at the most recent af1ca68 "another stab at making this test reliable", d183dae "tdf#153161: (Ab)use a call to XTextRange::getString to flush edits", 3cc6b87 "make an effort to fix the UITest_inputLine intermittent failure", f466854 "tdf#150443 sw: fix crash of rejecting table row deletion". So make executeAction always call ProcessEventsToIdle, to simplify this and hopefully make UITests more robust. (Removing any now-redundant calls to processEventsToIdle, following calls to executeAction, from Python test code is left as follow-up clean up for now.) (I /think/ that the implementation of UIObjectUnoObj::executeAction could be simplified now, as waiting for Scheduler::ProcessEventsToIdle() should already make sure that aIdle has been processed, removing the need for the Notifier. But lets leave that as a follow-up TODO for now.) Change-Id: I41a5d51515dedaae44fb810b0ad3b0264c90abf3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146434 Reviewed-by: Xisco Fauli <[email protected]> Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]> (cherry picked from commit 51a2e1a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146404
UITest_writer_macro_tests occasionally failed with > ==3730889==ERROR: AddressSanitizer: heap-use-after-free on address 0x60d00057d080 at pc 0x7f75353d933c bp 0x7ffcedf8de90 sp 0x7ffcedf8de88 > READ of size 8 at 0x60d00057d080 thread T0 > #0 in basctl::ModulWindow::GetState(SfxItemSet&) at basctl/source/basicide/baside2.cxx:1088:22 > #1 in basctl::Shell::GetState(SfxItemSet&) at basctl/source/basicide/basides1.cxx:1160:18 > #2 in SfxStubbasctl_ShellGetState(SfxShell*, SfxItemSet&) at workdir/SdiTarget/basctl/sdi/basslots.hxx:164:1 > #3 in SfxDispatcher::FillState_(SfxSlotServer const&, SfxItemSet&, SfxSlot const*) at sfx2/source/control/dispatch.cxx:1658:9 > #4 in SfxBindings::Update_Impl(SfxStateCache&) at sfx2/source/control/bindings.cxx:260:22 > #5 in SfxBindings::NextJob_Impl(Timer const*) at sfx2/source/control/bindings.cxx:1275:17 > #6 in SfxBindings::NextJob(Timer*) at sfx2/source/control/bindings.cxx:1220:5 > #7 in SfxBindings::LinkStubNextJob(void*, Timer*) at sfx2/source/control/bindings.cxx:1218:1 > #8 in Link<Timer*, void>::Call(Timer*) const at include/tools/link.hxx:111:45 > #9 in Timer::Invoke() at vcl/source/app/timer.cxx:75:21 > #10 in Scheduler::CallbackTaskScheduling() at vcl/source/app/scheduler.cxx:481:20 > #11 in SalTimer::CallCallback() at vcl/inc/saltimer.hxx:54:13 > #12 in SvpSalInstance::CheckTimeout(bool) at vcl/headless/svpinst.cxx:161:53 > #13 in SvpSalInstance::ImplYield(bool, bool) at vcl/headless/svpinst.cxx:399:17 > #14 in SvpSalInstance::DoYield(bool, bool) at vcl/headless/svpinst.cxx:471:21 > #15 in ImplYield(bool, bool) at vcl/source/app/svapp.cxx:475:48 > #16 in Application::Yield() at vcl/source/app/svapp.cxx:559:5 > #17 in Application::Execute() at vcl/source/app/svapp.cxx:453:13 > #18 in desktop::Desktop::Main() at desktop/source/app/app.cxx:1604:13 > #19 in ImplSVMain() at vcl/source/app/svmain.cxx:203:35 > #20 in SVMain() at vcl/source/app/svmain.cxx:235:12 > #21 in soffice_main at desktop/source/app/sofficemain.cxx:94:12 > #22 in sal_main at desktop/source/app/main.c:51:15 > #23 in main at desktop/source/app/main.c:49:1 > > 0x60d00057d080 is located 0 bytes inside of 144-byte region [0x60d00057d080,0x60d00057d110) > freed by thread T20 here: > #0 in operator delete(void*, unsigned long) at /home/sbergman/github.com/llvm/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:164:3 > #1 in basctl::ModulWindow::~ModulWindow() at basctl/source/basicide/baside2.cxx:235:1 > #2 in VclReferenceBase::release() const at include/vcl/vclreferencebase.hxx:43:13 > #3 in rtl::Reference<basctl::BaseWindow>::~Reference() at include/rtl/ref.hxx:129:22 > #4 in VclPtr<basctl::BaseWindow>::disposeAndClear() at include/vcl/vclptr.hxx:209:5 > #5 in basctl::Shell::~Shell() at basctl/source/basicide/basidesh.cxx:246:23 > #6 in basctl::Shell::~Shell() at basctl/source/basicide/basidesh.cxx:228:1 > #7 in SfxViewFrame::ReleaseObjectShell_Impl() at sfx2/source/view/viewfrm.cxx:1114:9 > #8 in SfxViewFrame::~SfxViewFrame() at sfx2/source/view/viewfrm.cxx:1905:5 > #9 in SfxViewFrame::Close() at sfx2/source/view/viewfrm.cxx:1166:5 > #10 in SfxFrame::DoClose_Impl() at sfx2/source/view/frame.cxx:138:37 > #11 in SfxBaseController::dispose() at sfx2/source/view/sfxbasecontroller.cxx:931:28 > #12 in (anonymous namespace)::XFrameImpl::setComponent(com::sun::star::uno::Reference<com::sun::star::awt::XWindow> const&, com::sun::star::uno::Reference<com::sun::star::frame::XController> const&) at framework/source/services/frame.cxx:1493:33 > #13 in (anonymous namespace)::XFrameImpl::close(unsigned char) at framework/source/services/frame.cxx:1704:12 > #14 in SfxFrame::DoClose() at sfx2/source/view/frame.cxx:104:29 > #15 in SfxViewFrame::Notify(SfxBroadcaster&, SfxHint const&) at sfx2/source/view/viewfrm.cxx:1703:28 > #16 in SfxBroadcaster::Broadcast(SfxHint const&) at svl/source/notify/SfxBroadcaster.cxx:40:24 > #17 in (anonymous namespace)::SfxModelListener_Impl::notifyClosing(com::sun::star::lang::EventObject const&) at sfx2/source/doc/objxtor.cxx:145:12 > #18 in SfxBaseModel::close(unsigned char) at sfx2/source/doc/sfxbasemodel.cxx:1487:76 > #19 in SfxBaseModel::dispose() at sfx2/source/doc/sfxbasemodel.cxx:725:13 > #20 in gcc3::callVirtualMethod(void*, unsigned int, void*, _typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int, unsigned long*, double*) at bridges/source/cpp_uno/gcc3_linux_x86-64/callvirtualmethod.cxx:77:5 > #21 in cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*, bridges::cpp_uno::shared::VtableSlot, _typelib_TypeDescriptionReference*, int, _typelib_MethodParameter*, void*, void**, _uno_Any**) at bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:233:13 > #22 in unoInterfaceProxyDispatch at bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:413:13 > #23 in binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny*, std::__debug::vector<binaryurp::BinaryAny, std::allocator<binaryurp::BinaryAny>>*) const at binaryurp/source/incomingrequest.cxx:236:13 > #24 in binaryurp::IncomingRequest::execute() const at binaryurp/source/incomingrequest.cxx:79:26 > #25 in request at binaryurp/source/reader.cxx:86:9 > #26 in cppu_threadpool::JobQueue::enter(void const*, bool) at cppu/source/threadpool/jobqueue.cxx:100:17 > #27 in cppu_threadpool::ORequestThread::run() at cppu/source/threadpool/thread.cxx:165:31 > #28 in threadFunc at include/osl/thread.hxx:189:15 > #29 in osl_thread_start_Impl(void*) at sal/osl/unx/thread.cxx:265:9 where the ModulWindow apparently happens to get deleted by the UNO worker thread in the window of time when ModuleWindow::IsPasteAllowed temporarily dropped the SolarMutex on the main thread. Temporarily dropping the SolarMutex around the xClipboard->getContents() call had been there ever since the code got introduced in c29c7a8 "#92173# Reimplement Basic password protection UI in Basic IDE", and at least theoretically it is of course the right thing to do to not call that UNO API with the SolarMutex locked. But it is of course also not a good idea to use SolarMutexReleaser, and that xClipboard->getContents() call doesn't look like it leads to deadlock. Change-Id: I3660065508d37801125f675440071d61e41906d1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146650 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]>
sporadically reproducible with tsan and ./instdir/program/soffice.bin --headless --convert-to pdf ~/forum-mso-en4-802501.xlsx move getTables().applyAutoFilters(), which wants to query tab 1 while tab 1 is still getting imported, until after the threaded import has completed. This call was moved before in: commit edd51b8 Date: Thu Aug 15 16:23:46 2013 +0100 fix for bnc#834705 missing drop downs for autofilter ================== WARNING: ThreadSanitizer: data race (pid=3791886) Read of size 8 at 0x7b5000040f20 by thread T7 (mutexes: write M0, write M1): #0 __gnu_cxx::__normal_iterator<unsigned long const*, std::vector<unsigned long, std::allocator<unsigned long>>>::__normal_iterator(unsigned long const* const&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_iterator.h:1073:20 (libsclo.so+0x3d31c4) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #1 std::vector<unsigned long, std::allocator<unsigned long>>::cend() const /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_vector.h:960:16 (libsclo.so+0x3d31c4) #2 mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::cbegin() const core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:3771:34 (libsclo.so+0x3d31c4) #3 mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::begin() const core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:3753:12 (libsclo.so+0x3d31c4) #4 ScColumn::InitBlockPosition(sc::ColumnBlockConstPosition&) const core/sc/source/core/data/column3.cxx:1135:35 (libsclo.so+0x3d31c4) #5 ScTable::GetDataArea(short&, int&, short&, int&, bool, bool) const core/sc/source/core/data/table1.cxx:908:19 (libsclo.so+0x637b39) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #6 ScDocument::GetDataArea(short, short&, int&, short&, int&, bool, bool) const core/sc/source/core/data/document.cxx:1104:23 (libsclo.so+0x49b696) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #7 ScDBData::ExtendDataArea(ScDocument const&) core/sc/source/core/tool/dbdata.cxx:654:10 (libsclo.so+0x741e77) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #8 ScDocument::GetFilterEntries(short, int, short, ScFilterEntries&) core/sc/source/core/data/documen3.cxx:1577:14 (libsclo.so+0x46e7a6) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #9 (anonymous namespace)::fillQueryParam(ScQueryParam&, ScDocument*, com::sun::star::uno::Sequence<com::sun::star::sheet::TableFilterField3> const&) core/sc/source/ui/unoobj/datauno.cxx:1164:27 (libsclo.so+0xf7dd72) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #10 ScFilterDescriptorBase::setFilterFields3(com::sun::star::uno::Sequence<com::sun::star::sheet::TableFilterField3> const&) core/sc/source/ui/unoobj/datauno.cxx:1380:5 (libsclo.so+0xf7dd72) #11 non-virtual thunk to ScFilterDescriptorBase::setFilterFields3(com::sun::star::uno::Sequence<com::sun::star::sheet::TableFilterField3> const&) core/sc/source/ui/unoobj/datauno.cxx (libsclo.so+0xf7e2c2) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #12 oox::xls::AutoFilter::finalizeImport(com::sun::star::uno::Reference<com::sun::star::sheet::XDatabaseRange> const&, short) core/sc/source/filter/oox/autofilterbuffer.cxx:803:22 (libscfiltlo.so+0x3cca2c) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #13 oox::xls::AutoFilterBuffer::finalizeImport(com::sun::star::uno::Reference<com::sun::star::sheet::XDatabaseRange> const&, short) core/sc/source/filter/oox/autofilterbuffer.cxx:950:22 (libscfiltlo.so+0x3cdc0b) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #14 oox::xls::Table::applyAutoFilters() core/sc/source/filter/oox/tablebuffer.cxx:143:23 (libscfiltlo.so+0x4b9268) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #15 void std::__invoke_impl<void, void (oox::xls::Table::*&)(), oox::xls::Table&>(std::__invoke_memfun_ref, void (oox::xls::Table::*&)(), oox::xls::Table&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/invoke.h:67:14 (libscfiltlo.so+0x4b9d96) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #16 std::__invoke_result<void (oox::xls::Table::*&)(), oox::xls::Table&>::type std::__invoke<void (oox::xls::Table::*&)(), oox::xls::Table&>(void (oox::xls::Table::*&)(), oox::xls::Table&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/invoke.h:96:14 (libscfiltlo.so+0x4b9d96) #17 void std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>::__call<void, oox::xls::Table&, 0ul>(std::tuple<oox::xls::Table&>&&, std::_Index_tuple<0ul>) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/functional:495:11 (libscfiltlo.so+0x4b9d96) #18 void std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>::operator()<oox::xls::Table&, void>(oox::xls::Table&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/functional:580:17 (libscfiltlo.so+0x4b9d96) #19 oox::RefMap<int, oox::xls::Table, std::less<int>>::ForEachFunctor<std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>>::operator()(std::pair<int const, std::shared_ptr<oox::xls::Table>> const&) core/include/oox/helper/refmap.hxx:122:89 (libscfiltlo.so+0x4b9d96) #20 oox::RefMap<int, oox::xls::Table, std::less<int>>::ForEachFunctor<std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>> std::for_each<std::_Rb_tree_const_iterator<std::pair<int const, std::shared_ptr<oox::xls::Table>>>, oox::RefMap<int, oox::xls::Table, std::less<int>>::ForEachFunctor<std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>>>(std::_Rb_tree_const_iterator<std::pair<int const, std::shared_ptr<oox::xls::Table>>>, std::_Rb_tree_const_iterator<std::pair<int const, std::shared_ptr<oox::xls::Table>>>, oox::RefMap<int, oox::xls::Table, std::less<int>>::ForEachFunctor<std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>>) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:3787:2 (libscfiltlo.so+0x4b9d96) #21 void oox::RefMap<int, oox::xls::Table, std::less<int>>::forEach<std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>>(std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()> const&) const core/include/oox/helper/refmap.hxx:71:29 (libscfiltlo.so+0x4b9d96) #22 void oox::RefMap<int, oox::xls::Table, std::less<int>>::forEachMem<void (oox::xls::Table::*)()>(void (oox::xls::Table::*)()) const core/include/oox/helper/refmap.hxx:79:29 (libscfiltlo.so+0x4b9d96) #23 oox::xls::TableBuffer::applyAutoFilters() core/sc/source/filter/oox/tablebuffer.cxx:179:16 (libscfiltlo.so+0x4b9d96) #24 oox::xls::WorksheetGlobals::finalizeWorksheetImport() core/sc/source/filter/oox/worksheethelper.cxx:943:17 (libscfiltlo.so+0x4ee58e) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #25 oox::xls::WorksheetHelper::finalizeWorksheetImport() core/sc/source/filter/oox/worksheethelper.cxx:1625:17 (libscfiltlo.so+0x4f2cff) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #26 oox::xls::WorksheetFragment::finalizeImport() core/sc/source/filter/oox/worksheetfragment.cxx:632:5 (libscfiltlo.so+0x4e91cc) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #27 oox::core::FragmentHandler2::endDocument() core/oox/source/core/fragmenthandler2.cxx:53:5 (libooxlo.so+0x1c20d9) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #28 non-virtual thunk to oox::core::FragmentHandler2::endDocument() core/oox/source/core/fragmenthandler2.cxx (libooxlo.so+0x1c20d9) #29 sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) core/sax/source/fastparser/fastparser.cxx:910:36 (libexpwraplo.so+0x2a06a) (BuildId: 4c8d8739ce3b93f891afa1e160f975a2892a4af4) #30 sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) core/sax/source/fastparser/fastparser.cxx:1482:13 (libexpwraplo.so+0x31738) (BuildId: 4c8d8739ce3b93f891afa1e160f975a2892a4af4) #31 oox::core::FastParser::parseStream(com::sun::star::xml::sax::InputSource const&, bool) core/oox/source/core/fastparser.cxx:121:15 (libooxlo.so+0x1ae980) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #32 oox::core::FastParser::parseStream(com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, rtl::OUString const&) core/oox/source/core/fastparser.cxx:129:5 (libooxlo.so+0x1aebdf) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #33 oox::core::XmlFilterBase::importFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) core/oox/source/core/xmlfilterbase.cxx:412:21 (libooxlo.so+0x1d01ac) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #34 oox::xls::WorkbookHelper::importOoxFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) core/sc/source/filter/oox/workbookhelper.cxx:1024:27 (libscfiltlo.so+0x4dbbd2) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #35 oox::xls::(anonymous namespace)::WorkerThread::doWork() core/sc/source/filter/oox/workbookfragment.cxx:249:27 (libscfiltlo.so+0x4d3347) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #36 comphelper::ThreadTask::exec() core/comphelper/source/misc/threadpool.cxx:319:9 (libcomphelper.so+0x17dbc1) (BuildId: 30a9bf106ea764f860a55d99b75dd87a0f268335) #37 comphelper::ThreadPool::ThreadWorker::execute() core/comphelper/source/misc/threadpool.cxx:85:24 (libcomphelper.so+0x17dbc1) #38 salhelper::Thread::run() core/salhelper/source/thread.cxx:39:5 (libuno_salhelpergcc3.so.3+0x5267) (BuildId: d146f721ac5d8da923b02df0d671788655b81eb6) #39 non-virtual thunk to salhelper::Thread::run() core/salhelper/source/thread.cxx (libuno_salhelpergcc3.so.3+0x5267) #40 threadFunc core/include/osl/thread.hxx:189:15 (libuno_salhelpergcc3.so.3+0x551e) (BuildId: d146f721ac5d8da923b02df0d671788655b81eb6) #41 osl_thread_start_Impl(void*) core/sal/osl/unx/thread.cxx:265:9 (libuno_sal.so.3+0x6a9d5) (BuildId: 767a6cd7c58bf820064a10cf0ab0f15b30c2f4ac) Previous write of size 8 at 0x7b5000040f20 by thread T6 (mutexes: write M2): #0 std::vector<unsigned long, std::allocator<unsigned long>>::_M_fill_insert(__gnu_cxx::__normal_iterator<unsigned long*, std::vector<unsigned long, std::allocator<unsigned long>>>, unsigned long, unsigned long const&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/vector.tcc:556:29 (libsclo.so+0x2f6766) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #1 std::vector<unsigned long, std::allocator<unsigned long>>::insert(__gnu_cxx::__normal_iterator<unsigned long const*, std::vector<unsigned long, std::allocator<unsigned long>>>, unsigned long, unsigned long const&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_vector.h:1435:2 (libsclo.so+0x2ffd3a) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #2 mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::blocks_type::insert(unsigned long, unsigned long) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:99:15 (libsclo.so+0x2ffd3a) #3 mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::set_new_block_to_middle(unsigned long, unsigned long, unsigned long, bool) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:4326:19 (libsclo.so+0x2ffd3a) #4 mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::iterator_trait> mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::set_cell_to_middle_of_block<double>(unsigned long, unsigned long, double const&) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:3999:19 (libsclo.so+0x3259fe) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #5 mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::iterator_trait> mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::set_cell_to_empty_block<double>(unsigned long, unsigned long, double const&) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:3313:12 (libsclo.so+0x3259fe) #6 mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::iterator_trait> mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::set_impl<double>(unsigned long, unsigned long, double const&) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:1260:16 (libsclo.so+0x32492f) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #7 mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::iterator_trait> mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::set<double>(mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::iterator_trait> const&, unsigned long, double const&) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:754:20 (libsclo.so+0x4cc138) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #8 ScDocumentImport::setNumericCell(ScAddress const&, double) core/sc/source/core/data/documentimport.cxx:259:35 (libsclo.so+0x4cc138) #9 oox::xls::SheetDataBuffer::setValueCell(oox::xls::CellModel const&, double) core/sc/source/filter/oox/sheetdatabuffer.cxx:107:20 (libscfiltlo.so+0x4833c0) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #10 oox::xls::SheetDataContext::onEndElement() core/sc/source/filter/oox/sheetdatacontext.cxx:185:25 (libscfiltlo.so+0x48fed2) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #11 non-virtual thunk to oox::xls::SheetDataContext::onEndElement() core/sc/source/filter/oox/sheetdatacontext.cxx (libscfiltlo.so+0x48fff9) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #12 oox::core::ContextHandler2Helper::implEndElement(int) core/oox/source/core/contexthandler2.cxx:125:9 (libooxlo.so+0x1ac82b) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #13 oox::core::ContextHandler2::endFastElement(int) core/oox/source/core/contexthandler2.cxx:220:5 (libooxlo.so+0x1ac82b) #14 non-virtual thunk to oox::core::ContextHandler2::endFastElement(int) core/oox/source/core/contexthandler2.cxx (libooxlo.so+0x1ac82b) #15 (anonymous namespace)::Entity::endElement() core/sax/source/fastparser/fastparser.cxx:515:27 (libexpwraplo.so+0x3042f) (BuildId: 4c8d8739ce3b93f891afa1e160f975a2892a4af4) #16 sax_fastparser::FastSaxParserImpl::consume((anonymous namespace)::EventList&) core/sax/source/fastparser/fastparser.cxx:1029:25 (libexpwraplo.so+0x29d37) (BuildId: 4c8d8739ce3b93f891afa1e160f975a2892a4af4) #17 sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) core/sax/source/fastparser/fastparser.cxx:869:22 (libexpwraplo.so+0x29d37) #18 sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) core/sax/source/fastparser/fastparser.cxx:1482:13 (libexpwraplo.so+0x31738) (BuildId: 4c8d8739ce3b93f891afa1e160f975a2892a4af4) #19 oox::core::FastParser::parseStream(com::sun::star::xml::sax::InputSource const&, bool) core/oox/source/core/fastparser.cxx:121:15 (libooxlo.so+0x1ae980) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #20 oox::core::FastParser::parseStream(com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, rtl::OUString const&) core/oox/source/core/fastparser.cxx:129:5 (libooxlo.so+0x1aebdf) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #21 oox::core::XmlFilterBase::importFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) core/oox/source/core/xmlfilterbase.cxx:412:21 (libooxlo.so+0x1d01ac) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #22 oox::xls::WorkbookHelper::importOoxFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) core/sc/source/filter/oox/workbookhelper.cxx:1024:27 (libscfiltlo.so+0x4dbbd2) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #23 oox::xls::(anonymous namespace)::WorkerThread::doWork() core/sc/source/filter/oox/workbookfragment.cxx:249:27 (libscfiltlo.so+0x4d3347) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #24 comphelper::ThreadTask::exec() core/comphelper/source/misc/threadpool.cxx:319:9 (libcomphelper.so+0x17dbc1) (BuildId: 30a9bf106ea764f860a55d99b75dd87a0f268335) #25 comphelper::ThreadPool::ThreadWorker::execute() core/comphelper/source/misc/threadpool.cxx:85:24 (libcomphelper.so+0x17dbc1) #26 salhelper::Thread::run() core/salhelper/source/thread.cxx:39:5 (libuno_salhelpergcc3.so.3+0x5267) (BuildId: d146f721ac5d8da923b02df0d671788655b81eb6) #27 non-virtual thunk to salhelper::Thread::run() core/salhelper/source/thread.cxx (libuno_salhelpergcc3.so.3+0x5267) #28 threadFunc core/include/osl/thread.hxx:189:15 (libuno_salhelpergcc3.so.3+0x551e) (BuildId: d146f721ac5d8da923b02df0d671788655b81eb6) #29 osl_thread_start_Impl(void*) core/sal/osl/unx/thread.cxx:265:9 (libuno_sal.so.3+0x6a9d5) (BuildId: 767a6cd7c58bf820064a10cf0ab0f15b30c2f4ac) Change-Id: I7542432749fded8ab5e35f79cb221ad712f7802d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146430 Tested-by: Jenkins Tested-by: Caolán McNamara <[email protected]> Reviewed-by: Caolán McNamara <[email protected]> (cherry picked from commit 6652768) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146531 Reviewed-by: Xisco Fauli <[email protected]>
sporadically reproducible with tsan and ./instdir/program/soffice.bin --headless --convert-to pdf ~/forum-mso-en4-802501.xlsx move getTables().applyAutoFilters(), which wants to query tab 1 while tab 1 is still getting imported, until after the threaded import has completed. This call was moved before in: commit edd51b8 Date: Thu Aug 15 16:23:46 2013 +0100 fix for bnc#834705 missing drop downs for autofilter ================== WARNING: ThreadSanitizer: data race (pid=3791886) Read of size 8 at 0x7b5000040f20 by thread T7 (mutexes: write M0, write M1): #0 __gnu_cxx::__normal_iterator<unsigned long const*, std::vector<unsigned long, std::allocator<unsigned long>>>::__normal_iterator(unsigned long const* const&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_iterator.h:1073:20 (libsclo.so+0x3d31c4) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #1 std::vector<unsigned long, std::allocator<unsigned long>>::cend() const /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_vector.h:960:16 (libsclo.so+0x3d31c4) #2 mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::cbegin() const core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:3771:34 (libsclo.so+0x3d31c4) #3 mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::begin() const core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:3753:12 (libsclo.so+0x3d31c4) #4 ScColumn::InitBlockPosition(sc::ColumnBlockConstPosition&) const core/sc/source/core/data/column3.cxx:1135:35 (libsclo.so+0x3d31c4) #5 ScTable::GetDataArea(short&, int&, short&, int&, bool, bool) const core/sc/source/core/data/table1.cxx:908:19 (libsclo.so+0x637b39) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #6 ScDocument::GetDataArea(short, short&, int&, short&, int&, bool, bool) const core/sc/source/core/data/document.cxx:1104:23 (libsclo.so+0x49b696) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #7 ScDBData::ExtendDataArea(ScDocument const&) core/sc/source/core/tool/dbdata.cxx:654:10 (libsclo.so+0x741e77) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #8 ScDocument::GetFilterEntries(short, int, short, ScFilterEntries&) core/sc/source/core/data/documen3.cxx:1577:14 (libsclo.so+0x46e7a6) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #9 (anonymous namespace)::fillQueryParam(ScQueryParam&, ScDocument*, com::sun::star::uno::Sequence<com::sun::star::sheet::TableFilterField3> const&) core/sc/source/ui/unoobj/datauno.cxx:1164:27 (libsclo.so+0xf7dd72) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #10 ScFilterDescriptorBase::setFilterFields3(com::sun::star::uno::Sequence<com::sun::star::sheet::TableFilterField3> const&) core/sc/source/ui/unoobj/datauno.cxx:1380:5 (libsclo.so+0xf7dd72) #11 non-virtual thunk to ScFilterDescriptorBase::setFilterFields3(com::sun::star::uno::Sequence<com::sun::star::sheet::TableFilterField3> const&) core/sc/source/ui/unoobj/datauno.cxx (libsclo.so+0xf7e2c2) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #12 oox::xls::AutoFilter::finalizeImport(com::sun::star::uno::Reference<com::sun::star::sheet::XDatabaseRange> const&, short) core/sc/source/filter/oox/autofilterbuffer.cxx:803:22 (libscfiltlo.so+0x3cca2c) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #13 oox::xls::AutoFilterBuffer::finalizeImport(com::sun::star::uno::Reference<com::sun::star::sheet::XDatabaseRange> const&, short) core/sc/source/filter/oox/autofilterbuffer.cxx:950:22 (libscfiltlo.so+0x3cdc0b) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #14 oox::xls::Table::applyAutoFilters() core/sc/source/filter/oox/tablebuffer.cxx:143:23 (libscfiltlo.so+0x4b9268) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #15 void std::__invoke_impl<void, void (oox::xls::Table::*&)(), oox::xls::Table&>(std::__invoke_memfun_ref, void (oox::xls::Table::*&)(), oox::xls::Table&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/invoke.h:67:14 (libscfiltlo.so+0x4b9d96) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #16 std::__invoke_result<void (oox::xls::Table::*&)(), oox::xls::Table&>::type std::__invoke<void (oox::xls::Table::*&)(), oox::xls::Table&>(void (oox::xls::Table::*&)(), oox::xls::Table&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/invoke.h:96:14 (libscfiltlo.so+0x4b9d96) #17 void std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>::__call<void, oox::xls::Table&, 0ul>(std::tuple<oox::xls::Table&>&&, std::_Index_tuple<0ul>) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/functional:495:11 (libscfiltlo.so+0x4b9d96) #18 void std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>::operator()<oox::xls::Table&, void>(oox::xls::Table&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/functional:580:17 (libscfiltlo.so+0x4b9d96) #19 oox::RefMap<int, oox::xls::Table, std::less<int>>::ForEachFunctor<std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>>::operator()(std::pair<int const, std::shared_ptr<oox::xls::Table>> const&) core/include/oox/helper/refmap.hxx:122:89 (libscfiltlo.so+0x4b9d96) #20 oox::RefMap<int, oox::xls::Table, std::less<int>>::ForEachFunctor<std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>> std::for_each<std::_Rb_tree_const_iterator<std::pair<int const, std::shared_ptr<oox::xls::Table>>>, oox::RefMap<int, oox::xls::Table, std::less<int>>::ForEachFunctor<std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>>>(std::_Rb_tree_const_iterator<std::pair<int const, std::shared_ptr<oox::xls::Table>>>, std::_Rb_tree_const_iterator<std::pair<int const, std::shared_ptr<oox::xls::Table>>>, oox::RefMap<int, oox::xls::Table, std::less<int>>::ForEachFunctor<std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>>) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:3787:2 (libscfiltlo.so+0x4b9d96) #21 void oox::RefMap<int, oox::xls::Table, std::less<int>>::forEach<std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>>(std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()> const&) const core/include/oox/helper/refmap.hxx:71:29 (libscfiltlo.so+0x4b9d96) #22 void oox::RefMap<int, oox::xls::Table, std::less<int>>::forEachMem<void (oox::xls::Table::*)()>(void (oox::xls::Table::*)()) const core/include/oox/helper/refmap.hxx:79:29 (libscfiltlo.so+0x4b9d96) #23 oox::xls::TableBuffer::applyAutoFilters() core/sc/source/filter/oox/tablebuffer.cxx:179:16 (libscfiltlo.so+0x4b9d96) #24 oox::xls::WorksheetGlobals::finalizeWorksheetImport() core/sc/source/filter/oox/worksheethelper.cxx:943:17 (libscfiltlo.so+0x4ee58e) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #25 oox::xls::WorksheetHelper::finalizeWorksheetImport() core/sc/source/filter/oox/worksheethelper.cxx:1625:17 (libscfiltlo.so+0x4f2cff) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #26 oox::xls::WorksheetFragment::finalizeImport() core/sc/source/filter/oox/worksheetfragment.cxx:632:5 (libscfiltlo.so+0x4e91cc) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #27 oox::core::FragmentHandler2::endDocument() core/oox/source/core/fragmenthandler2.cxx:53:5 (libooxlo.so+0x1c20d9) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #28 non-virtual thunk to oox::core::FragmentHandler2::endDocument() core/oox/source/core/fragmenthandler2.cxx (libooxlo.so+0x1c20d9) #29 sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) core/sax/source/fastparser/fastparser.cxx:910:36 (libexpwraplo.so+0x2a06a) (BuildId: 4c8d8739ce3b93f891afa1e160f975a2892a4af4) #30 sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) core/sax/source/fastparser/fastparser.cxx:1482:13 (libexpwraplo.so+0x31738) (BuildId: 4c8d8739ce3b93f891afa1e160f975a2892a4af4) #31 oox::core::FastParser::parseStream(com::sun::star::xml::sax::InputSource const&, bool) core/oox/source/core/fastparser.cxx:121:15 (libooxlo.so+0x1ae980) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #32 oox::core::FastParser::parseStream(com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, rtl::OUString const&) core/oox/source/core/fastparser.cxx:129:5 (libooxlo.so+0x1aebdf) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #33 oox::core::XmlFilterBase::importFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) core/oox/source/core/xmlfilterbase.cxx:412:21 (libooxlo.so+0x1d01ac) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #34 oox::xls::WorkbookHelper::importOoxFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) core/sc/source/filter/oox/workbookhelper.cxx:1024:27 (libscfiltlo.so+0x4dbbd2) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #35 oox::xls::(anonymous namespace)::WorkerThread::doWork() core/sc/source/filter/oox/workbookfragment.cxx:249:27 (libscfiltlo.so+0x4d3347) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #36 comphelper::ThreadTask::exec() core/comphelper/source/misc/threadpool.cxx:319:9 (libcomphelper.so+0x17dbc1) (BuildId: 30a9bf106ea764f860a55d99b75dd87a0f268335) #37 comphelper::ThreadPool::ThreadWorker::execute() core/comphelper/source/misc/threadpool.cxx:85:24 (libcomphelper.so+0x17dbc1) #38 salhelper::Thread::run() core/salhelper/source/thread.cxx:39:5 (libuno_salhelpergcc3.so.3+0x5267) (BuildId: d146f721ac5d8da923b02df0d671788655b81eb6) #39 non-virtual thunk to salhelper::Thread::run() core/salhelper/source/thread.cxx (libuno_salhelpergcc3.so.3+0x5267) #40 threadFunc core/include/osl/thread.hxx:189:15 (libuno_salhelpergcc3.so.3+0x551e) (BuildId: d146f721ac5d8da923b02df0d671788655b81eb6) #41 osl_thread_start_Impl(void*) core/sal/osl/unx/thread.cxx:265:9 (libuno_sal.so.3+0x6a9d5) (BuildId: 767a6cd7c58bf820064a10cf0ab0f15b30c2f4ac) Previous write of size 8 at 0x7b5000040f20 by thread T6 (mutexes: write M2): #0 std::vector<unsigned long, std::allocator<unsigned long>>::_M_fill_insert(__gnu_cxx::__normal_iterator<unsigned long*, std::vector<unsigned long, std::allocator<unsigned long>>>, unsigned long, unsigned long const&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/vector.tcc:556:29 (libsclo.so+0x2f6766) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #1 std::vector<unsigned long, std::allocator<unsigned long>>::insert(__gnu_cxx::__normal_iterator<unsigned long const*, std::vector<unsigned long, std::allocator<unsigned long>>>, unsigned long, unsigned long const&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_vector.h:1435:2 (libsclo.so+0x2ffd3a) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #2 mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::blocks_type::insert(unsigned long, unsigned long) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:99:15 (libsclo.so+0x2ffd3a) #3 mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::set_new_block_to_middle(unsigned long, unsigned long, unsigned long, bool) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:4326:19 (libsclo.so+0x2ffd3a) #4 mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::iterator_trait> mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::set_cell_to_middle_of_block<double>(unsigned long, unsigned long, double const&) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:3999:19 (libsclo.so+0x3259fe) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #5 mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::iterator_trait> mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::set_cell_to_empty_block<double>(unsigned long, unsigned long, double const&) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:3313:12 (libsclo.so+0x3259fe) #6 mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::iterator_trait> mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::set_impl<double>(unsigned long, unsigned long, double const&) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:1260:16 (libsclo.so+0x32492f) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #7 mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::iterator_trait> mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::set<double>(mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::iterator_trait> const&, unsigned long, double const&) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:754:20 (libsclo.so+0x4cc138) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #8 ScDocumentImport::setNumericCell(ScAddress const&, double) core/sc/source/core/data/documentimport.cxx:259:35 (libsclo.so+0x4cc138) #9 oox::xls::SheetDataBuffer::setValueCell(oox::xls::CellModel const&, double) core/sc/source/filter/oox/sheetdatabuffer.cxx:107:20 (libscfiltlo.so+0x4833c0) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #10 oox::xls::SheetDataContext::onEndElement() core/sc/source/filter/oox/sheetdatacontext.cxx:185:25 (libscfiltlo.so+0x48fed2) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #11 non-virtual thunk to oox::xls::SheetDataContext::onEndElement() core/sc/source/filter/oox/sheetdatacontext.cxx (libscfiltlo.so+0x48fff9) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #12 oox::core::ContextHandler2Helper::implEndElement(int) core/oox/source/core/contexthandler2.cxx:125:9 (libooxlo.so+0x1ac82b) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #13 oox::core::ContextHandler2::endFastElement(int) core/oox/source/core/contexthandler2.cxx:220:5 (libooxlo.so+0x1ac82b) #14 non-virtual thunk to oox::core::ContextHandler2::endFastElement(int) core/oox/source/core/contexthandler2.cxx (libooxlo.so+0x1ac82b) #15 (anonymous namespace)::Entity::endElement() core/sax/source/fastparser/fastparser.cxx:515:27 (libexpwraplo.so+0x3042f) (BuildId: 4c8d8739ce3b93f891afa1e160f975a2892a4af4) #16 sax_fastparser::FastSaxParserImpl::consume((anonymous namespace)::EventList&) core/sax/source/fastparser/fastparser.cxx:1029:25 (libexpwraplo.so+0x29d37) (BuildId: 4c8d8739ce3b93f891afa1e160f975a2892a4af4) #17 sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) core/sax/source/fastparser/fastparser.cxx:869:22 (libexpwraplo.so+0x29d37) #18 sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) core/sax/source/fastparser/fastparser.cxx:1482:13 (libexpwraplo.so+0x31738) (BuildId: 4c8d8739ce3b93f891afa1e160f975a2892a4af4) #19 oox::core::FastParser::parseStream(com::sun::star::xml::sax::InputSource const&, bool) core/oox/source/core/fastparser.cxx:121:15 (libooxlo.so+0x1ae980) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #20 oox::core::FastParser::parseStream(com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, rtl::OUString const&) core/oox/source/core/fastparser.cxx:129:5 (libooxlo.so+0x1aebdf) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #21 oox::core::XmlFilterBase::importFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) core/oox/source/core/xmlfilterbase.cxx:412:21 (libooxlo.so+0x1d01ac) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #22 oox::xls::WorkbookHelper::importOoxFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) core/sc/source/filter/oox/workbookhelper.cxx:1024:27 (libscfiltlo.so+0x4dbbd2) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #23 oox::xls::(anonymous namespace)::WorkerThread::doWork() core/sc/source/filter/oox/workbookfragment.cxx:249:27 (libscfiltlo.so+0x4d3347) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #24 comphelper::ThreadTask::exec() core/comphelper/source/misc/threadpool.cxx:319:9 (libcomphelper.so+0x17dbc1) (BuildId: 30a9bf106ea764f860a55d99b75dd87a0f268335) #25 comphelper::ThreadPool::ThreadWorker::execute() core/comphelper/source/misc/threadpool.cxx:85:24 (libcomphelper.so+0x17dbc1) #26 salhelper::Thread::run() core/salhelper/source/thread.cxx:39:5 (libuno_salhelpergcc3.so.3+0x5267) (BuildId: d146f721ac5d8da923b02df0d671788655b81eb6) #27 non-virtual thunk to salhelper::Thread::run() core/salhelper/source/thread.cxx (libuno_salhelpergcc3.so.3+0x5267) #28 threadFunc core/include/osl/thread.hxx:189:15 (libuno_salhelpergcc3.so.3+0x551e) (BuildId: d146f721ac5d8da923b02df0d671788655b81eb6) #29 osl_thread_start_Impl(void*) core/sal/osl/unx/thread.cxx:265:9 (libuno_sal.so.3+0x6a9d5) (BuildId: 767a6cd7c58bf820064a10cf0ab0f15b30c2f4ac) Change-Id: I7542432749fded8ab5e35f79cb221ad712f7802d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146430 Tested-by: Jenkins Tested-by: Caolán McNamara <[email protected]> Reviewed-by: Caolán McNamara <[email protected]> (cherry picked from commit 6652768) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146531 Reviewed-by: Xisco Fauli <[email protected]>
...as happens during CppunitTest_sc_logical_functions_test (see below), by not relying on wrap-around of nStackBase = sp - pCur->GetParamCount(); during underflow. (Though I have no idea whether the excited "underflow?!?" comment means that underflow is indeed expected and harmless, or rather indicates a severe problem elsewhere; at least, it does happen during CppunitTest_sc_logical_functions_test as shown below). > sc/source/core/tool/interpr4.cxx:3965:34: runtime error: implicit conversion from type 'int' of value -2 (32-bit, signed) to type 'sal_uInt16' (aka 'unsigned short') changed the value to 65534 (16-bit, unsigned) > #0 in ScInterpreter::Interpret() at sc/source/core/tool/interpr4.cxx:3965:34 (instdir/program/libsclo.so +0xab8f35e) > #1 in ScFormulaCell::InterpretTail(ScInterpreterContext&, ScFormulaCell::ScInterpretTailParameter) at sc/source/core/data/formulacell.cxx:1866:23 (instdir/program/libsclo.so +0x9bce713) > #2 in ScFormulaCell::Interpret() at sc/source/core/data/formulacell.cxx:1577:13 (instdir/program/libsclo.so +0x9bc4611) > #3 in ScFormulaCell::MaybeInterpret() at sc/source/core/data/formulacell.cxx:2673:9 (instdir/program/libsclo.so +0x9bb04f0) > #4 in ScFormulaCell::GetErrCode() at sc/source/core/data/formulacell.cxx:2912:5 (instdir/program/libsclo.so +0x9beab05) > #5 in ScCellFormat::GetString(ScRefCellValue&, unsigned int, rtl::OUString&, Color**, SvNumberFormatter&, ScDocument const*, bool, bool, bool) at sc/source/core/tool/cellform.cxx:79:59 (instdir/program/libsclo.so +0xa42272b) > #6 in ScColumn::UpdateScriptType(sc::CellTextAttr&, int, mdds::detail::mtv::iterator_base<mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent>::iterator_trait, mdds::detail::mtv::private_data_forward_update<mdds::detail::mtv::iterator_value_node<unsigned long, mdds::mtv::base_element_block> > >&) at sc/source/core/data/column3.cxx:534:5 (instdir/program/libsclo.so +0x8b81f94) > #7 in ScColumn::GetRangeScriptType(mdds::detail::mtv::iterator_base<mdds::multi_type_vector<mdds::mtv::custom_block_func1<mdds::mtv::default_element_block<51, sc::CellTextAttr> >, mdds::detail::mtv::event_func>::iterator_trait, mdds::detail::mtv::private_data_forward_update<mdds::detail::mtv::iterator_value_node<unsigned long, mdds::mtv::base_element_block> > >&, int, int, mdds::detail::mtv::iterator_base<mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent>::iterator_trait, mdds::detail::mtv::private_data_forward_update<mdds::detail::mtv::iterator_value_node<unsigned long, mdds::mtv::base_element_block> > > const&) at sc/source/core/data/column2.cxx:2010:17 (instdir/program/libsclo.so +0x8aa4973) > #8 in (anonymous namespace)::FindEditCellsHandler::operator()(unsigned long, ScFormulaCell const*) at sc/source/core/data/column.cxx:3036:46 (instdir/program/libsclo.so +0x8873d9b) > #9 in std::pair<mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent>::const_iterator, unsigned long> sc::CheckElem<mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>, mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent>, (anonymous namespace)::FindEditCellsHandler>(mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent> const&, mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent>::const_iterator const&, unsigned long, unsigned long, (anonymous namespace)::FindEditCellsHandler&) at sc/inc/mtvfunctions.hxx:139:13 (instdir/program/libsclo.so +0x8872c89) > #10 in std::pair<mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent>::const_iterator, mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent>::size_type> sc::FindElement2<mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>, (anonymous namespace)::FindEditCellsHandler, (anonymous namespace)::FindEditCellsHandler>(mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent> const&, mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent>::size_type, mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent>::size_type, (anonymous namespace)::FindEditCellsHandler&, (anonymous namespace)::FindEditCellsHandler&) at sc/inc/mtvfunctions.hxx:464:37 (instdir/program/libsclo.so +0x88710f5) > #11 in std::pair<mdds::detail::mtv::const_iterator_base<mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent>::const_iterator_trait, mdds::detail::mtv::private_data_forward_update<mdds::detail::mtv::iterator_value_node<unsigned long, mdds::mtv::base_element_block> >, mdds::detail::mtv::iterator_base<mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent>::iterator_trait, mdds::detail::mtv::private_data_forward_update<mdds::detail::mtv::iterator_value_node<unsigned long, mdds::mtv::base_element_block> > > >, unsigned long> sc::FindFormulaEditText<(anonymous namespace)::FindEditCellsHandler>(mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent> const&, int, int, (anonymous namespace)::FindEditCellsHandler&) at sc/inc/mtvcellfunc.hxx:139:12 (instdir/program/libsclo.so +0x8827df0) > #12 in ScColumn::HasEditCells(int, int, int&) at sc/source/core/data/column.cxx:3510:9 (instdir/program/libsclo.so +0x88275b3) > #13 in ScColumn::GetOptimalHeight(sc::RowHeightContext&, int, int, unsigned short, int) at sc/source/core/data/column2.cxx:823:38 (instdir/program/libsclo.so +0x8aa0056) > #14 in (anonymous namespace)::GetOptimalHeightsInColumn(sc::RowHeightContext&, ScColContainer&, int, int, ScProgress*, unsigned long) at sc/source/core/data/table1.cxx:115:20 (instdir/program/libsclo.so +0x9fb52dd) > #15 in ScTable::SetOptimalHeight(sc::RowHeightContext&, int, int, ScProgress*, unsigned long) at sc/source/core/data/table1.cxx:474:5 (instdir/program/libsclo.so +0x9fb4073) > #16 in ScDocRowHeightUpdater::update() at sc/source/core/data/dociter.cxx:2576:33 (instdir/program/libsclo.so +0x8f17a78) > #17 in ScXMLImport::endDocument() at sc/source/filter/xml/xmlimprt.cxx:1806:22 (instdir/program/libsclo.so +0xbd59796) > #18 in sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) at sax/source/fastparser/fastparser.cxx:876:36 (instdir/program/libexpwraplo.so +0x237ebc) > #19 in sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) at sax/source/fastparser/fastparser.cxx:1377:13 (instdir/program/libexpwraplo.so +0x2528ab) > #20 in SvXMLImport::parseStream(com::sun::star::xml::sax::InputSource const&) at xmloff/source/core/xmlimp.cxx:484:15 (instdir/program/libxolo.so +0x261ef9d) > #21 in filter::odfflatxml::OdfFlatXml::importer(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::xml::sax::XDocumentHandler> const&, com::sun::star::uno::Sequence<rtl::OUString> const&) at filter/source/odfflatxml/OdfFlatXml.cxx:151:26 (instdir/program/libodfflatxmllo.so +0x218fa) > #22 in XmlFilterAdaptor::importImpl(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at filter/source/xmlfilteradaptor/XmlFilterAdaptor.cxx:180:26 (instdir/program/libxmlfalo.so +0x3ee1f) > #23 in XmlFilterAdaptor::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at filter/source/xmlfilteradaptor/XmlFilterAdaptor.cxx:316:67 (instdir/program/libxmlfalo.so +0x44f0a) > #24 in SfxObjectShell::ImportFrom(SfxMedium&, com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&) at sfx2/source/doc/objstor.cxx:2251:34 (instdir/program/libsfxlo.so +0x38d597f) > #25 in SfxObjectShell::DoLoad(SfxMedium*) at sfx2/source/doc/objstor.cxx:772:23 (instdir/program/libsfxlo.so +0x389eaf9) > #26 in ScBootstrapFixture::load(bool, rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, SfxFilterFlags, SotClipboardFormatId, unsigned long, rtl::OUString const*) at sc/qa/unit/helper/qahelper.cxx:582:21 (workdir/LinkTarget/CppunitTest/../Library/libscqahelper.so +0x869b5) > #27 in ScBootstrapFixture::load(rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, SfxFilterFlags, SotClipboardFormatId, unsigned long, rtl::OUString const*) at sc/qa/unit/helper/qahelper.cxx:597:12 (workdir/LinkTarget/CppunitTest/../Library/libscqahelper.so +0x86fa6) > #28 in FunctionsTest::load(rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, SfxFilterFlags, SotClipboardFormatId, unsigned int) at sc/qa/unit/functions_test.cxx:35:51 (workdir/LinkTarget/CppunitTest/../Library/libscqahelper.so +0xe4e95) > #29 in non-virtual thunk to FunctionsTest::load(rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, SfxFilterFlags, SotClipboardFormatId, unsigned int) at sc/qa/unit/functions_test.cxx (workdir/LinkTarget/CppunitTest/../Library/libscqahelper.so +0xe59db) > #30 in test::FiltersTest::recursiveScan(test::filterStatus, rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, SfxFilterFlags, SotClipboardFormatId, unsigned int, bool) at unotest/source/cpp/filters-test.cxx:130:20 (workdir/LinkTarget/CppunitTest/../Library/libunotest.so +0x7526d) > #31 in LogicalFunctionsTest::testLogicalFormulasFODS() at sc/qa/unit/functions_logical.cxx:19:5 (workdir/LinkTarget/CppunitTest/libtest_sc_logical_functions_test.so +0x1fd60) [...] Change-Id: Icccfb37c33885d72bff1003b3a8f8505850eb184 Reviewed-on: https://gerrit.libreoffice.org/63302 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]>
sporadically reproducible with tsan and ./instdir/program/soffice.bin --headless --convert-to pdf ~/forum-mso-en4-802501.xlsx move getTables().applyAutoFilters(), which wants to query tab 1 while tab 1 is still getting imported, until after the threaded import has completed. This call was moved before in: commit edd51b8 Date: Thu Aug 15 16:23:46 2013 +0100 fix for bnc#834705 missing drop downs for autofilter ================== WARNING: ThreadSanitizer: data race (pid=3791886) Read of size 8 at 0x7b5000040f20 by thread T7 (mutexes: write M0, write M1): #0 __gnu_cxx::__normal_iterator<unsigned long const*, std::vector<unsigned long, std::allocator<unsigned long>>>::__normal_iterator(unsigned long const* const&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_iterator.h:1073:20 (libsclo.so+0x3d31c4) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #1 std::vector<unsigned long, std::allocator<unsigned long>>::cend() const /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_vector.h:960:16 (libsclo.so+0x3d31c4) #2 mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::cbegin() const core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:3771:34 (libsclo.so+0x3d31c4) #3 mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::begin() const core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:3753:12 (libsclo.so+0x3d31c4) #4 ScColumn::InitBlockPosition(sc::ColumnBlockConstPosition&) const core/sc/source/core/data/column3.cxx:1135:35 (libsclo.so+0x3d31c4) #5 ScTable::GetDataArea(short&, int&, short&, int&, bool, bool) const core/sc/source/core/data/table1.cxx:908:19 (libsclo.so+0x637b39) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #6 ScDocument::GetDataArea(short, short&, int&, short&, int&, bool, bool) const core/sc/source/core/data/document.cxx:1104:23 (libsclo.so+0x49b696) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #7 ScDBData::ExtendDataArea(ScDocument const&) core/sc/source/core/tool/dbdata.cxx:654:10 (libsclo.so+0x741e77) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #8 ScDocument::GetFilterEntries(short, int, short, ScFilterEntries&) core/sc/source/core/data/documen3.cxx:1577:14 (libsclo.so+0x46e7a6) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #9 (anonymous namespace)::fillQueryParam(ScQueryParam&, ScDocument*, com::sun::star::uno::Sequence<com::sun::star::sheet::TableFilterField3> const&) core/sc/source/ui/unoobj/datauno.cxx:1164:27 (libsclo.so+0xf7dd72) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #10 ScFilterDescriptorBase::setFilterFields3(com::sun::star::uno::Sequence<com::sun::star::sheet::TableFilterField3> const&) core/sc/source/ui/unoobj/datauno.cxx:1380:5 (libsclo.so+0xf7dd72) #11 non-virtual thunk to ScFilterDescriptorBase::setFilterFields3(com::sun::star::uno::Sequence<com::sun::star::sheet::TableFilterField3> const&) core/sc/source/ui/unoobj/datauno.cxx (libsclo.so+0xf7e2c2) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #12 oox::xls::AutoFilter::finalizeImport(com::sun::star::uno::Reference<com::sun::star::sheet::XDatabaseRange> const&, short) core/sc/source/filter/oox/autofilterbuffer.cxx:803:22 (libscfiltlo.so+0x3cca2c) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #13 oox::xls::AutoFilterBuffer::finalizeImport(com::sun::star::uno::Reference<com::sun::star::sheet::XDatabaseRange> const&, short) core/sc/source/filter/oox/autofilterbuffer.cxx:950:22 (libscfiltlo.so+0x3cdc0b) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #14 oox::xls::Table::applyAutoFilters() core/sc/source/filter/oox/tablebuffer.cxx:143:23 (libscfiltlo.so+0x4b9268) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #15 void std::__invoke_impl<void, void (oox::xls::Table::*&)(), oox::xls::Table&>(std::__invoke_memfun_ref, void (oox::xls::Table::*&)(), oox::xls::Table&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/invoke.h:67:14 (libscfiltlo.so+0x4b9d96) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #16 std::__invoke_result<void (oox::xls::Table::*&)(), oox::xls::Table&>::type std::__invoke<void (oox::xls::Table::*&)(), oox::xls::Table&>(void (oox::xls::Table::*&)(), oox::xls::Table&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/invoke.h:96:14 (libscfiltlo.so+0x4b9d96) #17 void std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>::__call<void, oox::xls::Table&, 0ul>(std::tuple<oox::xls::Table&>&&, std::_Index_tuple<0ul>) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/functional:495:11 (libscfiltlo.so+0x4b9d96) #18 void std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>::operator()<oox::xls::Table&, void>(oox::xls::Table&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/functional:580:17 (libscfiltlo.so+0x4b9d96) #19 oox::RefMap<int, oox::xls::Table, std::less<int>>::ForEachFunctor<std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>>::operator()(std::pair<int const, std::shared_ptr<oox::xls::Table>> const&) core/include/oox/helper/refmap.hxx:122:89 (libscfiltlo.so+0x4b9d96) #20 oox::RefMap<int, oox::xls::Table, std::less<int>>::ForEachFunctor<std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>> std::for_each<std::_Rb_tree_const_iterator<std::pair<int const, std::shared_ptr<oox::xls::Table>>>, oox::RefMap<int, oox::xls::Table, std::less<int>>::ForEachFunctor<std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>>>(std::_Rb_tree_const_iterator<std::pair<int const, std::shared_ptr<oox::xls::Table>>>, std::_Rb_tree_const_iterator<std::pair<int const, std::shared_ptr<oox::xls::Table>>>, oox::RefMap<int, oox::xls::Table, std::less<int>>::ForEachFunctor<std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>>) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_algo.h:3787:2 (libscfiltlo.so+0x4b9d96) #21 void oox::RefMap<int, oox::xls::Table, std::less<int>>::forEach<std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()>>(std::_Bind<void (oox::xls::Table::* (std::_Placeholder<1>))()> const&) const core/include/oox/helper/refmap.hxx:71:29 (libscfiltlo.so+0x4b9d96) #22 void oox::RefMap<int, oox::xls::Table, std::less<int>>::forEachMem<void (oox::xls::Table::*)()>(void (oox::xls::Table::*)()) const core/include/oox/helper/refmap.hxx:79:29 (libscfiltlo.so+0x4b9d96) #23 oox::xls::TableBuffer::applyAutoFilters() core/sc/source/filter/oox/tablebuffer.cxx:179:16 (libscfiltlo.so+0x4b9d96) #24 oox::xls::WorksheetGlobals::finalizeWorksheetImport() core/sc/source/filter/oox/worksheethelper.cxx:943:17 (libscfiltlo.so+0x4ee58e) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #25 oox::xls::WorksheetHelper::finalizeWorksheetImport() core/sc/source/filter/oox/worksheethelper.cxx:1625:17 (libscfiltlo.so+0x4f2cff) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #26 oox::xls::WorksheetFragment::finalizeImport() core/sc/source/filter/oox/worksheetfragment.cxx:632:5 (libscfiltlo.so+0x4e91cc) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #27 oox::core::FragmentHandler2::endDocument() core/oox/source/core/fragmenthandler2.cxx:53:5 (libooxlo.so+0x1c20d9) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #28 non-virtual thunk to oox::core::FragmentHandler2::endDocument() core/oox/source/core/fragmenthandler2.cxx (libooxlo.so+0x1c20d9) #29 sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) core/sax/source/fastparser/fastparser.cxx:910:36 (libexpwraplo.so+0x2a06a) (BuildId: 4c8d8739ce3b93f891afa1e160f975a2892a4af4) #30 sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) core/sax/source/fastparser/fastparser.cxx:1482:13 (libexpwraplo.so+0x31738) (BuildId: 4c8d8739ce3b93f891afa1e160f975a2892a4af4) #31 oox::core::FastParser::parseStream(com::sun::star::xml::sax::InputSource const&, bool) core/oox/source/core/fastparser.cxx:121:15 (libooxlo.so+0x1ae980) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #32 oox::core::FastParser::parseStream(com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, rtl::OUString const&) core/oox/source/core/fastparser.cxx:129:5 (libooxlo.so+0x1aebdf) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #33 oox::core::XmlFilterBase::importFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) core/oox/source/core/xmlfilterbase.cxx:412:21 (libooxlo.so+0x1d01ac) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #34 oox::xls::WorkbookHelper::importOoxFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) core/sc/source/filter/oox/workbookhelper.cxx:1024:27 (libscfiltlo.so+0x4dbbd2) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #35 oox::xls::(anonymous namespace)::WorkerThread::doWork() core/sc/source/filter/oox/workbookfragment.cxx:249:27 (libscfiltlo.so+0x4d3347) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #36 comphelper::ThreadTask::exec() core/comphelper/source/misc/threadpool.cxx:319:9 (libcomphelper.so+0x17dbc1) (BuildId: 30a9bf106ea764f860a55d99b75dd87a0f268335) #37 comphelper::ThreadPool::ThreadWorker::execute() core/comphelper/source/misc/threadpool.cxx:85:24 (libcomphelper.so+0x17dbc1) #38 salhelper::Thread::run() core/salhelper/source/thread.cxx:39:5 (libuno_salhelpergcc3.so.3+0x5267) (BuildId: d146f721ac5d8da923b02df0d671788655b81eb6) #39 non-virtual thunk to salhelper::Thread::run() core/salhelper/source/thread.cxx (libuno_salhelpergcc3.so.3+0x5267) #40 threadFunc core/include/osl/thread.hxx:189:15 (libuno_salhelpergcc3.so.3+0x551e) (BuildId: d146f721ac5d8da923b02df0d671788655b81eb6) #41 osl_thread_start_Impl(void*) core/sal/osl/unx/thread.cxx:265:9 (libuno_sal.so.3+0x6a9d5) (BuildId: 767a6cd7c58bf820064a10cf0ab0f15b30c2f4ac) Previous write of size 8 at 0x7b5000040f20 by thread T6 (mutexes: write M2): #0 std::vector<unsigned long, std::allocator<unsigned long>>::_M_fill_insert(__gnu_cxx::__normal_iterator<unsigned long*, std::vector<unsigned long, std::allocator<unsigned long>>>, unsigned long, unsigned long const&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/vector.tcc:556:29 (libsclo.so+0x2f6766) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #1 std::vector<unsigned long, std::allocator<unsigned long>>::insert(__gnu_cxx::__normal_iterator<unsigned long const*, std::vector<unsigned long, std::allocator<unsigned long>>>, unsigned long, unsigned long const&) /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/stl_vector.h:1435:2 (libsclo.so+0x2ffd3a) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #2 mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::blocks_type::insert(unsigned long, unsigned long) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:99:15 (libsclo.so+0x2ffd3a) #3 mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::set_new_block_to_middle(unsigned long, unsigned long, unsigned long, bool) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:4326:19 (libsclo.so+0x2ffd3a) #4 mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::iterator_trait> mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::set_cell_to_middle_of_block<double>(unsigned long, unsigned long, double const&) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:3999:19 (libsclo.so+0x3259fe) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #5 mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::iterator_trait> mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::set_cell_to_empty_block<double>(unsigned long, unsigned long, double const&) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:3313:12 (libsclo.so+0x3259fe) #6 mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::iterator_trait> mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::set_impl<double>(unsigned long, unsigned long, double const&) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:1260:16 (libsclo.so+0x32492f) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #7 mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::iterator_trait> mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::set<double>(mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell>>, sc::CellStoreTrait>::iterator_trait> const&, unsigned long, double const&) core/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:754:20 (libsclo.so+0x4cc138) (BuildId: 4582437348063bd1c461478348ce37a0dbd28def) #8 ScDocumentImport::setNumericCell(ScAddress const&, double) core/sc/source/core/data/documentimport.cxx:259:35 (libsclo.so+0x4cc138) #9 oox::xls::SheetDataBuffer::setValueCell(oox::xls::CellModel const&, double) core/sc/source/filter/oox/sheetdatabuffer.cxx:107:20 (libscfiltlo.so+0x4833c0) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #10 oox::xls::SheetDataContext::onEndElement() core/sc/source/filter/oox/sheetdatacontext.cxx:185:25 (libscfiltlo.so+0x48fed2) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #11 non-virtual thunk to oox::xls::SheetDataContext::onEndElement() core/sc/source/filter/oox/sheetdatacontext.cxx (libscfiltlo.so+0x48fff9) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #12 oox::core::ContextHandler2Helper::implEndElement(int) core/oox/source/core/contexthandler2.cxx:125:9 (libooxlo.so+0x1ac82b) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #13 oox::core::ContextHandler2::endFastElement(int) core/oox/source/core/contexthandler2.cxx:220:5 (libooxlo.so+0x1ac82b) #14 non-virtual thunk to oox::core::ContextHandler2::endFastElement(int) core/oox/source/core/contexthandler2.cxx (libooxlo.so+0x1ac82b) #15 (anonymous namespace)::Entity::endElement() core/sax/source/fastparser/fastparser.cxx:515:27 (libexpwraplo.so+0x3042f) (BuildId: 4c8d8739ce3b93f891afa1e160f975a2892a4af4) #16 sax_fastparser::FastSaxParserImpl::consume((anonymous namespace)::EventList&) core/sax/source/fastparser/fastparser.cxx:1029:25 (libexpwraplo.so+0x29d37) (BuildId: 4c8d8739ce3b93f891afa1e160f975a2892a4af4) #17 sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) core/sax/source/fastparser/fastparser.cxx:869:22 (libexpwraplo.so+0x29d37) #18 sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) core/sax/source/fastparser/fastparser.cxx:1482:13 (libexpwraplo.so+0x31738) (BuildId: 4c8d8739ce3b93f891afa1e160f975a2892a4af4) #19 oox::core::FastParser::parseStream(com::sun::star::xml::sax::InputSource const&, bool) core/oox/source/core/fastparser.cxx:121:15 (libooxlo.so+0x1ae980) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #20 oox::core::FastParser::parseStream(com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, rtl::OUString const&) core/oox/source/core/fastparser.cxx:129:5 (libooxlo.so+0x1aebdf) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #21 oox::core::XmlFilterBase::importFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) core/oox/source/core/xmlfilterbase.cxx:412:21 (libooxlo.so+0x1d01ac) (BuildId: eba40a8f6e1e986eafb2008b5a61a9060f9b6c0b) #22 oox::xls::WorkbookHelper::importOoxFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) core/sc/source/filter/oox/workbookhelper.cxx:1024:27 (libscfiltlo.so+0x4dbbd2) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #23 oox::xls::(anonymous namespace)::WorkerThread::doWork() core/sc/source/filter/oox/workbookfragment.cxx:249:27 (libscfiltlo.so+0x4d3347) (BuildId: 798032f9cb60957d86e47827d9e882b8931326ba) #24 comphelper::ThreadTask::exec() core/comphelper/source/misc/threadpool.cxx:319:9 (libcomphelper.so+0x17dbc1) (BuildId: 30a9bf106ea764f860a55d99b75dd87a0f268335) #25 comphelper::ThreadPool::ThreadWorker::execute() core/comphelper/source/misc/threadpool.cxx:85:24 (libcomphelper.so+0x17dbc1) #26 salhelper::Thread::run() core/salhelper/source/thread.cxx:39:5 (libuno_salhelpergcc3.so.3+0x5267) (BuildId: d146f721ac5d8da923b02df0d671788655b81eb6) #27 non-virtual thunk to salhelper::Thread::run() core/salhelper/source/thread.cxx (libuno_salhelpergcc3.so.3+0x5267) #28 threadFunc core/include/osl/thread.hxx:189:15 (libuno_salhelpergcc3.so.3+0x551e) (BuildId: d146f721ac5d8da923b02df0d671788655b81eb6) #29 osl_thread_start_Impl(void*) core/sal/osl/unx/thread.cxx:265:9 (libuno_sal.so.3+0x6a9d5) (BuildId: 767a6cd7c58bf820064a10cf0ab0f15b30c2f4ac) Change-Id: I7542432749fded8ab5e35f79cb221ad712f7802d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146430 Tested-by: Jenkins Tested-by: Caolán McNamara <[email protected]> Reviewed-by: Caolán McNamara <[email protected]> (cherry picked from commit 6652768) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146531 Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit a1f175f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146695 Reviewed-by: Michael Stahl <[email protected]> Tested-by: Christian Lohmaier <[email protected]> Reviewed-by: Christian Lohmaier <[email protected]>
...during CppunitTest_cppcanvas_test, > fcserialize.c:166:54: runtime error: applying zero offset to null pointer > #0 in FcSerializeResize at workdir/UnpackedTarball/fontconfig/src/fcserialize.c:166:54 > #1 in FcSerializeSet at workdir/UnpackedTarball/fontconfig/src/fcserialize.c:204:7 > #2 in FcSerializeAlloc at workdir/UnpackedTarball/fontconfig/src/fcserialize.c:228:10 > #3 in FcStrSerializeAlloc at workdir/UnpackedTarball/fontconfig/src/fcserialize.c:274:12 > #4 in FcDirCacheBuild at workdir/UnpackedTarball/fontconfig/src/fccache.c:1255:10 > #5 in FcDirCacheScan at workdir/UnpackedTarball/fontconfig/src/fcdir.c:360:13 > #6 in FcDirCacheRead at workdir/UnpackedTarball/fontconfig/src/fcdir.c:462:10 > #7 in FcConfigAddDirList at workdir/UnpackedTarball/fontconfig/src/fccfg.c:516:10 > #8 in FcConfigAppFontAddDir at workdir/UnpackedTarball/fontconfig/src/fccfg.c:2891:10 > #9 in psp::PrintFontManager::addFontconfigDir(rtl::OString const&) at vcl/unx/generic/fontmanager/fontconfig.cxx:745:20 > #10 in psp::PrintFontManager::initialize() at vcl/unx/generic/fontmanager/fontmanager.cxx:683:17 > #11 in GenericUnixSalData::InitPrintFontManager() at vcl/unx/generic/app/gendata.cxx:65:26 > #12 in GenericUnixSalData::GetPrintFontManager() at vcl/inc/unx/gendata.hxx:100:13 > #13 in psp::PrintFontManager::get() at vcl/unx/generic/fontmanager/fontmanager.cxx:105:23 > #14 in GenPspGraphics::GetDevFontListHelper(vcl::font::PhysicalFontCollection*) at vcl/unx/generic/print/genpspgraphics.cxx:248:35 > #15 in FreeTypeTextRenderImpl::GetDevFontList(vcl::font::PhysicalFontCollection*) at vcl/unx/generic/gdi/freetypetextrender.cxx:110:5 > #16 in SvpSalGraphics::GetDevFontList(vcl::font::PhysicalFontCollection*) at vcl/headless/svptext.cxx:51:23 > #17 in OutputDevice::ImplInitFontList() const at vcl/source/outdev/font.cxx:643:17 > #18 in OutputDevice::ImplNewFont() const at vcl/source/outdev/font.cxx:700:5 > #19 in OutputDevice::InitFont() const at vcl/source/outdev/font.cxx:660:10 > #20 in OutputDevice::GetTextHeight() const at vcl/source/outdev/text.cxx:899:10 > #21 in vcl::Window::GetTextHeight() const at vcl/source/window/window3.cxx:65:65 > #22 in vcl::Window::ImplInitAppFontData(vcl::Window const*) at vcl/source/window/window.cxx:1188:40 > #23 in vcl::Window::ImplInit(vcl::Window*, long, SystemParentData*) at vcl/source/window/window.cxx:1182:9 > #24 in ImplBorderWindow::ImplInit(vcl::Window*, long, BorderWindowStyle, SystemParentData*) at vcl/source/window/brdwin.cxx:1557:13 > #25 in ImplBorderWindow::ImplBorderWindow(vcl::Window*, SystemParentData*, long, BorderWindowStyle) at vcl/source/window/brdwin.cxx:1586:5 > #26 in VclPtrInstance<ImplBorderWindow>::VclPtrInstance<vcl::Window*&, SystemParentData*&, long&, BorderWindowStyle&>(vcl::Window*&, SystemParentData*&, long&, BorderWindowStyle&) at include/vcl/vclptr.hxx:280:39 > #27 in WorkWindow::ImplInit(vcl::Window*, long, SystemParentData*) at vcl/source/window/wrkwin.cxx:51:38 > #28 in WorkWindow::WorkWindow(vcl::Window*, long) at vcl/source/window/wrkwin.cxx:95:5 > #29 in ScopedVclPtrInstance<WorkWindow>::ScopedVclPtrInstance<std::nullptr_t, long const&>(std::nullptr_t&&, long const&) at include/vcl/vclptr.hxx:412:45 > #30 in CanvasTest::testComposite() at cppcanvas/qa/unit/test.cxx:38:38 Change-Id: I90c86931ae5d4dfb32a1a95a5eb660484b54f09a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148287 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]>
…Chart" ...as happens during UITest_chart UITEST_TEST_NAME=tdf107097.tdf107097.test_tdf107097 ever since 86b1929 "tdf#107097: sc: Add UItest" added that test (see <https://ci.libreoffice.org/job/lo_ubsan/1919/>), > /chart2/source/tools/XMLRangeHelper.cxx:136:52: runtime error: signed integer overflow: 15 * 308915776 cannot be represented in type 'int' > #0 0x2ad74a554918 in (anonymous namespace)::lcl_getSingleCellAddressFromXMLString(rtl::OUString const&, int, int, chart::XMLRangeHelper::Cell&) /chart2/source/tools/XMLRangeHelper.cxx:136:52 > #1 0x2ad74a553482 in (anonymous namespace)::lcl_getCellAddressFromXMLString(rtl::OUString const&, int, int, chart::XMLRangeHelper::Cell&, rtl::OUString&) /chart2/source/tools/XMLRangeHelper.cxx:217:13 > #2 0x2ad74a5505da in (anonymous namespace)::lcl_getCellRangeAddressFromXMLString(rtl::OUString const&, int, int, chart::XMLRangeHelper::CellRange&) /chart2/source/tools/XMLRangeHelper.cxx:253:19 > #3 0x2ad74a54fde1 in chart::XMLRangeHelper::getCellRangeFromXMLString(rtl::OUString const&) /chart2/source/tools/XMLRangeHelper.cxx:328:15 > #4 0x2ad74a2aed4d in chart::InternalDataProvider::convertRangeFromXML(rtl::OUString const&) /chart2/source/tools/InternalDataProvider.cxx:1227:39 > #5 0x2ad74a2b0164 in non-virtual thunk to chart::InternalDataProvider::convertRangeFromXML(rtl::OUString const&) /chart2/source/tools/InternalDataProvider.cxx > #6 0x2ad6c4784257 in (anonymous namespace)::lcl_ConvertRange(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::chart2::XChartDocument> const&) /xmloff/source/chart/SchXMLPlotAreaContext.cxx:76:32 > #7 0x2ad6c4779a67 in SchXMLPlotAreaContext::startFastElement(int, com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList> const&) /xmloff/source/chart/SchXMLPlotAreaContext.cxx:233:34 > #8 0x2ad6c4c6328a in SvXMLImport::startFastElement(int, com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList> const&) /xmloff/source/core/xmlimp.cxx:797:15 > #9 0x2ad704988b78 in (anonymous namespace)::Entity::startElement((anonymous namespace)::Event const*) /sax/source/fastparser/fastparser.cxx:468:27 > #10 0x2ad70496f681 in sax_fastparser::FastSaxParserImpl::consume((anonymous namespace)::EventList&) /sax/source/fastparser/fastparser.cxx:1026:25 > #11 0x2ad70496c65f in sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) /sax/source/fastparser/fastparser.cxx:870:22 > #12 0x2ad7049905d1 in sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) /sax/source/fastparser/fastparser.cxx:1482:13 > #13 0x2ad6c4c52b80 in SvXMLImport::parseStream(com::sun::star::xml::sax::InputSource const&) /xmloff/source/core/xmlimp.cxx:504:15 > #14 0x2ad749aafe1e in chart::XMLFilter::impl_ImportStream(rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, com::sun::star::uno::Reference<com::sun::star::lang::XMultiComponentFactory> const&, com::sun::star::uno::Reference<com::sun::star::document::XGraphicStorageHandler> const&, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> const&) /chart2/source/model/filter/XMLFilter.cxx:473:34 > #15 0x2ad749aa9f01 in chart::XMLFilter::impl_Import(com::sun::star::uno::Reference<com::sun::star::lang::XComponent> const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /chart2/source/model/filter/XMLFilter.cxx:375:35 > #16 0x2ad749aa0988 in chart::XMLFilter::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /chart2/source/model/filter/XMLFilter.cxx:221:13 > #17 0x2ad749c2c76e in chart::ChartModel::impl_load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&) /chart2/source/model/main/ChartModel_Persistence.cxx:567:18 > #18 0x2ad749c30eea in chart::ChartModel::loadFromStorage(com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /chart2/source/model/main/ChartModel_Persistence.cxx:759:5 > #19 0x2ad74244b977 in OCommonEmbeddedObject::LoadDocumentFromStorage_Impl() /embeddedobj/source/commonembedding/persistence.cxx:535:19 > #20 0x2ad7423d7bde in OCommonEmbeddedObject::SwitchStateTo_Impl(int) /embeddedobj/source/commonembedding/embedobj.cxx:185:49 > #21 0x2ad7423e32ff in OCommonEmbeddedObject::changeState(int) /embeddedobj/source/commonembedding/embedobj.cxx:453:13 > #22 0x2ad7424b7057 in OCommonEmbeddedObject::getPreferredVisualRepresentation(long) /embeddedobj/source/commonembedding/visobj.cxx:168:9 > #23 0x2ad67e08fdb6 in comphelper::EmbeddedObjectContainer::GetGraphicReplacementStream(long, com::sun::star::uno::Reference<com::sun::star::embed::XEmbeddedObject> const&, rtl::OUString*) /comphelper/source/container/embeddedobjectcontainer.cxx:1425:54 > #24 0x2ad6a447182c in svt::EmbeddedObjectRef::GetGraphicReplacementStream(long, com::sun::star::uno::Reference<com::sun::star::embed::XEmbeddedObject> const&, rtl::OUString*) /svtools/source/misc/embedhlp.cxx:809:12 > #25 0x2ad6a446c7d4 in svt::EmbeddedObjectRef::GetGraphicStream(bool) const /svtools/source/misc/embedhlp.cxx:616:23 > #26 0x2ad6a4469e58 in svt::EmbeddedObjectRef::GetReplacement(bool) /svtools/source/misc/embedhlp.cxx:424:46 > #27 0x2ad6a446d4ea in svt::EmbeddedObjectRef::GetGraphic() const /svtools/source/misc/embedhlp.cxx:453:54 > #28 0x2ad69d4a9470 in SdrOle2Obj::GetGraphic() const /svx/source/svdraw/svdoole2.cxx:1635:33 > #29 0x2ad71b222d01 in ScDrawTransferObj::ScDrawTransferObj(std::unique_ptr<SdrModel, std::default_delete<SdrModel> >, ScDocShell*, TransferableObjectDescriptor const&) /sc/source/ui/app/drwtrans.cxx:191:107 > #30 0x2ad71d7da932 in ScDrawView::DoCopy() /sc/source/ui/view/drawvie4.cxx:364:56 > #31 0x2ad71c1fb75a in ScDrawShell::ExecDrawFunc(SfxRequest&) /sc/source/ui/drawfunc/drawsh5.cxx:328:20 > #32 0x2ad71c1b181f in SfxStubScDrawShellExecDrawFunc(SfxShell*, SfxRequest&) /workdir/SdiTarget/sc/sdi/scslots.hxx:2823:1 > #33 0x2ad68de39d05 in SfxShell::CallExec(void (*)(SfxShell*, SfxRequest&), SfxRequest&) /include/sfx2/shell.hxx:197:35 > #34 0x2ad68ddd1214 in SfxDispatcher::Call_Impl(SfxShell&, SfxSlot const&, SfxRequest&, bool) /sfx2/source/control/dispatch.cxx:253:16 > #35 0x2ad68dde721f in SfxDispatcher::Execute_(SfxShell&, SfxSlot const&, SfxRequest&, SfxCallMode) /sfx2/source/control/dispatch.cxx:753:9 > #36 0x2ad68dd5edff in SfxBindings::Execute_Impl(SfxRequest&, SfxSlot const*, SfxShell*) /sfx2/source/control/bindings.cxx:1060:22 > #37 0x2ad68e24a322 in SfxDispatchController_Impl::dispatch(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> const&) /sfx2/source/control/unoctitm.cxx:758:53 > #38 0x2ad68e245261 in SfxOfficeDispatch::dispatch(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /sfx2/source/control/unoctitm.cxx:229:16 > #39 0x2ad67e465052 in comphelper::dispatchCommand(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> const&) /comphelper/source/misc/dispatchcommand.cxx:61:12 > #40 0x2ad67e4657c5 in comphelper::dispatchCommand(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> const&) /comphelper/source/misc/dispatchcommand.cxx:76:12 > #41 0x2ad6b39a49a6 in UITest::executeCommand(rtl::OUString const&) /vcl/source/uitest/uitest.cxx:24:12 > #42 0x2ad6b39b7240 in (anonymous namespace)::UITestUnoObj::executeCommand(rtl::OUString const&) /vcl/source/uitest/uno/uitest_uno.cxx:69:12 > #43 0x2ad6ee6508db in gcc3::callVirtualMethod(void*, unsigned int, void*, _typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int, unsigned long*, double*) /bridges/source/cpp_uno/gcc3_linux_x86-64/callvirtualmethod.cxx:77:5 > #44 0x2ad6ee64abf2 in cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*, bridges::cpp_uno::shared::VtableSlot, _typelib_TypeDescriptionReference*, int, _typelib_MethodParameter*, void*, void**, _uno_Any**) /bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:233:13 > #45 0x2ad6ee64773d in unoInterfaceProxyDispatch /bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:413:13 > #46 0x2ad6f3a7d2ca in binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny*, std::__debug::vector<binaryurp::BinaryAny, std::allocator<binaryurp::BinaryAny> >*) const /binaryurp/source/incomingrequest.cxx:235:13 Creating a pivot chart apparently generates XML output containing <chart:plot-area table:cell-range-address="PivotChart" ...> which does not conform to ODF, see the mail thread starting at <https://lists.freedesktop.org/archives/libreoffice/2021-February/086884.html> "Integer overflow in Calc lcl_getSingleCellAddressFromXMLString nColumn computation" for details. And, ignoring the signed-integer-overflow UB for now, InternalDataProvider::convertRangeFromXML would always have returned an empty OUString for an input of aXMLRange="PivotChart": chart::XMLRangeHelper::getCellRangeFromXMLString with rXMLString="PivotChart" calls lcl_getCellAddressFromXMLString with rXMLString="PivotChart", nStartPos=0, nEndPos=9, its leading while-loop mis-computes nDelimiterPos=nEndPos, so calls lcl_getCellAddressFromXMLString with rXMLString="PivotChart", nStartPos=0, nEndPos=9, its leading while-loop mis-computes nDelimiterPos=nEndPos, so it doesn't set rOutTableName, so lcl_getCellAddressFromXMLString returns bResult=false, so chart::XMLRangeHelper::getCellRangeFromXMLString returns an empty CellRange(). So, similar to 9e5314f "tdf#107097 invoke internal DP and correctly handle 'range' names" added special handling of aXMLRange values starting with "PT@" to InternalDataProvider::convertRangeFromXML, also add explicit special handling for "PivotChart" (instead of relying on the later code returning an empty string, but after invoking UB). Change-Id: I1671f0ab3b3ab00dce8e348aa3b7141ebebaaad5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112207 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]> (cherry picked from commit 6d43ba1) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125233 Tested-by: Michael Stahl <[email protected]> Reviewed-by: Michael Stahl <[email protected]>
in: sw/source/core/text/itrform2.cxx:2643 SwTextFormatter::NewFlyCntPortion at: pFly = static_cast<SwTextFlyCnt*>(pHint)->GetFlyFrame(pFrame) (gdb) print m_pCurr $2 = (SwLineLayout *) 0x55ea220a0020 after calling GetFlyFrame m_pCurr is unchanged and we will call m_pCurr->MaxAscentDescent on it. But m_pCurr is deleted during GetFlyFrame by... #18 0x00007f98c5cd337f in SwLineLayout::~SwLineLayout() (this=this@entry=0x55ea220a0020, __in_chrg=<optimized out>) at source/libo-core/sw/source/core/text/portxt.hxx:26 #19 0x00007f98c5cd347a in SwParaPortion::~SwParaPortion() (this=0x55ea220a0020, __in_chrg=<optimized out>) at source/libo-core/sw/source/core/text/porlay.cxx:2491 #20 0x00007f98c5cd3485 in SwParaPortion::~SwParaPortion() (this=0x55ea220a0020, __in_chrg=<optimized out>) at source/libo-core/sw/source/core/text/porlay.cxx:2491 #21 0x00007f98c5d05e70 in std::default_delete<SwParaPortion>::operator()(SwParaPortion*) const (__ptr=<optimized out>, this=<optimized out>) at /usr/include/c++/8/bits/unique_ptr.h:75 #22 0x00007f98c5d05e70 in std::unique_ptr<SwParaPortion, std::default_delete<SwParaPortion> >::reset(SwParaPortion*) (__p=<optimized out>, this=<optimized out>) at /usr/include/c++/8/bits/unique_ptr.h:382 #23 0x00007f98c5d05e70 in SwTextLine::SetPara(SwParaPortion*, bool) (bDelete=true, pNew=0x0, this=<optimized out>) at source/libo-core/sw/source/core/text/txtcache.hxx:45 #24 0x00007f98c5d05e70 in SwTextFrame::ClearPara() (this=this@entry=0x55ea21302b60) at source/libo-core/sw/source/core/text/txtcache.cxx:113 #25 0x00007f98c5d1be89 in SwTextFrame::Init() (this=this@entry=0x55ea21302b60) at source/libo-core/sw/source/core/text/txtfrm.cxx:757 #26 0x00007f98c5d2630c in SwTextFrame::Prepare(PrepareHint, void const*, bool) (this=0x55ea21302b60, ePrep=PrepareHint::FlyFrameArrive, pVoid=<optimized out>, bNotify=<optimized out>) at source/libo-core/sw/source/core/text/txtfrm.cxx:3086 #27 0x00007f98c5b1edb8 in SwFlyInContentFrame::NotifyBackground(SwPageFrame*, SwRect const&, PrepareHint) (this=<optimized out>, rRect=..., eHint=<optimized out>) at source/libo-core/sw/inc/anchoredobject.hxx:205 #28 0x00007f98c5b261a6 in Notify(SwFlyFrame*, SwPageFrame*, SwRect const&, SwRect const*) (pFly=pFly@entry=0x55ea21a18d60, pOld=0x0, rOld=SwRect = {...}, pOldPrt=pOldPrt@entry=0x7ffeb50390f8) at source/libo-core/sw/source/core/inc/frame.hxx:1177 #29 0x00007f98c5b2ceca in SwFlyNotify::~SwFlyNotify() (this=0x7ffeb50390d0, __in_chrg=<optimized out>) at source/libo-core/sw/source/core/layout/frmtool.cxx:648 #30 0x00007f98c5b1fa25 in SwFlyInContentFrame::MakeAll(OutputDevice*) (this=0x55ea21a18d60) at source/libo-core/sw/source/core/inc/frmtool.hxx:419 #31 0x00007f98c5aec3a9 in SwFrame::PrepareMake(OutputDevice*) (this=0x55ea21a18d60, pRenderContext=0x55ea212bc4c0) at source/libo-core/sw/source/core/layout/calcmove.cxx:375 #32 0x00007f98c5b17ad2 in SwFlyFrame::Calc(OutputDevice*) const (this=<optimized out>, pRenderContext=<optimized out>) at source/libo-core/sw/source/core/layout/fly.cxx:2890 #33 0x00007f98c5b636c5 in SwObjectFormatter::FormatLayout_(SwLayoutFrame&) (this=this@entry=0x55ea2244d150, _rLayoutFrame=...) at source/libo-core/include/rtl/ref.hxx:206 #34 0x00007f98c5b6413e in SwObjectFormatter::FormatObj_(SwAnchoredObject&) (this=this@entry=0x55ea2244d150, _rAnchoredObj=...) at source/libo-core/sw/source/core/layout/objectformatter.cxx:296 #35 0x00007f98c5b6705b in SwObjectFormatterTextFrame::DoFormatObj(SwAnchoredObject&, bool) (this=0x55ea2244d150, _rAnchoredObj=..., _bCheckForMovedFwd=<optimized out>) at source/libo-core/sw/source/core/layout/objectformattertxtfrm.cxx:136 #36 0x00007f98c5b6359f in SwObjectFormatter::FormatObj(SwAnchoredObject&, SwFrame*, SwPageFrame const*) (_rAnchoredObj=..., _pAnchorFrame=<optimized out>, _pPageFrame=<optimized out>) at source/libo-core/sw/source/core/layout/objectformatter.cxx:190 #37 0x00007f98c5d717aa in SwTextFlyCnt::GetFlyFrame_(SwFrame const*) (this=this@entry=0x55ea214d8810, pCurrFrame=pCurrFrame@entry=0x55ea21302b60) at source/libo-core/sw/source/core/inc/frame.hxx:1177 #38 0x00007f98c5cb511b in SwTextFlyCnt::GetFlyFrame(SwFrame const*) (pCurrFrame=0x55ea21302b60, this=0x55ea214d8810) at source/libo-core/sw/inc/txtflcnt.hxx:48 #39 0x00007f98c5cb511b in SwTextFormatter::NewFlyCntPortion(SwTextFormatInfo&, SwTextAttr*) const (this=this@entry=0x7ffeb503a6b0, rInf=..., pHint=0x55ea214d8810) at source/libo-core/sw/source/core/text/itrform2.cxx:2643 (gdb) print this (SwLinePortion * const) 0x55ea220a0020 The SwTextFrame of SwTextFrame::ClearPara is the same pFrame/m_pFrame at SwTextFormatter::NewFlyCntPortion ClearPara is not called if the SwTextFrame is "Locked", so try using that to protect GetFlyFrame Change-Id: Ia9dcb1f345f6953d995f2acf1ec23492d1680364 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118784 Tested-by: Jenkins Tested-by: Caolán McNamara <[email protected]> Reviewed-by: Caolán McNamara <[email protected]> (cherry picked from commit 7e016df) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125239 Tested-by: Michael Stahl <[email protected]> Reviewed-by: Michael Stahl <[email protected]>
...e.g. during CppunitTest_sd_import_tests, > /oox/source/drawingml/colorchoicecontext.cxx:280:78: runtime error: 35000 is outside the range of representable values of type 'short' > #0 0x7f3b8abf6278 in oox::drawingml::ColorValueContext::onCreateContext(int, oox::AttributeList const&) /oox/source/drawingml/colorchoicecontext.cxx:280:78 > #1 0x7f3b8abf6534 in non-virtual thunk to oox::drawingml::ColorValueContext::onCreateContext(int, oox::AttributeList const&) /oox/source/drawingml/colorchoicecontext.cxx > #2 0x7f3b8a94baff in oox::core::ContextHandler2Helper::implCreateChildContext(int, com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList> const&) /oox/source/core/contexthandler2.cxx:100:34 > #3 0x7f3b8a94eabb in oox::core::ContextHandler2::createFastChildContext(int, com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList> const&) /oox/source/core/contexthandler2.cxx:204:12 > #4 0x7f3b8a950484 in non-virtual thunk to oox::core::ContextHandler2::createFastChildContext(int, com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList> const&) /oox/source/core/contexthandler2.cxx > #5 0x7f3b43e81c45 in DOM::CElement::fastSaxify(DOM::Context&) /unoxml/source/dom/element.cxx:164:67 > #6 0x7f3b43e8299e in DOM::CElement::fastSaxify(DOM::Context&) /unoxml/source/dom/element.cxx:181:20 > #7 0x7f3b43e8299e in DOM::CElement::fastSaxify(DOM::Context&) /unoxml/source/dom/element.cxx:181:20 > #8 0x7f3b43e8299e in DOM::CElement::fastSaxify(DOM::Context&) /unoxml/source/dom/element.cxx:181:20 > #9 0x7f3b43e8299e in DOM::CElement::fastSaxify(DOM::Context&) /unoxml/source/dom/element.cxx:181:20 > #10 0x7f3b43e8299e in DOM::CElement::fastSaxify(DOM::Context&) /unoxml/source/dom/element.cxx:181:20 > #11 0x7f3b43e8299e in DOM::CElement::fastSaxify(DOM::Context&) /unoxml/source/dom/element.cxx:181:20 > #12 0x7f3b43e8299e in DOM::CElement::fastSaxify(DOM::Context&) /unoxml/source/dom/element.cxx:181:20 > #13 0x7f3b43e8299e in DOM::CElement::fastSaxify(DOM::Context&) /unoxml/source/dom/element.cxx:181:20 > #14 0x7f3b43df8a50 in DOM::CDocument::fastSaxify(DOM::Context&) /unoxml/source/dom/document.cxx:289:20 > #15 0x7f3b43e117af in DOM::CDocument::fastSerialize(com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastDocumentHandler> const&, com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastTokenHandler> const&, com::sun::star::uno::Sequence<com::sun::star::beans::StringPair> const&, com::sun::star::uno::Sequence<com::sun::star::beans::Pair<rtl::OUString, int> > const&) /unoxml/source/dom/document.cxx:1023:9 > #16 0x7f3b8aa55f81 in oox::core::XmlFilterBase::importFragment(rtl::Reference<oox::core::FragmentHandler> const&, com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastSAXSerializable> const&) /oox/source/core/xmlfilterbase.cxx:470:23 > #17 0x7f3b8bd30d0f in oox::ppt::PresentationFragmentHandler::importSlide(unsigned int, bool, bool) /oox/source/ppt/presentationfragmenthandler.cxx:357:41 > #18 0x7f3b8bd3cd16 in oox::ppt::PresentationFragmentHandler::finalizeImport() /oox/source/ppt/presentationfragmenthandler.cxx:543:17 > #19 0x7f3b8a9f79ae in oox::core::FragmentHandler2::endDocument() /oox/source/core/fragmenthandler2.cxx:53:5 > #20 0x7f3b548344f0 in sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) /sax/source/fastparser/fastparser.cxx:897:36 > #21 0x7f3b54855150 in sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) /sax/source/fastparser/fastparser.cxx:1469:13 > #22 0x7f3b8a97ff11 in oox::core::FastParser::parseStream(com::sun::star::xml::sax::InputSource const&, bool) /oox/source/core/fastparser.cxx:121:15 > #23 0x7f3b8a9806a8 in oox::core::FastParser::parseStream(com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, rtl::OUString const&) /oox/source/core/fastparser.cxx:129:5 > #24 0x7f3b8aa548a4 in oox::core::XmlFilterBase::importFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) /oox/source/core/xmlfilterbase.cxx:412:21 > #25 0x7f3b8aa531fd in oox::core::XmlFilterBase::importFragment(rtl::Reference<oox::core::FragmentHandler> const&) /oox/source/core/xmlfilterbase.cxx:342:12 > #26 0x7f3b8bcbaf54 in oox::ppt::PowerPointImport::importDocument() /oox/source/ppt/pptimport.cxx:109:17 > #27 0x7f3b8a99493c in oox::core::FilterBase::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /oox/source/core/filterbase.cxx:488:49 > #28 0x7f3b8bcbe067 in oox::ppt::PowerPointImport::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /oox/source/ppt/pptimport.cxx:192:24 > #29 0x7f3b7a89c1c6 in SfxObjectShell::ImportFrom(SfxMedium&, com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&) /sfx2/source/doc/objstor.cxx:2272:34 > #30 0x7f3b82834e18 in sd::DrawDocShell::ImportFrom(SfxMedium&, com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&) /sd/source/ui/docshell/docshel4.cxx:429:39 > #31 0x7f3b7a85bd64 in SfxObjectShell::DoLoad(SfxMedium*) /sfx2/source/doc/objstor.cxx:739:23 > #32 0x7f3b7aa63c10 in SfxBaseModel::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /sfx2/source/doc/sfxbasemodel.cxx:1940:36 > #33 0x7f3b7b1c142c in (anonymous namespace)::SfxFrameLoader_Impl::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) /sfx2/source/view/frmload.cxx:720:28 > #34 0x7f3b4ff0f5fb in framework::LoadEnv::impl_loadContent() /framework/source/loadenv/loadenv.cxx:1176:37 > #35 0x7f3b4ff059fb in framework::LoadEnv::start() /framework/source/loadenv/loadenv.cxx:412:20 > #36 0x7f3b4fefd8bc 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) /framework/source/loadenv/loadenv.cxx:308:5 > #37 0x7f3b4fef8c50 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&) /framework/source/loadenv/loadenv.cxx:168:14 > #38 0x7f3b4ffc334d in framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /framework/source/services/desktop.cxx:593:16 > #39 0x7f3b4ffc3576 in non-virtual thunk to framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /framework/source/services/desktop.cxx > #40 0x7f3b5feedd95 in unotest::MacrosTest::loadFromDesktop(rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /unotest/source/cpp/macros_test.cxx:71:62 > #41 0x7f3b75b0aef9 in UnoApiTest::load(rtl::OUString const&, char const*) /test/source/unoapi_test.cxx:115:11 > #42 0x7f3b75b0baf4 in UnoApiTest::loadFromURL(std::basic_string_view<char16_t, std::char_traits<char16_t> >, char const*) /test/source/unoapi_test.cxx:127:5 > #43 0x7f3b95d2f402 in SdModelTestBase::createSdImpressDoc(char const*, char const*) /sd/qa/unit/sdmodeltestbase.hxx:54:13 > #44 0x7f3b95d025c8 in testBnc584721_1::TestBody() /sd/qa/unit/import-tests.cxx:1281:5 (<https://ci.libreoffice.org/job/lo_ubsan/2741/>). Presumably it was just a typo that f707834 "oox: write color transforms to model::ColorDefinition" used 10.0 rather than 10 as divisor. Change-Id: I42de6daaa6db86bf4444243ec2c9173d6d514b02 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150216 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]>
bb19817 "MCGR: Make MCGR default for oox im/export, cleanup" started to cause CppunitTest_chart2_geometry CPPUNIT_TEST_NAME=Chart2GeometryTest::testTdf128345Legend_CS_TG_axial_import to fail with the below UBSan failure (even though the relevant code appears to be even older than that commit). At least for now, lets silence that by explicitly using +INF in case the divisor is zero (and the dividend is known non-negative). > /drawinglayer/source/texture/texture.cxx:246:71: runtime error: division by zero > #0 0x7f2e61d80f7f in drawinglayer::texture::GeoTexSvxGradientLinear::appendTransformationsAndColors(std::function<void (basegfx::B2DHomMatrix const&, basegfx::BColor const&)>) /drawinglayer/source/texture/texture.cxx:246:71 > #1 0x7f2e616e187d in drawinglayer::primitive2d::FillGradientPrimitive2D::generateMatricesAndColors(std::function<void (basegfx::B2DHomMatrix const&, basegfx::BColor const&)>) const /drawinglayer/source/primitive2d/fillgradientprimitive2d.cxx:75:31 > #2 0x7f2e616e4f4f in drawinglayer::primitive2d::FillGradientPrimitive2D::createFill(drawinglayer::primitive2d::Primitive2DContainer&, bool) const /drawinglayer/source/primitive2d/fillgradientprimitive2d.cxx:172:17 > #3 0x7f2e616e66ca in drawinglayer::primitive2d::FillGradientPrimitive2D::create2DDecomposition(drawinglayer::primitive2d::Primitive2DContainer&, drawinglayer::geometry::ViewInformation2D const&) const /drawinglayer/source/primitive2d/fillgradientprimitive2d.cxx:269:17 > #4 0x7f2e76cecd04 in drawinglayer::primitive2d::BufferedDecompositionPrimitive2D::get2DDecomposition(drawinglayer::primitive2d::Primitive2DDecompositionVisitor&, drawinglayer::geometry::ViewInformation2D const&) const /drawinglayer/source/primitive2d/BufferedDecompositionPrimitive2D.cxx:36:9 > #5 0x7f2e619b9278 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::BasePrimitive2D const&) /drawinglayer/source/processor2d/baseprocessor2d.cxx:46:24 > #6 0x7f2e61a38a25 in drawinglayer::processor2d::VclMetafileProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) /drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx:917:13 > #7 0x7f2e619b9a5f in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) /drawinglayer/source/processor2d/baseprocessor2d.cxx:68:21 > #8 0x7f2e61a5cc3e in drawinglayer::processor2d::VclMetafileProcessor2D::processMaskPrimitive2D(drawinglayer::primitive2d::MaskPrimitive2D const&) /drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx:2139:13 > #9 0x7f2e61a3734a in drawinglayer::processor2d::VclMetafileProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) /drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx:833:13 > #10 0x7f2e619b9a5f in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) /drawinglayer/source/processor2d/baseprocessor2d.cxx:68:21 > #11 0x7f2e619b952c in drawinglayer::processor2d::BaseProcessor2D::visit(drawinglayer::primitive2d::Primitive2DContainer const&) /drawinglayer/source/processor2d/baseprocessor2d.cxx:56:13 > #12 0x7f2e76ced03a in drawinglayer::primitive2d::BufferedDecompositionPrimitive2D::get2DDecomposition(drawinglayer::primitive2d::Primitive2DDecompositionVisitor&, drawinglayer::geometry::ViewInformation2D const&) const /drawinglayer/source/primitive2d/BufferedDecompositionPrimitive2D.cxx:41:14 > #13 0x7f2e619b9278 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::BasePrimitive2D const&) /drawinglayer/source/processor2d/baseprocessor2d.cxx:46:24 > #14 0x7f2e61a595e3 in drawinglayer::processor2d::VclMetafileProcessor2D::processPolyPolygonGradientPrimitive2D(drawinglayer::primitive2d::PolyPolygonGradientPrimitive2D const&) /drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx:2014:9 > #15 0x7f2e61a36fc0 in drawinglayer::processor2d::VclMetafileProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) /drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx:821:13 > #16 0x7f2e619b9a5f in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) /drawinglayer/source/processor2d/baseprocessor2d.cxx:68:21 > #17 0x7f2e61a2e0da in drawinglayer::processor2d::VclMetafileProcessor2D::impDumpToMetaFile(drawinglayer::primitive2d::Primitive2DContainer const&, GDIMetaFile&) /drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx:244:5 > #18 0x7f2e61a60f4a in drawinglayer::processor2d::VclMetafileProcessor2D::processTransparencePrimitive2D(drawinglayer::primitive2d::TransparencePrimitive2D const&) /drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx:2292:52 > #19 0x7f2e61a378cb in drawinglayer::processor2d::VclMetafileProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) /drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx:851:13 > #20 0x7f2e619b9a5f in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) /drawinglayer/source/processor2d/baseprocessor2d.cxx:68:21 > #21 0x7f2e619b952c in drawinglayer::processor2d::BaseProcessor2D::visit(drawinglayer::primitive2d::Primitive2DContainer const&) /drawinglayer/source/processor2d/baseprocessor2d.cxx:56:13 > #22 0x7f2e76ced03a in drawinglayer::primitive2d::BufferedDecompositionPrimitive2D::get2DDecomposition(drawinglayer::primitive2d::Primitive2DDecompositionVisitor&, drawinglayer::geometry::ViewInformation2D const&) const /drawinglayer/source/primitive2d/BufferedDecompositionPrimitive2D.cxx:41:14 > #23 0x7f2e619b9278 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::BasePrimitive2D const&) /drawinglayer/source/processor2d/baseprocessor2d.cxx:46:24 > #24 0x7f2e61a38a25 in drawinglayer::processor2d::VclMetafileProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) /drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx:917:13 > #25 0x7f2e619b9a5f in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) /drawinglayer/source/processor2d/baseprocessor2d.cxx:68:21 > #26 0x7f2e61a68781 in drawinglayer::processor2d::VclMetafileProcessor2D::processObjectInfoPrimitive2D(drawinglayer::primitive2d::ObjectInfoPrimitive2D const&) /drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx:965:5 > #27 0x7f2e61a38916 in drawinglayer::processor2d::VclMetafileProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) /drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx:910:13 > #28 0x7f2e619b9a5f in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) /drawinglayer/source/processor2d/baseprocessor2d.cxx:68:21 > #29 0x7f2df2676731 in sdr::contact::ObjectContactOfPageView::DoProcessDisplay(sdr::contact::DisplayInfo&) /svx/source/sdr/contact/objectcontactofpageview.cxx:277:31 > #30 0x7f2df26741be in sdr::contact::ObjectContactOfPageView::ProcessDisplay(sdr::contact::DisplayInfo&) /svx/source/sdr/contact/objectcontactofpageview.cxx:117:21 > #31 0x7f2df291809d in SdrPageWindow::RedrawAll(sdr::contact::ViewObjectContactRedirector*) /svx/source/svdraw/sdrpagewindow.cxx:357:28 > #32 0x7f2df363584c in SdrPageView::CompleteRedraw(SdrPaintWindow&, vcl::Region const&, sdr::contact::ViewObjectContactRedirector*) /svx/source/svdraw/svdpagv.cxx:239:18 > #33 0x7f2df36a80b0 in SdrPaintView::DoCompleteRedraw(SdrPaintWindow&, vcl::Region const&, sdr::contact::ViewObjectContactRedirector*) /svx/source/svdraw/svdpntv.cxx:609:21 > #34 0x7f2df36a7b61 in SdrPaintView::CompleteRedraw(OutputDevice*, vcl::Region const&, sdr::contact::ViewObjectContactRedirector*) /svx/source/svdraw/svdpntv.cxx:522:5 > #35 0x7f2df3ec0413 in (anonymous namespace)::GraphicExporter::GetGraphic((anonymous namespace)::ExportSettings const&, Graphic&, bool) /svx/source/unodraw/UnoGraphicExporter.cxx:740:24 > #36 0x7f2df3ec857b in (anonymous namespace)::GraphicExporter::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /svx/source/unodraw/UnoGraphicExporter.cxx:1037:19 > #37 0x7f2db53f082a in chart::ChartView::getMetaFile(com::sun::star::uno::Reference<com::sun::star::io::XOutputStream> const&, bool) /chart2/source/view/main/ChartView.cxx:263:20 > #38 0x7f2db53f1d43 in chart::ChartView::getTransferData(com::sun::star::datatransfer::DataFlavor const&) /chart2/source/view/main/ChartView.cxx:285:11 > #39 0x7f2db53f28ae in non-virtual thunk to chart::ChartView::getTransferData(com::sun::star::datatransfer::DataFlavor const&) /chart2/source/view/main/ChartView.cxx > #40 0x7f2db586547f in chart::ChartModel::getPreferredVisualRepresentation(long) /chart2/source/model/main/ChartModel.cxx:1054:44 > #41 0x7f2db586779e in non-virtual thunk to chart::ChartModel::getPreferredVisualRepresentation(long) /chart2/source/model/main/ChartModel.cxx > #42 0x7f2db8401589 in OCommonEmbeddedObject::getPreferredVisualRepresentation(long) /embeddedobj/source/commonembedding/visobj.cxx:186:48 > #43 0x7f2e95742555 in comphelper::EmbeddedObjectContainer::GetGraphicReplacementStream(long, com::sun::star::uno::Reference<com::sun::star::embed::XEmbeddedObject> const&, rtl::OUString*) /comphelper/source/container/embeddedobjectcontainer.cxx:1428:54 > #44 0x7f2e9573f6b4 in comphelper::EmbeddedObjectContainer::StoreAsChildren(bool, bool, bool, com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&) /comphelper/source/container/embeddedobjectcontainer.cxx:1198:31 > #45 0x7f2e044c7a1f in SfxObjectShell::SaveAsChildren(SfxMedium&) /sfx2/source/doc/objstor.cxx:3316:38 > #46 0x7f2e044c6d0c in SfxObjectShell::SaveAs(SfxMedium&) /sfx2/source/doc/objstor.cxx:160:12 > #47 0x7f2e0c509471 in sd::DrawDocShell::SaveAs(SfxMedium&) /sd/source/ui/docshell/docshel4.cxx:602:33 > #48 0x7f2e0453a4ec in SfxObjectShell::SaveAsOwnFormat(SfxMedium&) /sfx2/source/doc/objstor.cxx:3256:16 > #49 0x7f2e0c513d7d in sd::DrawDocShell::SaveAsOwnFormat(SfxMedium&) /sd/source/ui/docshell/docshel4.cxx:924:28 > #50 0x7f2e044f8b0c in SfxObjectShell::SaveTo_Impl(SfxMedium&, SfxItemSet const*) /sfx2/source/doc/objstor.cxx:1457:23 > #51 0x7f2e04534ef5 in SfxObjectShell::PreDoSaveAs_Impl(rtl::OUString const&, rtl::OUString const&, SfxItemSet const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /sfx2/source/doc/objstor.cxx:2993:39 > #52 0x7f2e0452c40c in SfxObjectShell::CommonSaveAs_Impl(INetURLObject const&, rtl::OUString const&, SfxItemSet&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /sfx2/source/doc/objstor.cxx:2783:9 > #53 0x7f2e04486556 in SfxObjectShell::APISaveAs_Impl(std::basic_string_view<char16_t, std::char_traits<char16_t> >, SfxItemSet&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /sfx2/source/doc/objserv.cxx:319:19 > #54 0x7f2e046d7afe in SfxBaseModel::impl_store(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, bool) /sfx2/source/doc/sfxbasemodel.cxx:3151:42 > #55 0x7f2e046de8db in SfxBaseModel::storeToURL(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /sfx2/source/doc/sfxbasemodel.cxx:1785:13 > #56 0x7f2dff75b078 in UnoApiTest::save(rtl::OUString const&, char const*) /test/source/unoapi_test.cxx:174:16 > #57 0x7f2e63063d61 in Chart2GeometryTest::testTdf128345Legend_CS_TG_axial_import() /chart2/qa/extras/chart2geometry.cxx:322:5 (<>https://ci.libreoffice.org//job/lo_ubsan/2766/) Change-Id: I72650fba2ee7ba339ec78d24dd690487c31e2600 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151495 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]>
Similar to <https://gerrit.libreoffice.org/c/core/+/151495> "Avoid division by zero", CppunitTest_sw_ooxmlexport7 CPPUNIT_TEST_NAME=testFdo78957::TestBody started to fail with > drawinglayer/source/texture/texture.cxx:470:71: runtime error: division by zero > #0 in drawinglayer::texture::GeoTexSvxGradientRadial::appendTransformationsAndColors(std::function<void (basegfx::B2DHomMatrix const&, basegfx::BColor const&)>) at drawinglayer/source/texture/texture.cxx:470:71 > #1 in drawinglayer::primitive2d::FillGradientPrimitive2D::generateMatricesAndColors(std::function<void (basegfx::B2DHomMatrix const&, basegfx::BColor const&)>) const at drawinglayer/source/primitive2d/fillgradientprimitive2d.cxx:99:31 > #2 in drawinglayer::processor2d::VclPixelProcessor2D::processFillGradientPrimitive2D(drawinglayer::primitive2d::FillGradientPrimitive2D const&) at drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:1017:24 > #3 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:363:13 > #4 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:68:21 > #5 in drawinglayer::processor2d::VclProcessor2D::RenderMaskPrimitive2DPixel(drawinglayer::primitive2d::MaskPrimitive2D const&) at drawinglayer/source/processor2d/vclprocessor2d.cxx:866:9 > #6 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:257:13 > #7 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:68:21 > #8 in drawinglayer::processor2d::BaseProcessor2D::visit(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:56:13 > #9 in drawinglayer::primitive2d::BufferedDecompositionPrimitive2D::get2DDecomposition(drawinglayer::primitive2d::Primitive2DDecompositionVisitor&, drawinglayer::geometry::ViewInformation2D const&) const at drawinglayer/source/primitive2d/BufferedDecompositionPrimitive2D.cxx:41:14 > #10 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:46:24 > #11 in drawinglayer::processor2d::VclPixelProcessor2D::processPolyPolygonGradientPrimitive2D(drawinglayer::primitive2d::PolyPolygonGradientPrimitive2D const&) at drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:490:9 > #12 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:232:13 > #13 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:68:21 > #14 in drawinglayer::processor2d::BaseProcessor2D::visit(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:56:13 > #15 in drawinglayer::primitive2d::BufferedDecompositionPrimitive2D::get2DDecomposition(drawinglayer::primitive2d::Primitive2DDecompositionVisitor&, drawinglayer::geometry::ViewInformation2D const&) const at drawinglayer/source/primitive2d/BufferedDecompositionPrimitive2D.cxx:41:14 > #16 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:46:24 > #17 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:378:13 > #18 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:68:21 > #19 in drawinglayer::processor2d::BaseProcessor2D::visit(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:56:13 > #20 in drawinglayer::primitive2d::BufferedDecompositionPrimitive2D::get2DDecomposition(drawinglayer::primitive2d::Primitive2DDecompositionVisitor&, drawinglayer::geometry::ViewInformation2D const&) const at drawinglayer/source/primitive2d/BufferedDecompositionPrimitive2D.cxx:41:14 > #21 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:46:24 > #22 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:378:13 > #23 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:68:21 > #24 in drawinglayer::processor2d::BaseProcessor2D::visit(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:56:13 > #25 in drawinglayer::primitive2d::GroupPrimitive2D::getChildren(drawinglayer::primitive2d::Primitive2DDecompositionVisitor&) const at include/drawinglayer/primitive2d/groupprimitive2d.hxx:76:90 > #26 in drawinglayer::primitive2d::GroupPrimitive2D::get2DDecomposition(drawinglayer::primitive2d::Primitive2DDecompositionVisitor&, drawinglayer::geometry::ViewInformation2D const&) const at drawinglayer/source/primitive2d/groupprimitive2d.cxx:53:13 > #27 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:46:24 > #28 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:378:13 > #29 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:68:21 > #30 in drawinglayer::processor2d::VclProcessor2D::RenderTransformPrimitive2D(drawinglayer::primitive2d::TransformPrimitive2D const&) at drawinglayer/source/processor2d/vclprocessor2d.cxx:1004:5 > #31 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:284:13 > #32 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:68:21 > #33 in drawinglayer::processor2d::VclProcessor2D::RenderTransformPrimitive2D(drawinglayer::primitive2d::TransformPrimitive2D const&) at drawinglayer/source/processor2d/vclprocessor2d.cxx:1004:5 > #34 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:284:13 > #35 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:68:21 > #36 in drawinglayer::processor2d::VclProcessor2D::RenderTransformPrimitive2D(drawinglayer::primitive2d::TransformPrimitive2D const&) at drawinglayer/source/processor2d/vclprocessor2d.cxx:1004:5 > #37 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) at drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:284:13 > #38 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) at drawinglayer/source/processor2d/baseprocessor2d.cxx:68:21 > #39 in drawinglayer::convertToBitmapEx(drawinglayer::primitive2d::Primitive2DContainer&&, drawinglayer::geometry::ViewInformation2D const&, unsigned int, unsigned int, unsigned int) at drawinglayer/source/tools/converters.cxx:217:24 > #40 in drawinglayer::convertPrimitive2DContainerToBitmapEx(drawinglayer::primitive2d::Primitive2DContainer&&, basegfx::B2DRange const&, unsigned int, o3tl::Length, std::optional<Size> const&) at drawinglayer/source/tools/converters.cxx:332:28 > #41 in SvxShape::GetBitmap(bool) const at svx/source/unodraw/unoshape.cxx:717:21 > #42 in SvxShape::getPropertyValueImpl(rtl::OUString const&, SfxItemPropertyMapEntry const*, com::sun::star::uno::Any&) at svx/source/unodraw/unoshape.cxx:2597:18 > #43 in SvxCustomShape::getPropertyValueImpl(rtl::OUString const&, SfxItemPropertyMapEntry const*, com::sun::star::uno::Any&) at svx/source/unodraw/unoshap2.cxx:1780:26 > #44 in SvxShape::_getPropertyValue(rtl::OUString const&) at svx/source/unodraw/unoshape.cxx:1638:14 > #45 in SvxShape::getPropertyValue(rtl::OUString const&) at svx/source/unodraw/unoshape.cxx:1622:16 > #46 in non-virtual thunk to SvxShape::getPropertyValue(rtl::OUString const&) at svx/source/unodraw/unoshape.cxx > #47 in SwXShape::_getPropAtAggrObj(rtl::OUString const&) at sw/source/core/unocore/unodraw.cxx:1823:23 > #48 in SwXShape::getPropertyValue(rtl::OUString const&) at sw/source/core/unocore/unodraw.cxx:1753:20 > #49 in non-virtual thunk to SwXShape::getPropertyValue(rtl::OUString const&) at sw/source/core/unocore/unodraw.cxx > #50 in writerfilter::TagLogger::unoPropertySet(com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> const&) at writerfilter/source/dmapper/TagLogger.cxx:123:47 > #51 in writerfilter::dmapper::DomainMapper_Impl::PushShapeContext(com::sun::star::uno::Reference<com::sun::star::drawing::XShape> const&) at writerfilter/source/dmapper/DomainMapper_Impl.cxx:4204:38 > #52 in writerfilter::dmapper::DomainMapper::lcl_startShape(com::sun::star::uno::Reference<com::sun::star::drawing::XShape> const&) at writerfilter/source/dmapper/DomainMapper.cxx:3680:18 > #53 in writerfilter::LoggedStream::startShape(com::sun::star::uno::Reference<com::sun::star::drawing::XShape> const&) at writerfilter/source/dmapper/LoggedResources.cxx:139:5 > #54 in writerfilter::ooxml::OOXMLFastContextHandlerShape::sendShape(int) at writerfilter/source/ooxml/OOXMLFastContextHandler.cxx:1810:19 > #55 in writerfilter::ooxml::OOXMLFastContextHandlerShape::lcl_endFastElement(int) at writerfilter/source/ooxml/OOXMLFastContextHandler.cxx:1829:9 > #56 in writerfilter::ooxml::OOXMLFastContextHandler::endFastElement(int) at writerfilter/source/ooxml/OOXMLFastContextHandler.cxx:223:9 > #57 in (anonymous namespace)::Entity::endElement() at sax/source/fastparser/fastparser.cxx:515:27 > #58 in sax_fastparser::FastSaxParserImpl::callbackEndElement() at sax/source/fastparser/fastparser.cxx:1330:17 > #59 in (anonymous namespace)::call_callbackEndElement(void*, unsigned char const*, unsigned char const*, unsigned char const*) at sax/source/fastparser/fastparser.cxx:339:18 > #60 in xmlParseEndTag2 at workdir/UnpackedTarball/libxml2/parser.c:9742:2 > #61 in xmlParseTryOrFinish at workdir/UnpackedTarball/libxml2/parser.c:11642:14 > #62 in xmlParseChunk at workdir/UnpackedTarball/libxml2/parser.c:12351:13 > #63 in sax_fastparser::FastSaxParserImpl::parse() at sax/source/fastparser/fastparser.cxx:1111:25 > #64 in sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) at sax/source/fastparser/fastparser.cxx:891:9 > #65 in sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) at sax/source/fastparser/fastparser.cxx:1469:13 > #66 in writerfilter::ooxml::OOXMLDocumentImpl::resolve(writerfilter::Stream&) at writerfilter/source/ooxml/OOXMLDocumentImpl.cxx:515:18 > #67 in writerfilter::dmapper::DomainMapper_Impl::substream(unsigned int, tools::SvRef<writerfilter::Reference<writerfilter::Stream>> const&) at writerfilter/source/dmapper/DomainMapper_Impl.cxx:9143:14 > #68 in writerfilter::dmapper::DomainMapper::lcl_substream(unsigned int, tools::SvRef<writerfilter::Reference<writerfilter::Stream>>) at writerfilter/source/dmapper/DomainMapper.cxx:4390:14 > #69 in writerfilter::LoggedStream::substream(unsigned int, tools::SvRef<writerfilter::Reference<writerfilter::Stream>>) at writerfilter/source/dmapper/LoggedResources.cxx:272:5 > #70 in writerfilter::ooxml::OOXMLDocumentImpl::resolveFastSubStreamWithId(writerfilter::Stream&, tools::SvRef<writerfilter::Reference<writerfilter::Stream>> const&, unsigned int) at writerfilter/source/ooxml/OOXMLDocumentImpl.cxx:126:13 > #71 in writerfilter::ooxml::OOXMLDocumentImpl::resolveHeader(writerfilter::Stream&, int, rtl::OUString const&) at writerfilter/source/ooxml/OOXMLDocumentImpl.cxx:385:10 > #72 in writerfilter::ooxml::OOXMLFastContextHandler::resolveHeader(int, rtl::OUString const&) at writerfilter/source/ooxml/OOXMLFastContextHandler.cxx:888:35 > #73 in writerfilter::ooxml::OOXMLHeaderHandler::finalize() at writerfilter/source/ooxml/Handler.cxx:214:20 > #74 in writerfilter::ooxml::OOXMLFastContextHandlerProperties::handleHdrFtr() at writerfilter/source/ooxml/OOXMLFastContextHandler.cxx:1113:28 > #75 in writerfilter::ooxml::OOXMLFactory_wml::endAction(writerfilter::ooxml::OOXMLFastContextHandler*) at workdir/CustomTarget/writerfilter/source/ooxml/OOXMLFactory_wml.cxx:7482:26 > #76 in writerfilter::ooxml::OOXMLFactory::endAction(writerfilter::ooxml::OOXMLFastContextHandler*) at writerfilter/source/ooxml/OOXMLFactory.cxx:157:19 > #77 in writerfilter::ooxml::OOXMLFastContextHandler::endAction() at writerfilter/source/ooxml/OOXMLFastContextHandler.cxx:316:5 > #78 in writerfilter::ooxml::OOXMLFastContextHandlerProperties::lcl_endFastElement(int) at writerfilter/source/ooxml/OOXMLFastContextHandler.cxx:1034:9 > #79 in writerfilter::ooxml::OOXMLFastContextHandler::endFastElement(int) at writerfilter/source/ooxml/OOXMLFastContextHandler.cxx:223:9 > #80 in (anonymous namespace)::Entity::endElement() at sax/source/fastparser/fastparser.cxx:515:27 > #81 in sax_fastparser::FastSaxParserImpl::callbackEndElement() at sax/source/fastparser/fastparser.cxx:1330:17 > #82 in (anonymous namespace)::call_callbackEndElement(void*, unsigned char const*, unsigned char const*, unsigned char const*) at sax/source/fastparser/fastparser.cxx:339:18 > #83 in xmlParseTryOrFinish at workdir/UnpackedTarball/libxml2/parser.c:11493:8 > #84 in xmlParseChunk at workdir/UnpackedTarball/libxml2/parser.c:12351:13 > #85 in sax_fastparser::FastSaxParserImpl::parse() at sax/source/fastparser/fastparser.cxx:1086:21 > #86 in sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) at sax/source/fastparser/fastparser.cxx:891:9 > #87 in sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) at sax/source/fastparser/fastparser.cxx:1469:13 > #88 in writerfilter::ooxml::OOXMLDocumentImpl::resolve(writerfilter::Stream&) at writerfilter/source/ooxml/OOXMLDocumentImpl.cxx:515:18 > #89 in (anonymous namespace)::WriterFilter::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at writerfilter/source/filter/WriterFilter.cxx:208:24 > #90 in SfxObjectShell::ImportFrom(SfxMedium&, com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&) at sfx2/source/doc/objstor.cxx:2272:34 > #91 in SfxObjectShell::DoLoad(SfxMedium*) at sfx2/source/doc/objstor.cxx:739:23 > #92 in SfxBaseModel::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/sfxbasemodel.cxx:1940:36 > #93 in (anonymous namespace)::SfxFrameLoader_Impl::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) at sfx2/source/view/frmload.cxx:720:28 > #94 in framework::LoadEnv::impl_loadContent() at framework/source/loadenv/loadenv.cxx:1176:37 > #95 in framework::LoadEnv::start() at framework/source/loadenv/loadenv.cxx:412:20 > #96 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:308:5 > #97 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:168:14 > #98 in framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/services/desktop.cxx:593:16 > #99 in non-virtual thunk to framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/services/desktop.cxx > #100 in unotest::MacrosTest::loadFromDesktop(rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at unotest/source/cpp/macros_test.cxx:71:62 > #101 in UnoApiTest::load(rtl::OUString const&, char const*) at test/source/unoapi_test.cxx:115:11 > #102 in SwModelTestBase::loadURL(rtl::OUString const&, char const*, char const*) at sw/qa/unit/swmodeltestbase.cxx:470:20 > #103 in SwModelTestBase::load(char const*, char const*) at sw/qa/inc/swmodeltestbase.hxx:353:16 > #104 in SwModelTestBase::loadAndSave(char const*) at sw/qa/unit/swmodeltestbase.cxx:523:5 > #105 in testFdo78957::TestBody() at sw/qa/extras/ooxmlexport/ooxmlexport7.cxx:783:5 Change-Id: Ifbc7da0b6c971df61e9908cc02b10a9f50769fcf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151496 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]>
Since commit b6bcc7a (tdf#166871: drop mnMaxParaPerPage hack, 2025-06-07), an assertion fails in some cases (see https://gerrit.libreoffice.org/c/core/+/186243/3#message-edb2ace35947927748d0bd37a36d95f2ddf67217 ). The call stack is: #19 __assert_fail in /lib64/libc.so.6 #20 FindFrameInBody(SwAnchoredObject const&) at /home/caolan/LibreOffice/core/sw/source/core/layout/objectformattertxtfrm.cxx:605 #21 SwObjectFormatterTextFrame::CheckMovedFwdCondition(SwAnchoredObject&, SwPageFrame const&, bool, unsigned int&, bool&, bool&) at /home/caolan/LibreOffice/core/sw/source/core/layout/objectformattertxtfrm.cxx:723 (discriminator 1) #22 SwFlyAtContentFrame::MakeAll(OutputDevice*) at /home/caolan/LibreOffice/core/sw/source/core/layout/flycnt.cxx:448 (discriminator 1) #23 SwFrame::PrepareMake(OutputDevice*) at /home/caolan/LibreOffice/core/sw/source/core/layout/calcmove.cxx:397 #24 SwFrame::Calc(OutputDevice*) const at /home/caolan/LibreOffice/core/sw/source/core/layout/trvlfrm.cxx:1858 #25 SwFlyFrame::Calc(OutputDevice*) const at /home/caolan/LibreOffice/core/sw/source/core/layout/fly.cxx:3441 #26 SwObjectFormatter::FormatLayout_(SwLayoutFrame&) at /home/caolan/LibreOffice/core/sw/source/core/layout/objectformatter.cxx:210 The problem is, that some frames don't get their flags invalidated on move, and then use some flag state possibly calculated outside of layout. E.g., creation of table in InsertCnt_ would add cells and insert their content in SwCellFrame ctor; during that, the cell has no upper, and any attempt of a lower to calculate its inf flags would set mbInfBody to false. In SwFlowFrame::PasteTree, pStart may also have inf flags inconsistent with the target position. This change makes SwFrame::InvalidateInfFlags also invalidate these flags in lowers (for layout frames), because obviously, when upper neest to update the flags, so should do lowers. This is similar to what was done in lcl_InvalidateInfFlags, which got simplified. Change-Id: Ic4898791bacef46415985b43f44fddfd533051f2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187240 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> (cherry picked from commit 6a98a6f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187259 Reviewed-by: Xisco Fauli <[email protected]>
Since commit b6bcc7a (tdf#166871: drop mnMaxParaPerPage hack, 2025-06-07), an assertion fails in some cases (see https://gerrit.libreoffice.org/c/core/+/186243/3#message-edb2ace35947927748d0bd37a36d95f2ddf67217 ). The call stack is: #19 __assert_fail in /lib64/libc.so.6 #20 FindFrameInBody(SwAnchoredObject const&) at /home/caolan/LibreOffice/core/sw/source/core/layout/objectformattertxtfrm.cxx:605 #21 SwObjectFormatterTextFrame::CheckMovedFwdCondition(SwAnchoredObject&, SwPageFrame const&, bool, unsigned int&, bool&, bool&) at /home/caolan/LibreOffice/core/sw/source/core/layout/objectformattertxtfrm.cxx:723 (discriminator 1) #22 SwFlyAtContentFrame::MakeAll(OutputDevice*) at /home/caolan/LibreOffice/core/sw/source/core/layout/flycnt.cxx:448 (discriminator 1) #23 SwFrame::PrepareMake(OutputDevice*) at /home/caolan/LibreOffice/core/sw/source/core/layout/calcmove.cxx:397 #24 SwFrame::Calc(OutputDevice*) const at /home/caolan/LibreOffice/core/sw/source/core/layout/trvlfrm.cxx:1858 #25 SwFlyFrame::Calc(OutputDevice*) const at /home/caolan/LibreOffice/core/sw/source/core/layout/fly.cxx:3441 #26 SwObjectFormatter::FormatLayout_(SwLayoutFrame&) at /home/caolan/LibreOffice/core/sw/source/core/layout/objectformatter.cxx:210 The problem is, that some frames don't get their flags invalidated on move, and then use some flag state possibly calculated outside of layout. E.g., creation of table in InsertCnt_ would add cells and insert their content in SwCellFrame ctor; during that, the cell has no upper, and any attempt of a lower to calculate its inf flags would set mbInfBody to false. In SwFlowFrame::PasteTree, pStart may also have inf flags inconsistent with the target position. This change makes SwFrame::InvalidateInfFlags also invalidate these flags in lowers (for layout frames), because obviously, when upper neest to update the flags, so should do lowers. This is similar to what was done in lcl_InvalidateInfFlags, which got simplified. Change-Id: Ic4898791bacef46415985b43f44fddfd533051f2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187240 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> (cherry picked from commit 6a98a6f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187259 Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit 8921083) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187261
Since
commit 380bd85
Date: Tue Jun 24 11:21:04 2025 +0200
[API CHANGE] remove css::drawing::framework::XView
, starting an Impress presentation in a dual screen setup
with presenter console enabled, then existing the presentation
resulted in a deadlock with the below backtrace, because
WeakComponentImplHelperBase::dispose (frame 9)
locks the base class's UnoImplBase::m_aMutex and then
sdext::presenter::PresenterSlideShowView::disposing (frame 8)
tries to lock it again.
Use the existing lock passed as a method param and pass it
down to the called methods instead. Add an assert
it is actually a lock for the correct mutex.
#0 futex_wait (futex_word=0x55555d5afb70, expected=2, private=0) at ../sysdeps/nptl/futex-internal.h:146
#1 __GI___lll_lock_wait (futex=futex@entry=0x55555d5afb70, private=0) at ./nptl/lowlevellock.c:49
#2 0x00007ffff789ff72 in lll_mutex_lock_optimized (mutex=0x55555d5afb70) at ./nptl/pthread_mutex_lock.c:48
#3 ___pthread_mutex_lock (mutex=0x55555d5afb70) at ./nptl/pthread_mutex_lock.c:93
#4 0x00007fffc768849f in __gthread_mutex_lock (__mutex=0x55555d5afb70) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/x86_64-linux-gnu/c++/14/bits/gthr-default.h:762
#5 0x00007fffc7693185 in std::mutex::lock (this=0x55555d5afb70) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_mutex.h:113
#6 0x00007fffc7693154 in std::unique_lock<std::mutex>::lock (this=0x7fffffff8838) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_lock.h:147
#7 0x00007fffc768b068 in std::unique_lock<std::mutex>::unique_lock (this=0x7fffffff8838, __m=...) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_lock.h:73
#8 0x00007fffc76f408c in sdext::presenter::PresenterSlideShowView::disposing (this=0x55555d5afa10) at /home/michi/development/git/libreoffice/sd/source/console/PresenterSlideShowView.cxx:186
#9 0x00007ffff6134bb0 in comphelper::WeakComponentImplHelperBase::dispose (this=0x55555d5afa10) at /home/michi/development/git/libreoffice/comphelper/source/misc/compbase.cxx:26
#10 0x00007fffc76a4885 in comphelper::WeakComponentImplHelper<>::dispose() (this=0x55555d5afa10) at include/comphelper/compbase.hxx:78
#11 0x00007fffc7783b71 in sdext::presenter::PresenterViewFactory::releaseResource (this=0x55555d649400, rxView=rtl::Reference to 0x55555d5afa10) at /home/michi/development/git/libreoffice/sd/source/console/PresenterViewFactory.cxx:229
#12 0x00007fffbb192dec in sd::framework::ConfigurationControllerResourceManager::DeactivateResource (this=0x555557655ca0, rxResourceId=rtl::Reference to 0x55555d6492f0, rxConfiguration=rtl::Reference to 0x555556a598e0)
at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx:203
#13 0x00007fffbb193814 in sd::framework::ConfigurationControllerResourceManager::DeactivateResources(std::__debug::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > > const&, rtl::Reference<sd::framework::Configuration> const&)::$_0::operator()(rtl::Reference<sd::framework::ResourceId> const&) const (this=0x7fffffff9290, xResource=rtl::Reference to 0x55555d6492f0)
at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx:90
#14 0x00007fffbb192a9b in std::for_each<std::reverse_iterator<__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<rtl::Reference<sd::framework::ResourceId> const*, std::__cxx1998::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > > >, std::__debug::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > >, std::random_access_iterator_tag> >, sd::framework::ConfigurationControllerResourceManager::DeactivateResources(std::__debug::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > > const&, rtl::Reference<sd::framework::Configuration> const&)::$_0>(std::reverse_iterator<__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<rtl::Reference<sd::framework::ResourceId> const*, std::__cxx1998::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > > >, std::__debug::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > >, std::random_access_iterator_tag> >, std::reverse_iterator<__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<rtl::Reference<sd::framework::ResourceId> const*, std::__cxx1998::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > > >, std::__debug::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > >, std::random_access_iterator_tag> >, sd::framework::ConfigurationControllerResourceManager::DeactivateResources(std::__debug::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > > const&, rtl::Reference<sd::framework::Configuration> const&)::$_0) (__first=..., __last=..., __f=...)
at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/stl_algo.h:3786
#15 0x00007fffbb192844 in sd::framework::ConfigurationControllerResourceManager::DeactivateResources
(this=0x555557655ca0, rResources=std::__debug::vector of length 7, capacity 7 = {...}, rxConfiguration=rtl::Reference to 0x555556a598e0)
at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx:86
#16 0x00007fffbb19a50e in sd::framework::ConfigurationUpdater::UpdateCore (this=0x555557657360, rClassifier=...) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:250
#17 0x00007fffbb199afc in sd::framework::ConfigurationUpdater::UpdateConfiguration (this=0x555557657360) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:161
#18 0x00007fffbb19957b in sd::framework::ConfigurationUpdater::RequestUpdate (this=0x555557657360, rxRequestedConfiguration=rtl::Reference to 0x555556a5a320)
at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:108
#19 0x00007fffbb16d349 in sd::framework::ChangeRequestQueueProcessor::ProcessOneEvent (this=0x555557657f30) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ChangeRequestQueueProcessor.cxx:158
#20 0x00007fffbb16cd9f in sd::framework::ChangeRequestQueueProcessor::ProcessEvent (this=0x555557657f30) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ChangeRequestQueueProcessor.cxx:115
#21 0x00007fffbb16cd4d in sd::framework::ChangeRequestQueueProcessor::LinkStubProcessEvent (instance=0x555557657f30, data=0x0)
at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ChangeRequestQueueProcessor.cxx:109
#22 0x00007fffee275c21 in Link<void*, void>::Call (this=0x55555880a688, data=0x0) at include/tools/link.hxx:105
#23 0x00007fffee271e51 in ImplHandleUserEvent (pSVEvent=0x55555880a680) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2285
#24 0x00007fffee26ed7f in ImplWindowFrameProc (_pWindow=0x5555569e6b00, nEvent=SalEvent::UserEvent, pEvent=0x55555880a680) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2849
#25 0x00007fffeee478bc in SalFrame::CallCallback (this=0x55555688b5d0, nEvent=SalEvent::UserEvent, pEvent=0x55555880a680) at vcl/inc/salframe.hxx:310
#26 0x00007fffeee7021f in SalGenericDisplay::ProcessEvent (this=0x5555568a4060, aEvent=...) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:66
#27 0x00007fffee97bd7d in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7fffffffb920) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
#28 0x00007fffee97bc4b in SalUserEventList::DispatchUserEvents (this=0x5555568a4060, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
#29 0x00007fffeee70175 in SalGenericDisplay::DispatchInternalEvent (this=0x5555568a4060, bHandleAllCurrentEvent=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:51
#30 0x00007fffe628460f in call_userEventFn (data=0x5555555b3ab0) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkdata.cxx:825
#31 0x00007fffe99043c5 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007fffe99065f7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007fffe9906d60 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#34 0x00007fffe628328c in GtkSalData::Yield (this=0x5555555b3ab0, bWait=true, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkdata.cxx:403
#35 0x00007fffe6288333 in GtkInstance::DoYield (this=0x5555555b3960, bWait=true, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:439
#36 0x00007fffeea47b16 in ImplYield (i_bWait=true, i_bAllEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:385
#37 0x00007fffeea4742f in Application::Yield () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:488
#38 0x00007fffeea47210 in Application::Execute () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:360
#39 0x00007ffff7b297a5 in desktop::Desktop::Main (this=0x7fffffffd660) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1678
#40 0x00007fffeea71846 in ImplSVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:230
#41 0x00007fffeea73339 in SVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:248
#42 0x00007ffff7ba40ba in soffice_main () at /home/michi/development/git/libreoffice/desktop/source/app/sofficemain.cxx:122
#43 0x00005555555559fd in sal_main () at /home/michi/development/git/libreoffice/desktop/source/app/main.c:51
#44 0x00005555555559d7 in main (argc=2, argv=0x7fffffffd868) at /home/michi/development/git/libreoffice/desktop/source/app/main.c:49
Change-Id: I2f0cc4db777c3e6e2db3d2ec7756bc89f43f0093
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187436
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <[email protected]>
Since commit b6bcc7a (tdf#166871: drop mnMaxParaPerPage hack, 2025-06-07), an assertion fails in some cases (see https://gerrit.libreoffice.org/c/core/+/186243/3#message-edb2ace35947927748d0bd37a36d95f2ddf67217 ). The call stack is: #19 __assert_fail in /lib64/libc.so.6 #20 FindFrameInBody(SwAnchoredObject const&) at /home/caolan/LibreOffice/core/sw/source/core/layout/objectformattertxtfrm.cxx:605 #21 SwObjectFormatterTextFrame::CheckMovedFwdCondition(SwAnchoredObject&, SwPageFrame const&, bool, unsigned int&, bool&, bool&) at /home/caolan/LibreOffice/core/sw/source/core/layout/objectformattertxtfrm.cxx:723 (discriminator 1) #22 SwFlyAtContentFrame::MakeAll(OutputDevice*) at /home/caolan/LibreOffice/core/sw/source/core/layout/flycnt.cxx:448 (discriminator 1) #23 SwFrame::PrepareMake(OutputDevice*) at /home/caolan/LibreOffice/core/sw/source/core/layout/calcmove.cxx:397 #24 SwFrame::Calc(OutputDevice*) const at /home/caolan/LibreOffice/core/sw/source/core/layout/trvlfrm.cxx:1858 #25 SwFlyFrame::Calc(OutputDevice*) const at /home/caolan/LibreOffice/core/sw/source/core/layout/fly.cxx:3441 #26 SwObjectFormatter::FormatLayout_(SwLayoutFrame&) at /home/caolan/LibreOffice/core/sw/source/core/layout/objectformatter.cxx:210 The problem is, that some frames don't get their flags invalidated on move, and then use some flag state possibly calculated outside of layout. E.g., creation of table in InsertCnt_ would add cells and insert their content in SwCellFrame ctor; during that, the cell has no upper, and any attempt of a lower to calculate its inf flags would set mbInfBody to false. In SwFlowFrame::PasteTree, pStart may also have inf flags inconsistent with the target position. This change makes SwFrame::InvalidateInfFlags also invalidate these flags in lowers (for layout frames), because obviously, when upper neest to update the flags, so should do lowers. This is similar to what was done in lcl_InvalidateInfFlags, which got simplified. Change-Id: Ic4898791bacef46415985b43f44fddfd533051f2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187240 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> (cherry picked from commit 6a98a6f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187259 Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit 8921083) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187261 (cherry picked from commit 09d3416) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187315 Reviewed-by: Ilmari Lauhakangas <[email protected]> Reviewed-by: Christian Lohmaier <[email protected]> Tested-by: Christian Lohmaier <[email protected]>
Since commit b6bcc7a (tdf#166871: drop mnMaxParaPerPage hack, 2025-06-07), an assertion fails in some cases (see https://gerrit.libreoffice.org/c/core/+/186243/3#message-edb2ace35947927748d0bd37a36d95f2ddf67217 ). The call stack is: #19 __assert_fail in /lib64/libc.so.6 #20 FindFrameInBody(SwAnchoredObject const&) at /home/caolan/LibreOffice/core/sw/source/core/layout/objectformattertxtfrm.cxx:605 #21 SwObjectFormatterTextFrame::CheckMovedFwdCondition(SwAnchoredObject&, SwPageFrame const&, bool, unsigned int&, bool&, bool&) at /home/caolan/LibreOffice/core/sw/source/core/layout/objectformattertxtfrm.cxx:723 (discriminator 1) #22 SwFlyAtContentFrame::MakeAll(OutputDevice*) at /home/caolan/LibreOffice/core/sw/source/core/layout/flycnt.cxx:448 (discriminator 1) #23 SwFrame::PrepareMake(OutputDevice*) at /home/caolan/LibreOffice/core/sw/source/core/layout/calcmove.cxx:397 #24 SwFrame::Calc(OutputDevice*) const at /home/caolan/LibreOffice/core/sw/source/core/layout/trvlfrm.cxx:1858 #25 SwFlyFrame::Calc(OutputDevice*) const at /home/caolan/LibreOffice/core/sw/source/core/layout/fly.cxx:3441 #26 SwObjectFormatter::FormatLayout_(SwLayoutFrame&) at /home/caolan/LibreOffice/core/sw/source/core/layout/objectformatter.cxx:210 The problem is, that some frames don't get their flags invalidated on move, and then use some flag state possibly calculated outside of layout. E.g., creation of table in InsertCnt_ would add cells and insert their content in SwCellFrame ctor; during that, the cell has no upper, and any attempt of a lower to calculate its inf flags would set mbInfBody to false. In SwFlowFrame::PasteTree, pStart may also have inf flags inconsistent with the target position. This change makes SwFrame::InvalidateInfFlags also invalidate these flags in lowers (for layout frames), because obviously, when upper neest to update the flags, so should do lowers. This is similar to what was done in lcl_InvalidateInfFlags, which got simplified. Change-Id: Ic4898791bacef46415985b43f44fddfd533051f2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187240 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> (cherry picked from commit 6a98a6f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187259 Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit 8921083) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187261
At least with one ASan/UBSan setup of mine using LODE's Clang 12.0.1, ./autogen.sh would occasionally detect -std=gnu11 as the required CC "option to enable C11 features" (which would in turn cause building external/firebird to fail oddly; an issue worth investigations of its own), because Clang would occasionally crash with a SEGV on the corresponding configure test program's first invocation (without -std=gnu11) when invoked with -O2 (and happen to succeed on second invocation with -std=gnu11, so configure thinks that's needed), see below for a relevant config.log excerpt. When CC/CXX are already set (as is the case in this scenario), we could arguably skip the AC_PROG_CC/CXX checks entirely (and thus avoid configure potentially adding -std=gnu11 to CC), but at least AC_PROG_CC also internally sets the GCC shell var, which we use in configure.ac. So better be conservative and just avoid -O2 during AC_PROG_CC/CXX (whatever the autoconf motivation to include it in the first place). > configure:8165: checking for /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=local-bounds -fsanitize-blacklist=/home/sberg/lo0/core/sanitize-ubsan-excludelist option to enable C11 features > configure:8180: /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=local-bounds -fsanitize-blacklist=/home/sberg/lo0/core/sanitize-ubsan-excludelist -c -g -O2 conftest.c >&5 > PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script. > Stack dump: > 0. Program arguments: /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=local-bounds -fsanitize-blacklist=/home/sberg/lo0/core/sanitize-ubsan-excludelist -c -g -O2 conftest.c > 1. <eof> parser at end of file > 2. Code generation > #0 0x000055f3a890caf2 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1c3eaf2) > #1 0x000055f3a890a734 llvm::sys::RunSignalHandlers() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1c3c734) > #2 0x000055f3a887b998 CrashRecoverySignalHandler(int) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1bad998) > #3 0x00007f750d24e520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520) > #4 0x000055f3a93f9cd4 llvm::DIE::getUnitDie() const (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x272bcd4) > #5 0x000055f3a9404574 llvm::DwarfDebug::finishEntityDefinitions() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2736574) > #6 0x000055f3a941df99 llvm::DwarfDebug::finalizeModuleInfo() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x274ff99) > #7 0x000055f3a9421128 llvm::DwarfDebug::endModule() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2753128) > #8 0x000055f3a93f1219 llvm::AsmPrinter::doFinalization(llvm::Module&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2723219) > #9 0x000055f3a82478f5 llvm::FPPassManager::doFinalization(llvm::Module&) (.localalias) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x15798f5) > #10 0x000055f3a8253900 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1585900) > #11 0x000055f3a8bb57d3 (anonymous namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (.constprop.0) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1ee77d3) > #12 0x000055f3a8bb76ea clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1ee96ea) > #13 0x000055f3a9825876 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2b57876) > #14 0x000055f3aa35c549 clang::ParseAST(clang::Sema&, bool, bool) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x368e549) > #15 0x000055f3a91ef2d9 clang::FrontendAction::Execute() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x25212d9) > #16 0x000055f3a91903a3 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x24c23a3) > #17 0x000055f3a92a2fd8 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x25d4fd8) > #18 0x000055f3a7798815 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0xaca815) > #19 0x000055f3a77961a7 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0xac81a7) > #20 0x000055f3a9039689 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const::'lambda'()>(long) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x236b689) > #21 0x000055f3a887baa7 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1badaa7) > #22 0x000055f3a903a802 clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const (.part.0) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x236c802) > #23 0x000055f3a900fbec clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2341bec) > #24 0x000055f3a9010679 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2342679) > #25 0x000055f3a901e8f1 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x23508f1) > #26 0x000055f3a7717e6f main (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0xa49e6f) > #27 0x00007f750d235d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90) > #28 0x00007f750d235e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40) > #29 0x000055f3a7795b55 _start (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0xac7b55) > clang-12: error: clang frontend command failed with exit code 139 (use -v to see invocation) > clang version 12.0.1 (https://github.com/llvm/llvm-project.git fed41342a82f5a3a9201819a82bf7a48313e296b) > Target: x86_64-unknown-linux-gnu > Thread model: posix > InstalledDir: /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin > clang-12: note: diagnostic msg: > ******************** > > PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT: > Preprocessed source(s) and associated run script(s) are located at: > clang-12: note: diagnostic msg: /tmp/conftest-968380.c > clang-12: note: diagnostic msg: /tmp/conftest-968380.sh > clang-12: note: diagnostic msg: > > ******************** > configure:8180: $? = 139 > configure: failed program was: > | /* confdefs.h */ > | #define PACKAGE_NAME "LibreOffice" > | #define PACKAGE_TARNAME "libreoffice" > | #define PACKAGE_VERSION "24.8.0.0.alpha0+" > | #define PACKAGE_STRING "LibreOffice 24.8.0.0.alpha0+" > | #define PACKAGE_BUGREPORT "" > | #define PACKAGE_URL "http://documentfoundation.org/" > | #define LIBO_VERSION_MAJOR 24 > | #define LIBO_VERSION_MINOR 8 > | #define LIBO_VERSION_MICRO 0 > | #define LIBO_VERSION_PATCH 0 > | #define LIBO_THIS_YEAR 2024 > | #define SRCDIR "/home/sberg/lo0/core" > | #define SRC_ROOT "/home/sberg/lo0/core" > | #define BUILDDIR "/home/sberg/lo0/core" > | #define USE_HEADLESS_CODE 1 > | #define ENABLE_HEADLESS 1 > | /* end confdefs.h. */ > | > | /* Does the compiler advertise C89 conformance? > | Do not test the value of __STDC__, because some compilers set it to 0 > | while being otherwise adequately conformant. */ > | #if !defined __STDC__ > | # error "Compiler does not advertise C89 conformance" > | #endif > | > | #include <stddef.h> > | #include <stdarg.h> > | struct stat; > | /* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ > | struct buf { int x; }; > | struct buf * (*rcsopen) (struct buf *, struct stat *, int); > | static char *e (p, i) > | char **p; > | int i; > | { > | return p[i]; > | } > | static char *f (char * (*g) (char **, int), char **p, ...) > | { > | char *s; > | va_list v; > | va_start (v,p); > | s = g (p, va_arg (v,int)); > | va_end (v); > | return s; > | } > | > | /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has > | function prototypes and stuff, but not \xHH hex character constants. > | These do not provoke an error unfortunately, instead are silently treated > | as an "x". The following induces an error, until -std is added to get > | proper ANSI mode. Curiously \x00 != x always comes out true, for an > | array size at least. It is necessary to write \x00 == 0 to get something > | that is true only with -std. */ > | int osf4_cc_array ['\x00' == 0 ? 1 : -1]; > | > | /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters > | inside strings and character constants. */ > | #define FOO(x) 'x' > | int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; > | > | int test (int i, double x); > | struct s1 {int (*f) (int a);}; > | struct s2 {int (*f) (double a);}; > | int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), > | int, int); > | > | // Does the compiler advertise C99 conformance? > | #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L > | # error "Compiler does not advertise C99 conformance" > | #endif > | > | #include <stdbool.h> > | extern int puts (const char *); > | extern int printf (const char *, ...); > | extern int dprintf (int, const char *, ...); > | extern void *malloc (size_t); > | > | // Check varargs macros. These examples are taken from C99 6.10.3.5. > | // dprintf is used instead of fprintf to avoid needing to declare > | // FILE and stderr. > | #define debug(...) dprintf (2, __VA_ARGS__) > | #define showlist(...) puts (#__VA_ARGS__) > | #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) > | static void > | test_varargs_macros (void) > | { > | int x = 1234; > | int y = 5678; > | debug ("Flag"); > | debug ("X = %d\n", x); > | showlist (The first, second, and third items.); > | report (x>y, "x is %d but y is %d", x, y); > | } > | > | // Check long long types. > | #define BIG64 18446744073709551615ull > | #define BIG32 4294967295ul > | #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) > | #if !BIG_OK > | #error "your preprocessor is broken" > | #endif > | #if BIG_OK > | #else > | #error "your preprocessor is broken" > | #endif > | static long long int bignum = -9223372036854775807LL; > | static unsigned long long int ubignum = BIG64; > | > | struct incomplete_array > | { > | int datasize; > | double data[]; > | }; > | > | struct named_init { > | int number; > | const wchar_t *name; > | double average; > | }; > | > | typedef const char *ccp; > | > | static inline int > | test_restrict (ccp restrict text) > | { > | // See if C++-style comments work. > | // Iterate through items via the restricted pointer. > | // Also check for declarations in for loops. > | for (unsigned int i = 0; *(text+i) != '\0'; ++i) > | continue; > | return 0; > | } > | > | // Check varargs and va_copy. > | static bool > | test_varargs (const char *format, ...) > | { > | va_list args; > | va_start (args, format); > | va_list args_copy; > | va_copy (args_copy, args); > | > | const char *str = ""; > | int number = 0; > | float fnumber = 0; > | > | while (*format) > | { > | switch (*format++) > | { > | case 's': // string > | str = va_arg (args_copy, const char *); > | break; > | case 'd': // int > | number = va_arg (args_copy, int); > | break; > | case 'f': // float > | fnumber = va_arg (args_copy, double); > | break; > | default: > | break; > | } > | } > | va_end (args_copy); > | va_end (args); > | > | return *str && number && fnumber; > | } > | > | > | // Does the compiler advertise C11 conformance? > | #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L > | # error "Compiler does not advertise C11 conformance" > | #endif > | > | // Check _Alignas. > | char _Alignas (double) aligned_as_double; > | char _Alignas (0) no_special_alignment; > | extern char aligned_as_int; > | char _Alignas (0) _Alignas (int) aligned_as_int; > | > | // Check _Alignof. > | enum > | { > | int_alignment = _Alignof (int), > | int_array_alignment = _Alignof (int[100]), > | char_alignment = _Alignof (char) > | }; > | _Static_assert (0 < -_Alignof (int), "_Alignof is signed"); > | > | // Check _Noreturn. > | int _Noreturn does_not_return (void) { for (;;) continue; } > | > | // Check _Static_assert. > | struct test_static_assert > | { > | int x; > | _Static_assert (sizeof (int) <= sizeof (long int), > | "_Static_assert does not work in struct"); > | long int y; > | }; > | > | // Check UTF-8 literals. > | #define u8 syntax error! > | char const utf8_literal[] = u8"happens to be ASCII" "another string"; > | > | // Check duplicate typedefs. > | typedef long *long_ptr; > | typedef long int *long_ptr; > | typedef long_ptr long_ptr; > | > | // Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. > | struct anonymous > | { > | union { > | struct { int i; int j; }; > | struct { int k; long int l; } w; > | }; > | int m; > | } v1; > | > | > | int > | main (int argc, char **argv) > | { > | int ok = 0; > | > | ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); > | > | > | // Check bool. > | _Bool success = false; > | success |= (argc != 0); > | > | // Check restrict. > | if (test_restrict ("String literal") == 0) > | success = true; > | char *restrict newvar = "Another string"; > | > | // Check varargs. > | success &= test_varargs ("s, d' f .", "string", 65, 34.234); > | test_varargs_macros (); > | > | // Check flexible array members. > | struct incomplete_array *ia = > | malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); > | ia->datasize = 10; > | for (int i = 0; i < ia->datasize; ++i) > | ia->data[i] = i * 1.234; > | > | // Check named initializers. > | struct named_init ni = { > | .number = 34, > | .name = L"Test wide string", > | .average = 543.34343, > | }; > | > | ni.number = 58; > | > | int dynamic_array[ni.number]; > | dynamic_array[0] = argv[0][0]; > | dynamic_array[ni.number - 1] = 543; > | > | // work around unused variable warnings > | ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' > | || dynamic_array[ni.number - 1] != 543); > | > | > | _Static_assert ((offsetof (struct anonymous, i) > | == offsetof (struct anonymous, w.k)), > | "Anonymous union alignment botch"); > | v1.i = 2; > | v1.w.k = 5; > | ok |= v1.i != 5; > | > | return ok; > | } > | > configure:8180: /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=local-bounds -fsanitize-blacklist=/home/sberg/lo0/core/sanitize-ubsan-excludelist -std=gnu11 -c -g -O2 conftest.c >&5 > configure:8180: $? = 0 > configure:8201: result: -std=gnu11 Change-Id: I9122d0d853d0010155d57cb1d1d56f7c453d5208 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165904 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]> (cherry picked from commit 42f6e89) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188097 Tested-by: Stephan Bergmann <[email protected]> Reviewed-by: Stephan Bergmann <[email protected]>
This fixes an assert seen in a WIP branch to support the
"Manage Changes" dialog when the dialog was open in the
previous run when LO crashed, and then restarting LO.
Also add an assert that this is running in the main thread.
Backtrace:
Thread 1 received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
warning: 44 ./nptl/pthread_kill.c: No such file or directory
(rr) bt
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
#1 0x00007fa78409e9ff in __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:89
#2 0x00007fa784049cc2 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3 0x00007fa7840324ac in __GI_abort () at ./stdlib/abort.c:73
#4 0x00007fa784032420 in __assert_fail_base (fmt=<optimized out>, assertion=<optimized out>, file=<optimized out>, line=36, function=<optimized out>) at ./assert/assert.c:118
#5 0x00007fa77b38413c in ImplDbgTestSolarMutex (owned=true) at /home/michi/development/git/libreoffice/vcl/source/app/dbggui.cxx:36
#6 0x00007fa78252be74 in DbgTestSolarMutex (owned=true) at /home/michi/development/git/libreoffice/tools/source/debug/debug.cxx:54
#7 0x00007fa77ac6732b in vcl::WindowOutputDevice::AcquireGraphics (this=0x55f164887f80) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:819
#8 0x00007fa77ae68d7b in OutputDevice::ImplIsAntiparallel (this=0x55f164887f80) at /home/michi/development/git/libreoffice/vcl/source/outdev/outdev.cxx:614
#9 0x00007fa77aba212f in vcl::Window::GetPointerPosPixel (this=0x55f167b88570) at /home/michi/development/git/libreoffice/vcl/source/window/mouse.cxx:548
#10 0x00007fa77aba2030 in vcl::Window::ImplTestMousePointerSet (this=0x55f167b88570) at /home/michi/development/git/libreoffice/vcl/source/window/mouse.cxx:90
#11 0x00007fa77aba47bb in vcl::Window::EnterWait (this=0x55f167b88570) at /home/michi/development/git/libreoffice/vcl/source/window/mouse.cxx:613
#12 0x00007fa7476b98d7 in SwWait::EnterWaitAndLockDispatcher (this=0x7ffe7c5985d8) at /home/michi/development/git/libreoffice/sw/source/uibase/app/swwait.cxx:47
#13 0x00007fa7476b9864 in SwWait::SwWait (this=0x7ffe7c5985d8, rDocShell=..., bLockUnlockDispatcher=false) at /home/michi/development/git/libreoffice/sw/source/uibase/app/swwait.cxx:34
#14 0x00007fa7478a051b in SwModelessRedlineAcceptDlg::Activate (this=0x55f1689d4140) at /home/michi/development/git/libreoffice/sw/source/uibase/misc/redlndlg.cxx:95
#15 0x00007fa7804e12f5 in SfxDialogController::FocusChangeHdl (this=0x55f1689d4140) at /home/michi/development/git/libreoffice/sfx2/source/dialog/basedlgs.cxx:114
#16 0x00007fa7804e129d in SfxDialogController::LinkStubFocusChangeHdl (instance=0x55f1689d4140, data=...) at /home/michi/development/git/libreoffice/sfx2/source/dialog/basedlgs.cxx:111
#17 0x00007fa772af7211 in Link<weld::Container&, void>::Call (this=0x55f168a187d0, data=...) at include/tools/link.hxx:105
#18 0x00007fa772af712c in weld::Container::signal_container_focus_changed (this=0x55f168a187c8) at include/vcl/weld.hxx:396
#19 0x00007fa772af4b1f in QtInstanceWindow::eventFilter (this=0x55f168a18600, pObject=0x55f168483010, pEvent=0x7ffe7c599350) at vcl/qt6/../qt5/QtInstanceWindow.cxx:228
#20 0x00007fa771a52f9d in QCoreApplicationPrivate::sendThroughObjectEventFilters (receiver=0x55f168483010, event=0x7ffe7c599350) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1246
#21 0x00007fa76f9e60ce in QApplicationPrivate::notify_helper (this=0x55f162d3fb40, receiver=0x55f168483010, e=0x7ffe7c599350) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3301
#22 0x00007fa76f9e9fd4 in QApplication::notify (this=0x55f162d31a60, receiver=0x55f168483010, e=0x7ffe7c599350) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3253
#23 0x00007fa771a52a99 in QCoreApplication::notifyInternal2 (receiver=0x55f168483010, event=0x7ffe7c599350) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1109
#24 0x00007fa771a53799 in QCoreApplication::sendSpontaneousEvent (receiver=0x55f168483010, event=0x7ffe7c599350) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1563
#25 0x00007fa76f9e48ee in QApplicationPrivate::setActiveWindow (act=0x55f168483010) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:1880
#26 0x00007fa76f9e5015 in QApplicationPrivate::notifyActiveWindowChange (this=0x55f162d3fb40, previous=0x0) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:1950
#27 0x00007fa7708973c4 in QGuiApplicationPrivate::processFocusWindowEvent (e=0x55f1690e6910) at /home/michi/development/git/qt5/qtbase/src/gui/kernel/qguiapplication.cpp:2726
#28 0x00007fa7708935a8 in QGuiApplicationPrivate::processWindowSystemEvent (e=0x55f1690e6910) at /home/michi/development/git/qt5/qtbase/src/gui/kernel/qguiapplication.cpp:2215
#29 0x00007fa77097c52d in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at /home/michi/development/git/qt5/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:1113
#30 0x00007fa77097c3de in QWindowSystemInterface::flushWindowSystemEvents (flags=...) at /home/michi/development/git/qt5/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:1082
#31 0x00007fa76b8b5665 in QtWaylandClient::QWaylandDisplay::flushRequests (this=0x55f162d8feb0) at /home/michi/development/git/qt5/qtbase/src/plugins/platforms/wayland/qwaylanddisplay.cpp:523
#32 0x00007fa76b8ba6c4 in QtWaylandClient::QWaylandDisplay::qt_static_metacall (_o=0x55f162d8feb0, _c=QMetaObject::InvokeMetaMethod, _id=3, _a=0x7ffe7c5999b0)
at qtbase/src/plugins/platforms/wayland/WaylandClient_autogen/include/moc_qwaylanddisplay_p.cpp:90
#33 0x00007fa771b2d43f in doActivate<false> (sender=0x55f162d326e0, signal_index=3, argv=0x7ffe7c5999b0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4295
#34 0x00007fa771b234a3 in QMetaObject::activate (sender=0x55f162d326e0, m=0x7fa77243f028 <QAbstractEventDispatcher::staticMetaObject>, local_signal_index=0, argv=0x0)
at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4343
#35 0x00007fa771a3b8b6 in QAbstractEventDispatcher::aboutToBlock (this=0x55f162d326e0) at qtbase/src/corelib/Core_autogen/include/moc_qabstracteventdispatcher.cpp:122
#36 0x00007fa772059673 in QEventDispatcherGlib::processEvents (this=0x55f162d326e0, flags=...) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:386
#37 0x00007fa77119ba38 in QPAEventDispatcherGlib::processEvents (this=0x55f162d326e0, flags=...) at /home/michi/development/git/qt5/qtbase/src/gui/platform/unix/qeventdispatcher_glib.cpp:89
#38 0x00007fa7729f8212 in QtInstance::ImplYield (this=0x55f162dbc230, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:500
#39 0x00007fa7729fb551 in QtInstance::DoYield (this=0x55f162dbc230, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:511
#40 0x00007fa77b45b226 in ImplYield (i_bWait=true, i_bAllEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:385
#41 0x00007fa77b45ab3f in Application::Yield () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:488
#42 0x00007fa77b45a920 in Application::Execute () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:360
#43 0x00007fa784328e65 in desktop::Desktop::Main (this=0x7ffe7c59b5c0) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1678
#44 0x00007fa77b487146 in ImplSVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:230
#45 0x00007fa77b488c39 in SVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:248
#46 0x00007fa7843a2b0a in soffice_main () at /home/michi/development/git/libreoffice/desktop/source/app/sofficemain.cxx:122
#47 0x000055f1441869fd in sal_main () at /home/michi/development/git/libreoffice/desktop/source/app/main.c:51
#48 0x000055f1441869d7 in main (argc=2, argv=0x7ffe7c59b7c8) at /home/michi/development/git/libreoffice/desktop/source/app/main.c:49
Change-Id: Ia3f78c245022c6aa989292737730079b403a7493
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188310
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <[email protected]>
...as seen during CppunitTest_sd_font_embedding_tests, > src/EOT.c:15:68: runtime error: left shift of 160 by 24 places cannot be represented in type 'int' > #0 0x7f0b39e71791 in EOTreadU32LE (/instdir/program/libvcllo.so+0xbbb0791) > #1 0x7f0b39e73882 in EOTfillMetadataSpecifyingVersion (/instdir/program/libvcllo.so+0xbbb2882) > #2 0x7f0b39e754a6 in EOTfillMetadata (/instdir/program/libvcllo.so+0xbbb44a6) > #3 0x7f0b39e7129e in EOT2ttf_buffer (/instdir/program/libvcllo.so+0xbbb029e) > #4 0x7f0b35eb77d9 in EmbeddedFontsHelper::addEmbeddedFont(com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, rtl::OUString const&, std::basic_string_view<char16_t, std::char_traits<char16_t> >, std::__debug::vector<unsigned char, std::allocator<unsigned char> > const&, bool, bool) /vcl/source/gdi/embeddedfontshelper.cxx:120:13 > #5 0x7f0acf649034 in oox::ppt::EmbeddedFontListContext::onEndElement() /oox/source/ppt/EmbeddedFontListContext.cxx:96:30 > #6 0x7f0ace1879d4 in oox::core::ContextHandler2Helper::implEndElement(int) /oox/source/core/contexthandler2.cxx:124:9 > #7 0x7f0ace2287c6 in oox::core::FragmentHandler2::endFastElement(int) /oox/source/core/fragmenthandler2.cxx:91:5 > #8 0x7f0b07f340ca in (anonymous namespace)::Entity::endElement() /sax/source/fastparser/fastparser.cxx:515:27 > #9 0x7f0b07f33a98 in sax_fastparser::FastSaxParserImpl::callbackEndElement() /sax/source/fastparser/fastparser.cxx:1340:17 > #10 0x7f0b07f23a24 in (anonymous namespace)::call_callbackEndElement(void*, unsigned char const*, unsigned char const*, unsigned char const*) /sax/source/fastparser/fastparser.cxx:339:18 > #11 0x7f0b4391eb84 in xmlParseEndTag2 /workdir/UnpackedTarball/libxml2/parser.c:9632:2 > #12 0x7f0b438d0124 in xmlParseTryOrFinish /workdir/UnpackedTarball/libxml2/parser.c:11374:14 > #13 0x7f0b438c4f6c in xmlParseChunk /workdir/UnpackedTarball/libxml2/parser.c:11640:5 > #14 0x7f0b07f1e811 in sax_fastparser::FastSaxParserImpl::parse() /sax/source/fastparser/fastparser.cxx:1091:21 > #15 0x7f0b07f18318 in sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) /sax/source/fastparser/fastparser.cxx:895:9 > #16 0x7f0b07f39a50 in sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) /sax/source/fastparser/fastparser.cxx:1479:13 > #17 0x7f0ace1b2541 in oox::core::FastParser::parseStream(com::sun::star::xml::sax::InputSource const&, bool) /oox/source/core/fastparser.cxx:121:15 > #18 0x7f0ace1b2cd8 in oox::core::FastParser::parseStream(com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, rtl::OUString const&) /oox/source/core/fastparser.cxx:129:5 > #19 0x7f0ace2871ce in oox::core::XmlFilterBase::importFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) /oox/source/core/xmlfilterbase.cxx:421:21 > #20 0x7f0ace285a1d in oox::core::XmlFilterBase::importFragment(rtl::Reference<oox::core::FragmentHandler> const&) /oox/source/core/xmlfilterbase.cxx:351:12 > #21 0x7f0acf65bbb2 in oox::ppt::PowerPointImport::importDocument() /oox/source/ppt/pptimport.cxx:109:17 > #22 0x7f0ace1c54ab in oox::core::FilterBase::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /oox/source/core/filterbase.cxx:486:49 > #23 0x7f0acf65f687 in oox::ppt::PowerPointImport::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /oox/source/ppt/pptimport.cxx:214:24 > #24 0x7f0af938ff1a in SfxObjectShell::ImportFrom(SfxMedium&, com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&) /sfx2/source/doc/objstor.cxx:2685:34 > #25 0x7f0b01e1acd1 in sd::DrawDocShell::ImportFrom(SfxMedium&, com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&) /sd/source/ui/docshell/docshel4.cxx:458:39 > #26 0x7f0af9342ab1 in SfxObjectShell::DoLoad(SfxMedium*) /sfx2/source/doc/objstor.cxx:768:23 > #27 0x7f0af95d3e84 in SfxBaseModel::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /sfx2/source/doc/sfxbasemodel.cxx:1986:36 > #28 0x7f0af9e36f00 in (anonymous namespace)::SfxFrameLoader_Impl::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) /sfx2/source/view/frmload.cxx:771:28 > #29 0x7f0ac5b19f36 in framework::LoadEnv::impl_loadContent() /framework/source/loadenv/loadenv.cxx:1180:37 > #30 0x7f0ac5b10dd2 in framework::LoadEnv::start() /framework/source/loadenv/loadenv.cxx:415:20 > #31 0x7f0ac5b09292 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) /framework/source/loadenv/loadenv.cxx:311:5 > #32 0x7f0ac5b04674 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&) /framework/source/loadenv/loadenv.cxx:167:14 > #33 0x7f0ac5bd9348 in framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /framework/source/services/desktop.cxx:594:16 > #34 0x7f0ac5bd96c6 in non-virtual thunk to framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /framework/source/services/desktop.cxx > #35 0x7f0adc8e6a09 in unotest::MacrosTest::loadFromDesktop(rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /unotest/source/cpp/macros_test.cxx:72:62 > #36 0x7f0af3eb9f62 in UnoApiTest::loadWithParams(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /test/source/unoapi_test.cxx:125:19 > #37 0x7f0af3eb9098 in UnoApiTest::loadFromURL(rtl::OUString const&, char const*) /test/source/unoapi_test.cxx:107:5 > #38 0x7f0af3eba994 in UnoApiTest::loadFromFile(std::basic_string_view<char16_t, std::char_traits<char16_t> >, char const*) /test/source/unoapi_test.cxx:132:5 > #39 0x7f0b0e518798 in SdModelTestBase::createSdImpressDoc(char const*, char const*) /sd/qa/unit/sdmodeltestbase.hxx:54:13 > #40 0x7f0b0e50fa7d in testRoundtripEmbeddedFontsPPTX::TestBody() /sd/qa/unit/FontEmbeddingTest.cxx:49:5 (<https://ci.libreoffice.org/job/lo_ubsan/3555/>) Change-Id: I0fed461981c812a10ee88ea44629afe6c76525ff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185086 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]> (cherry picked from commit 17d2a10) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188416 Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]>
Otherwise, this triggers the following assertion:
soffice.bin: .../vcl/source/app/dbggui.cxx:36: void ImplDbgTestSolarMutex(bool): Assertion `ImplGetSVData()->mpDefInst->GetYieldMutex()->IsCurrentThread() && "SolarMutex not owned!"' failed.
when opening an Impress presenation with a slide containing
a video with SAL_VCL_QT_USE_QT_FRAME_GRABBER=1, potentially
since
commit 88e9af0
Date: Wed Aug 6 09:49:42 2025 +0200
BitmapEx->Bitmap in PngImageReader
and follow-up commit
commit 32627a5
Date: Wed Aug 6 15:48:28 2025 +0200
blind fix for qt6 build
Backtrace:
Thread 1 received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
warning: 44 ./nptl/pthread_kill.c: No such file or directory
(rr) bt
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
#1 0x00007fbf6409e9ff in __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:89
#2 0x00007fbf64049cc2 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3 0x00007fbf640324ac in __GI_abort () at ./stdlib/abort.c:73
#4 0x00007fbf64032420 in __assert_fail_base (fmt=<optimized out>, assertion=<optimized out>, file=<optimized out>, line=36, function=<optimized out>) at ./assert/assert.c:118
#5 0x00007fbf5b3889ec in ImplDbgTestSolarMutex (owned=true) at /home/michi/development/git/libreoffice/vcl/source/app/dbggui.cxx:36
#6 0x00007fbf6352b124 in DbgTestSolarMutex (owned=true) at /home/michi/development/git/libreoffice/tools/source/debug/debug.cxx:54
#7 0x00007fbf5b24fafb in VirtualDevice::AcquireGraphics (this=0x557da1d5e290) at /home/michi/development/git/libreoffice/vcl/source/gdi/virdev.cxx:49
#8 0x00007fbf5aecf733 in OutputDevice::DrawRect (this=0x557da1d5e290, rRect=...) at /home/michi/development/git/libreoffice/vcl/source/outdev/rect.cxx:67
#9 0x00007fbf5aee0999 in OutputDevice::DrawColorWallpaper (this=0x557da1d5e290, nX=0, nY=0, nWidth=721, nHeight=401, rWallpaper=...) at /home/michi/development/git/libreoffice/vcl/source/outdev/wallpaper.cxx:90
#10 0x00007fbf5aedefcf in OutputDevice::DrawWallpaper (this=0x557da1d5e290, nX=0, nY=0, nWidth=721, nHeight=401, rWallpaper=...) at /home/michi/development/git/libreoffice/vcl/source/outdev/wallpaper.cxx:70
#11 0x00007fbf5aedeeab in OutputDevice::DrawWallpaper (this=0x557da1d5e290, rRect=..., rWallpaper=...) at /home/michi/development/git/libreoffice/vcl/source/outdev/wallpaper.cxx:53
#12 0x00007fbf5b2523b0 in VirtualDevice::InnerImplSetOutputSizePixel (this=0x557da1d5e290, rNewSize=Size = {...}, bErase=true, bAlphaMaskTransparent=true) at /home/michi/development/git/libreoffice/vcl/source/gdi/virdev.cxx:295
#13 0x00007fbf5b2527dd in VirtualDevice::SetOutputSizePixel (this=0x557da1d5e290, rNewSize=Size = {...}, bErase=true, bAlphaMaskTransparent=true) at /home/michi/development/git/libreoffice/vcl/source/gdi/virdev.cxx:350
#14 0x00007fbf5b2ac951 in Bitmap::Bitmap (this=0x7fffdcfcae00, rBitmapEx=...) at /home/michi/development/git/libreoffice/vcl/source/bitmap/bitmap.cxx:146
#15 0x00007fbf5b5e8e6f in vcl::PngImageReader::read (this=0x7fffdcfcb128, rBitmap=...) at /home/michi/development/git/libreoffice/vcl/source/filter/png/PngImageReader.cxx:820
#16 0x00007fbf2c1be088 in (anonymous namespace)::toXGraphic (rImage=...) at /home/michi/development/git/libreoffice/avmedia/source/qt6/QtFrameGrabber.cxx:36
#17 0x00007fbf2c1bda8e in avmedia::qt::QtFrameGrabber::onVideoFrameChanged (this=0x7fbf24003b00, rFrame=...) at /home/michi/development/git/libreoffice/avmedia/source/qt6/QtFrameGrabber.cxx:73
#18 0x00007fbf2c1c33d4 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<QVideoFrame const&>, void, void (avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&)>::call(void (avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&), avmedia::qt::QtFrameGrabber*, void**)::{lambda()#1}::operator()() const (this=0x7fffdcfcb300) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:127
#19 0x00007fbf2c1c3359 in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<QVideoFrame const&>, void, void (avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&)>::call(void (avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&), avmedia::qt::QtFrameGrabber*, void**)::{lambda()#1}>(void**, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<QVideoFrame const&>, void, void (avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&)>::call(void (avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&), avmedia::qt::QtFrameGrabber*, void**)::{lambda()#1}&&) (args=0x7fbf24003bd8, fn=...)
at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:65
#20 0x00007fbf2c1c3323 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<QVideoFrame const&>, void, void (avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&)>::call
(f=(void (avmedia::qt::QtFrameGrabber::*)(class avmedia::qt::QtFrameGrabber * const, const class QVideoFrame &)) 0x7fbf2c1bda40 <avmedia::qt::QtFrameGrabber::onVideoFrameChanged(QVideoFrame const&)>, o=0x7fbf24003b00, arg=0x7fbf24003bd8) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:126
#21 0x00007fbf2c1c329d in QtPrivate::FunctionPointer<void (avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&)>::call<QtPrivate::List<QVideoFrame const&>, void>
(f=(void (avmedia::qt::QtFrameGrabber::*)(class avmedia::qt::QtFrameGrabber * const, const class QVideoFrame &)) 0x7fbf2c1bda40 <avmedia::qt::QtFrameGrabber::onVideoFrameChanged(QVideoFrame const&)>, o=0x7fbf24003b00, arg=0x7fbf24003bd8) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:174
#22 0x00007fbf2c1c31c6 in QtPrivate::QCallableObject<void (avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&), QtPrivate::List<QVideoFrame const&>, void>::impl
(which=1, this_=0x557d9d23f1c0, r=0x7fbf24003b00, a=0x7fbf24003bd8, ret=0x0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:545
#23 0x00007fbf51907b62 in QtPrivate::QSlotObjectBase::call (this=0x557d9d23f1c0, r=0x7fbf24003b00, a=0x7fbf24003bd8) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#24 0x00007fbf51b1a02c in QMetaCallEvent::placeMetaCall (this=0x7fbf24003b90, object=0x7fbf24003b00) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:544
#25 0x00007fbf51b1c1c1 in QObject::event (this=0x7fbf24003b00, e=0x7fbf24003b90) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:1465
#26 0x00007fbf4f9e6130 in QApplicationPrivate::notify_helper (this=0x557d975ccb40, receiver=0x7fbf24003b00, e=0x7fbf24003b90) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3307
#27 0x00007fbf4f9ea038 in QApplication::notify (this=0x557d975bdec0, receiver=0x7fbf24003b00, e=0x7fbf24003b90) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3257
#28 0x00007fbf51a52ac9 in QCoreApplication::notifyInternal2 (receiver=0x7fbf24003b00, event=0x7fbf24003b90) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1109
#29 0x00007fbf51a53739 in QCoreApplication::sendEvent (receiver=0x7fbf24003b00, event=0x7fbf24003b90) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1549
#30 0x00007fbf51a5466a in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x557d975f3770) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1904
#31 0x00007fbf51a5357c in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1757
#32 0x00007fbf5205bba1 in postEventSourceDispatch (s=0x557d9761ac80) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246
#33 0x00007fbf561043c5 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#34 0x00007fbf561065f7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#35 0x00007fbf56106d60 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 0x00007fbf5205addb in QEventDispatcherGlib::processEvents (this=0x557d975bf280, flags=...) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#37 0x00007fbf5119f838 in QPAEventDispatcherGlib::processEvents (this=0x557d975bf280, flags=...) at /home/michi/development/git/qt5/qtbase/src/gui/platform/unix/qeventdispatcher_glib.cpp:89
#38 0x00007fbf52a19b84 in QtInstance::ImplYield (this=0x557d976494e0, bWait=false, bHandleAllCurrentEvents=true) at vcl/qt6/../qt5/QtInstance.cxx:503
#39 0x00007fbf52a1ce71 in QtInstance::DoYield (this=0x557d976494e0, bWait=false, bHandleAllCurrentEvents=true) at vcl/qt6/../qt5/QtInstance.cxx:512
#40 0x00007fbf5b45f3a6 in ImplYield (i_bWait=false, i_bAllEvents=true) at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:385
#41 0x00007fbf5b45f667 in Scheduler::ProcessEventsToIdle () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:435
#42 0x00007fbf2c1be3cd in avmedia::qt::QtFrameGrabber::grabFrame (this=0x7fbf24003b00, fMediaTime=0) at /home/michi/development/git/libreoffice/avmedia/source/qt6/QtFrameGrabber.cxx:100
#43 0x00007fbf2c1be4ce in non-virtual thunk to avmedia::qt::QtFrameGrabber::grabFrame(double) () at /home/michi/development/git/libreoffice/instdir/program/../program/libavmediaqt6.so
#44 0x00007fbf5d3e5b13 in avmedia::MediaWindow::grabFrame (xPlayer=uno::Reference to (avmedia::qt::QtPlayer *) 0x557d9c991168, rGraphic=empty uno::Reference)
at /home/michi/development/git/libreoffice/avmedia/source/viewer/mediawindow.cxx:384
#45 0x00007fbf5e430b5f in SdrMediaObj::getSnapshot() const::$_0::operator()(com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&) const
(this=0x557d9c98fea0, rPlayer=uno::Reference to (avmedia::qt::QtPlayer *) 0x557d9c991168) at /home/michi/development/git/libreoffice/svx/source/svdraw/svdomedia.cxx:195
#46 0x00007fbf5e430add in std::__invoke_impl<void, SdrMediaObj::getSnapshot() const::$_0&, com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&>(std::__invoke_other, SdrMediaObj::getSnapshot() const::$_0&, com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&) (__f=..., __args=uno::Reference to (avmedia::qt::QtPlayer *) 0x557d9c991168) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:61
#47 0x00007fbf5e430a8d in std::__invoke_r<void, SdrMediaObj::getSnapshot() const::$_0&, com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&>(SdrMediaObj::getSnapshot() const::$_0&, com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&) (__fn=..., __args=uno::Reference to (avmedia::qt::QtPlayer *) 0x557d9c991168) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:111
#48 0x00007fbf5e430905 in std::_Function_handler<void(com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&), SdrMediaObj::getSnapshot() const::$_0>::_M_invoke
(__functor=..., __args=uno::Reference to (avmedia::qt::QtPlayer *) 0x557d9c991168) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_function.h:290
#49 0x00007fbf5d3ec066 in std::function<void(com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&)>::operator() (this=0x557d9c975aa8, __args=uno::Reference to (avmedia::qt::QtPlayer *) 0x557d9c991168)
at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_function.h:591
#50 0x00007fbf5d3e8261 in avmedia::PlayerListener::callPlayerWindowSizeAvailable (this=0x557d9c975a60, rPlayer=uno::Reference to (avmedia::qt::QtPlayer *) 0x557d9c991168) at include/avmedia/mediawindow.hxx:74
#51 0x00007fbf5d3e5eab in avmedia::MediaWindow::grabFrame (rURL="file:///tmp/7qg9UE.ogg", rReferer="", sMimeType="audio/ogg", xPreferredPixelSizeListener=rtl::Reference to 0x557d9c975a60)
at /home/michi/development/git/libreoffice/avmedia/source/viewer/mediawindow.cxx:434
#52 0x00007fbf5e42e93c in SdrMediaObj::getSnapshot (this=0x557d9921fd10) at /home/michi/development/git/libreoffice/svx/source/svdraw/svdomedia.cxx:199
#53 0x00007fbf5e17a1a9 in sdr::contact::ViewContactOfSdrMediaObj::createViewIndependentPrimitive2DSequence (this=0x557d997790d0, rVisitor=...)
at /home/michi/development/git/libreoffice/svx/source/sdr/contact/viewcontactofsdrmediaobj.cxx:122
#54 0x00007fbf5e19363b in sdr::contact::ViewContact::getViewIndependentPrimitive2DContainer (this=0x557d997790d0, rVisitor=...) at /home/michi/development/git/libreoffice/svx/source/sdr/contact/viewcontact.cxx:261
#55 0x00007fbf5e3c8a34 in SdrObject::RecalcBoundRect (this=0x557d9921fd10) at /home/michi/development/git/libreoffice/svx/source/svdraw/svdobj.cxx:988
#56 0x00007fbf5e3c8959 in SdrObject::GetCurrentBoundRect (this=0x557d9921fd10) at /home/michi/development/git/libreoffice/svx/source/svdraw/svdobj.cxx:958
#57 0x00007fbf5e4b91d0 in SdrObjList::RecalcRects (this=0x557d9925ec30) at /home/michi/development/git/libreoffice/svx/source/svdraw/svdpage.cxx:242
#58 0x00007fbf5e4bcf99 in SdrObjList::GetAllObjBoundRect (this=0x557d9925ec30) at /home/michi/development/git/libreoffice/svx/source/svdraw/svdpage.cxx:740
#59 0x00007fbf5e4e1142 in SdrPageView::InvalidateAllWin (this=0x557d9c973a00) at /home/michi/development/git/libreoffice/svx/source/svdraw/svdpagv.cxx:202
#60 0x00007fbf5e4e3301 in SdrPageView::SetHelpLines (this=0x557d9c973a00, rHLL=...) at /home/michi/development/git/libreoffice/svx/source/svdraw/svdpagv.cxx:687
#61 0x00007fbf2fe0a543 in sd::DrawViewShell::SwitchPage (this=0x557d990dc4b0, nSelectedPage=0, bAllowChangeFocus=true, bUpdateScrollbars=true) at /home/michi/development/git/libreoffice/sd/source/ui/view/drviews1.cxx:1050
#62 0x00007fbf2fe0869d in sd::DrawViewShell::ChangeEditMode (this=0x557d990dc4b0, eEMode=EditMode::Page, bIsLayerModeActive=false) at /home/michi/development/git/libreoffice/sd/source/ui/view/drviews1.cxx:409
#63 0x00007fbf2fe566cc in sd::DrawViewShell::ReadFrameViewData (this=0x557d990dc4b0, pView=0x557d9c970370) at /home/michi/development/git/libreoffice/sd/source/ui/view/drviews5.cxx:291
#64 0x00007fbf2fe6f3e1 in sd::DrawViewShell::Construct (this=0x557d990dc4b0, pDocSh=0x557d98f74bd0, eInitialPageKind=PageKind::Standard) at /home/michi/development/git/libreoffice/sd/source/ui/view/drviewsa.cxx:304
#65 0x00007fbf2fe6ea0d in sd::DrawViewShell::DrawViewShell (this=0x557d990dc4b0, rViewShellBase=..., pParentWindow=0x557d99842f80, ePageKind=PageKind::Standard, pFrameViewArgument=0x0)
at /home/michi/development/git/libreoffice/sd/source/ui/view/drviewsa.cxx:126
#66 0x00007fbf2f9caedd in std::_Construct<sd::DrawViewShell, sd::ViewShellBase&, vcl::Window*, PageKind, sd::FrameView*&>
(__p=0x557d990dc4b0, __args=..., __args=@0x7fffdcfcfcd0: 0x557d99842f80, __args=@0x7fffdcfcfccc: PageKind::Standard, __args=@0x7fffdcfcfcf0: 0x0)
at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/stl_construct.h:119
#67 0x00007fbf2f9caafe in std::allocator_traits<std::allocator<void> >::construct<sd::DrawViewShell, sd::ViewShellBase&, vcl::Window*, PageKind, sd::FrameView*&>
(__p=0x557d990dc4b0, __args=..., __args=@0x7fffdcfcfcd0: 0x557d99842f80, __args=@0x7fffdcfcfccc: PageKind::Standard, __args=@0x7fffdcfcfcf0: 0x0)
at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/alloc_traits.h:706
#68 std::_Sp_counted_ptr_inplace<sd::DrawViewShell, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<sd::ViewShellBase&, vcl::Window*, PageKind, sd::FrameView*&>
(this=0x557d990dc4a0, __a=..., __args=..., __args=@0x7fffdcfcfcd0: 0x557d99842f80, __args=@0x7fffdcfcfccc: PageKind::Standard, __args=@0x7fffdcfcfcf0: 0x0)
at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr_base.h:607
#69 0x00007fbf2f9ca8f7 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<sd::DrawViewShell, std::allocator<void>, sd::ViewShellBase&, vcl::Window*, PageKind, sd::FrameView*&>
(this=0x7fffdcfcfce0, __p=@0x7fffdcfcfcd8: 0x0, __a=..., __args=..., __args=@0x7fffdcfcfcd0: 0x557d99842f80, __args=@0x7fffdcfcfccc: PageKind::Standard, __args=@0x7fffdcfcfcf0: 0x0)
at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr_base.h:970
#70 0x00007fbf2f9ca81a in std::__shared_ptr<sd::DrawViewShell, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, sd::ViewShellBase&, vcl::Window*, PageKind, sd::FrameView*&>
(this=0x7fffdcfcfcd8, __tag=..., __args=..., __args=@0x7fffdcfcfcd0: 0x557d99842f80, __args=@0x7fffdcfcfccc: PageKind::Standard, __args=@0x7fffdcfcfcf0: 0x0)
at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr_base.h:1713
#71 0x00007fbf2f9ca792 in std::shared_ptr<sd::DrawViewShell>::shared_ptr<std::allocator<void>, sd::ViewShellBase&, vcl::Window*, PageKind, sd::FrameView*&>
(this=0x7fffdcfcfcd8, __tag=..., __args=..., __args=@0x7fffdcfcfcd0: 0x557d99842f80, __args=@0x7fffdcfcfccc: PageKind::Standard, __args=@0x7fffdcfcfcf0: 0x0)
at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr.h:463
#72 0x00007fbf2f9c4911 in std::make_shared<sd::DrawViewShell, sd::ViewShellBase&, vcl::Window*, PageKind, sd::FrameView*&>
(__args=..., __args=@0x7fffdcfcfcd0: 0x557d99842f80, __args=@0x7fffdcfcfccc: PageKind::Standard, __args=@0x7fffdcfcfcf0: 0x0) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr.h:1007
#73 0x00007fbf2f9c11f3 in sd::framework::BasicViewFactory::CreateViewShell (this=0x557d9963e1a0, rxViewId=rtl::Reference to 0x557d998d8910, rWindow=..., pFrameView=0x0)
at /home/michi/development/git/libreoffice/sd/source/ui/framework/factories/BasicViewFactory.cxx:284
#74 0x00007fbf2f9c0553 in sd::framework::BasicViewFactory::CreateView (this=0x557d9963e1a0, rxViewId=rtl::Reference to 0x557d998d8910, rWindow=..., rxPane=rtl::Reference to 0x557d9c953020, pFrameView=0x0, bIsCenterPane=true)
at /home/michi/development/git/libreoffice/sd/source/ui/framework/factories/BasicViewFactory.cxx:241
#75 0x00007fbf2f9bffcb in sd::framework::BasicViewFactory::createResource (this=0x557d9963e1a0, rxViewId=rtl::Reference to 0x557d998d8910)
at /home/michi/development/git/libreoffice/sd/source/ui/framework/factories/BasicViewFactory.cxx:167
#76 0x00007fbf2f994c48 in sd::framework::ConfigurationControllerResourceManager::ActivateResource (this=0x557d9963f120, rxResourceId=rtl::Reference to 0x557d998d8910, rxConfiguration=rtl::Reference to 0x557d999b0dc0)
at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx:130
#77 0x00007fbf2f9945f8 in sd::framework::ConfigurationControllerResourceManager::ActivateResources (this=0x557d9963f120, rResources=std::__debug::vector of length 5, capacity 5 = {...}, rxConfiguration=rtl::Reference to 0x557d999b0dc0)
at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx:75
#78 0x00007fbf2f99d07a in sd::framework::ConfigurationUpdater::UpdateCore (this=0x557d999afee0, rClassifier=...) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:251
#79 0x00007fbf2f99c61c in sd::framework::ConfigurationUpdater::UpdateConfiguration (this=0x557d999afee0) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:161
#80 0x00007fbf2f99c09b in sd::framework::ConfigurationUpdater::RequestUpdate (this=0x557d999afee0, rxRequestedConfiguration=rtl::Reference to 0x557d998c8ed0)
at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:108
#81 0x00007fbf2f96fe69 in sd::framework::ChangeRequestQueueProcessor::ProcessOneEvent (this=0x557d999b0e60) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ChangeRequestQueueProcessor.cxx:158
#82 0x00007fbf2f982909 in sd::framework::ConfigurationController::ProcessEvent (this=0x557d999b0bf0) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationController.cxx:157
#83 0x00007fbf2fdbc797 in sd::ViewShellBase::LateInit (this=0x557d99242e30, rsDefaultView="") at /home/michi/development/git/libreoffice/sd/source/ui/view/ViewShellBase.cxx:345
#84 0x00007fbf2fd78a33 in sd::ImpressViewShellBase::CreateInstance (rFrame=..., pOldView=0x0) at /home/michi/development/git/libreoffice/sd/source/ui/view/ImpressViewShellBase.cxx:45
#85 0x00007fbf60a31855 in SfxViewFactory::CreateInstance (this=0x557d991cd6a0, rFrame=..., pOldSh=0x0) at /home/michi/development/git/libreoffice/sfx2/source/view/viewfac.cxx:26
#86 0x00007fbf60840fbf in SfxBaseModel::createViewController (this=0x557d9913bc50, i_rViewName="Default", i_rArguments=empty uno::Sequence, i_rFrame=uno::Reference to ((anonymous namespace)::XFrameImpl *) 0x557d98f32e40)
at /home/michi/development/git/libreoffice/sfx2/source/doc/sfxbasemodel.cxx:4355
#87 0x00007fbf60841a9f in non-virtual thunk to SfxBaseModel::createViewController(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&) () at /home/michi/development/git/libreoffice/instdir/program/libsfxlo.so
#88 0x00007fbf609dc0f4 in (anonymous namespace)::SfxFrameLoader_Impl::impl_createDocumentView
(i_rModel=uno::Reference to (SdXImpressDocument *) 0x557d9913bce0, i_rFrame=uno::Reference to ((anonymous namespace)::XFrameImpl *) 0x557d98f32e40, i_rViewFactoryArgs=..., i_rViewName="Default")
at /home/michi/development/git/libreoffice/sfx2/source/view/frmload.cxx:586
#89 0x00007fbf609d96ac in (anonymous namespace)::SfxFrameLoader_Impl::load (this=0x557d99388d30, rArgs=uno::Sequence of length 12 = {...}, _rTargetFrame=uno::Reference to ((anonymous namespace)::XFrameImpl *) 0x557d98f32e40)
at /home/michi/development/git/libreoffice/sfx2/source/view/frmload.cxx:813
#90 0x00007fbf615c72c4 in framework::LoadEnv::impl_loadContent (this=0x557d98866fa8) at /home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:1180
#91 0x00007fbf615c4425 in framework::LoadEnv::start (this=0x557d98866fa8) at /home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:415
#92 0x00007fbf615c20d2 in framework::LoadEnv::startLoading
(this=0x557d98866fa8, sURL="file:///home/michi/git/computer-doc/misc/impress_presentations_with_audio_and_video/slide_with_video.odp", lMediaDescriptor=uno::Sequence of length 4 = {...}, xBaseFrame=uno::Reference to (framework::Desktop *) 0x557d978a34b8, sTarget="_default", nSearchFlags=0, eFeature=(LoadEnvFeatures::WorkWithUI | LoadEnvFeatures::AllowContentHandler)) at /home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:311
#93 0x00007fbf6145aaa1 in framework::LoadDispatcher::impl_dispatch (this=0x557d98866f50, rURL=..., lArguments=uno::Sequence of length 4 = {...}, xListener=empty uno::Reference)
at /home/michi/development/git/libreoffice/framework/source/dispatch/loaddispatcher.cxx:107
#94 0x00007fbf6145b801 in framework::LoadDispatcher::dispatchWithReturnValue (this=0x557d98866f50, rURL=..., lArguments=uno::Sequence of length 4 = {...})
at /home/michi/development/git/libreoffice/framework/source/dispatch/loaddispatcher.cxx:60
#95 0x00007fbf6145b8a4 in non-virtual thunk to framework::LoadDispatcher::dispatchWithReturnValue(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) ()
at /home/michi/development/git/libreoffice/framework/source/dispatch/loaddispatcher.cxx:60
#96 0x00007fbf629f10c0 in comphelper::SynchronousDispatch::dispatch
(xStartPoint=uno::Reference to (framework::Desktop *) 0x557d978a34a8, sURL="file:///home/michi/git/computer-doc/misc/impress_presentations_with_audio_and_video/slide_with_video.odp", sTarget="_default", lArguments=uno::Sequence of length 4 = {...}) at /home/michi/development/git/libreoffice/comphelper/source/misc/synchronousdispatch.cxx:62
#97 0x00007fbf64377054 in desktop::DispatchWatcher::executeDispatchRequests (this=0x557d99219bb0, aDispatchRequestsList=std::__debug::vector of length 1, capacity 1 = {...}, bNoTerminate=false, pFlags=0x7fffdcfd6994)
at /home/michi/development/git/libreoffice/desktop/source/app/dispatchwatcher.cxx:531
#98 0x00007fbf64395488 in desktop::RequestHandler::ExecuteCmdLineRequests (aRequest=..., noTerminate=false) at /home/michi/development/git/libreoffice/desktop/source/app/officeipcthread.cxx:1317
#99 0x00007fbf6432ee7f in desktop::Desktop::OpenClients () at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:2218
#100 0x00007fbf6432cdf3 in desktop::Desktop::OpenClients_Impl (this=0x7fffdcfda450) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1978
#101 0x00007fbf6432b45d in desktop::Desktop::LinkStubOpenClients_Impl (instance=0x7fffdcfda450, data=0x0) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1962
#102 0x00007fbf5ac98231 in Link<void*, void>::Call (this=0x557d98fba098, data=0x0) at include/tools/link.hxx:105
#103 0x00007fbf5ac93af1 in ImplHandleUserEvent (pSVEvent=0x557d98fba090) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2312
#104 0x00007fbf5ac90a1f in ImplWindowFrameProc (_pWindow=0x557d988b22c0, nEvent=SalEvent::UserEvent, pEvent=0x557d98fba090) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2876
#105 0x00007fbf529fb3ec in SalFrame::CallCallback (this=0x557d988b3f20, nEvent=SalEvent::UserEvent, pEvent=0x557d98fba090) at vcl/inc/salframe.hxx:310
#106 0x00007fbf52a1d2af in QtInstance::ProcessEvent (this=0x557d976494e0, aEvent=...) at vcl/qt6/../qt5/QtInstance.cxx:594
#107 0x00007fbf5b393fbd in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7fffdcfd88a0) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
#108 0x00007fbf5b393e8b in SalUserEventList::DispatchUserEvents (this=0x557d97649518, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
#109 0x00007fbf52a19a91 in QtInstance::ImplYield (this=0x557d976494e0, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:490
#110 0x00007fbf52a1ce71 in QtInstance::DoYield (this=0x557d976494e0, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:512
#111 0x00007fbf5b45f3a6 in ImplYield (i_bWait=true, i_bAllEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:385
#112 0x00007fbf5b45ecbf in Application::Yield () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:488
#113 0x00007fbf5b45eaa0 in Application::Execute () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:360
#114 0x00007fbf64329435 in desktop::Desktop::Main (this=0x7fffdcfda450) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1678
#115 0x00007fbf5b48b2c6 in ImplSVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:230
#116 0x00007fbf5b48cdb9 in SVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:248
#117 0x00007fbf643a30ea in soffice_main () at /home/michi/development/git/libreoffice/desktop/source/app/sofficemain.cxx:122
#118 0x0000557d789219fd in sal_main () at /home/michi/development/git/libreoffice/desktop/source/app/main.c:51
#119 0x0000557d789219d7 in main (argc=2, argv=0x7fffdcfda658) at /home/michi/development/git/libreoffice/desktop/source/app/main.c:49
Change-Id: I1e2265e38d7c93171146df4f58666e9cf22bdaf6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189036
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <[email protected]>
As the GVariant format string doc says [1] about
pointers:
> The `&` character is used to indicate that serialised data should be
> directly exchanged via a pointer.
>
> Currently, the only use for this character is when it is applied to a
> string (ie: `&s`, `&o` or `&g`). For `g_variant_new()` this has absolutely no
> effect. The string is collected and duplicated normally. For
> `g_variant_get()` it means that instead of creating a newly allocated copy
> of the string, a pointer to the serialised data is returned. This
> pointer should not be freed. Validity checks are performed to ensure
> that the string data will always be properly nul-terminated.
Therefore, freeing the string with
g_free(pLabel);
is incorrect and resulted in a crash when starting Writer with
the gtk4 VCL plugin, s. backtrace below.
Use just "s" instead of "&s" for the format string to get a
string copy that is owned and can be freed.
(Dropping the `g_free` might be an alternative and avoid
a string copy, but it's not instantly clear to me whether
using "a pointer to the serialised data" is safe without
digging any deeper what exactly that means.)
Backtrace:
free(): invalid pointer
[New Thread 125500.125502]
[New Thread 125500.125503]
[New Thread 125500.125504]
[New Thread 125500.125505]
[New Thread 125500.125506]
[New Thread 125500.125507]
[New Thread 125500.125508]
[New Thread 125500.125510]
[New Thread 125500.125511]
[New Thread 125500.125525]
Thread 1 received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
warning: 44 ./nptl/pthread_kill.c: No such file or directory
(rr) bt
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
#1 0x00007f0bb969de2f in __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:78
#2 0x00007f0bb9649d02 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3 0x00007f0bb96324f0 in __GI_abort () at ./stdlib/abort.c:79
#4 0x00007f0bb963332d in __libc_message_impl (fmt=fmt@entry=0x7f0bb97b5303 "%s\n") at ../sysdeps/posix/libc_fatal.c:134
#5 0x00007f0bb96a7965 in malloc_printerr (str=str@entry=0x7f0bb97b3082 "free(): invalid pointer") at ./malloc/malloc.c:5772
#6 0x00007f0bb96a9bf4 in _int_free (av=0x7f0bb97f1ac0 <main_arena>, p=<optimized out>, have_lock=have_lock@entry=0) at ./malloc/malloc.c:4507
#7 0x00007f0bb96ac43f in __GI___libc_free (mem=<optimized out>) at ./malloc/malloc.c:3398
#8 0x00007f0ba62b908a in (anonymous namespace)::MenuHelper::get_item_label (this=0x55b0c8dcd360, rIdent="standard") at vcl/unx/gtk4/../gtk3/gtkinst.cxx:5684
#9 0x00007f0ba63013d8 in (anonymous namespace)::GtkInstanceMenu::get_label (this=0x55b0c8dcd360, rIdent="standard") at vcl/unx/gtk4/../gtk3/gtkinst.cxx:11694
#10 0x00007f0ba6301b2f in virtual thunk to (anonymous namespace)::GtkInstanceMenu::get_label(rtl::OUString const&) const () at vcl/unx/gtk4/../gtk3/gtkinst.cxx:11823
#11 0x00007f0bb482d026 in (anonymous namespace)::SelectionTypePopup::GetItemTextForState (this=0x7ffed304ad80, nState=0) at /home/michi/development/git/libreoffice/svx/source/stbctrls/selctrl.cxx:56
#12 0x00007f0bb482cc59 in SvxSelectionModeControl::StateChangedAtStatusBarControl (this=0x55b0c8d2d6e0, eState=SfxItemState::DEFAULT, pState=0x55b0c8f331c0) at /home/michi/development/git/libreoffice/svx/source/stbctrls/selctrl.cxx:128
#13 0x00007f0bb5f9af1e in SfxStatusBarControl::statusChanged (this=0x55b0c8d2d6e0, rEvent=...) at /home/michi/development/git/libreoffice/sfx2/source/statbar/stbitem.cxx:263
#14 0x00007f0bb5a9d4c8 in SfxDispatchController_Impl::addStatusListener (this=0x55b0c8ed6380, aListener=uno::Reference to (SvxSelectionModeControl *) 0x55b0c8d2d6f0, aURL=...)
at /home/michi/development/git/libreoffice/sfx2/source/control/unoctitm.cxx:841
#15 0x00007f0bb5a9d174 in SfxOfficeDispatch::addStatusListener (this=0x55b0c8f280e0, aListener=uno::Reference to (SvxSelectionModeControl *) 0x55b0c8d2d6f0, aURL=...)
at /home/michi/development/git/libreoffice/sfx2/source/control/unoctitm.cxx:283
#16 0x00007f0bb28a8577 in svt::StatusbarController::bindListener (this=0x55b0c8d2d6e0) at /home/michi/development/git/libreoffice/svtools/source/uno/statusbarcontroller.cxx:462
#17 0x00007f0bb28a7f09 in svt::StatusbarController::update (this=0x55b0c8d2d6e0) at /home/michi/development/git/libreoffice/svtools/source/uno/statusbarcontroller.cxx:169
#18 0x00007f0bb6d41a6b in framework::(anonymous namespace)::lcl_UpdateController<std::__debug::map<unsigned short, com::sun::star::uno::Reference<com::sun::star::frame::XStatusbarController>, std::less<unsigned short>, std::allocator<std::pair<unsigned short const, com::sun::star::uno::Reference<com::sun::star::frame::XStatusbarController> > > > >::operator() (this=0x7ffed304b547, rElement={...})
at /home/michi/development/git/libreoffice/framework/source/uielement/statusbarmanager.cxx:69
#19 0x00007f0bb6d3e5ef in std::for_each<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<unsigned short const, com::sun::star::uno::Reference<com::sun::star::frame::XStatusbarController> > >, std::__debug::map<unsigned short, com::sun::star::uno::Reference<com::sun::star::frame::XStatusbarController>, std::less<unsigned short>, std::allocator<std::pair<unsigned short const, com::sun::star::uno::Reference<com::sun::star::frame::XStatusbarController> > > >, std::bidirectional_iterator_tag>, framework::(anonymous namespace)::lcl_UpdateController<std::__debug::map<unsigned short, com::sun::star::uno::Reference<com::sun::star::frame::XStatusbarController>, std::less<unsigned short>, std::allocator<std::pair<unsigned short const, com::sun::star::uno::Reference<com::sun::star::frame::XStatusbarController> > > > > > (__first={...}, __last={...}, __f=...)
at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/stl_algo.h:3786
#20 0x00007f0bb6d3d9a5 in framework::StatusBarManager::UpdateControllers (this=0x55b0c8cefc90) at /home/michi/development/git/libreoffice/framework/source/uielement/statusbarmanager.cxx:269
#21 0x00007f0bb6d4028b in framework::StatusBarManager::FillStatusBar (this=0x55b0c8cefc90, rItemContainer=uno::Reference to (framework::ConstItemContainer *) 0x55b0c8e017e8)
at /home/michi/development/git/libreoffice/framework/source/uielement/statusbarmanager.cxx:479
#22 0x00007f0bb6d4ae38 in framework::StatusBarWrapper::initialize (this=0x55b0c8d0f060, aArguments=uno::Sequence of length 4 = {...}) at /home/michi/development/git/libreoffice/framework/source/uielement/statusbarwrapper.cxx:117
#23 0x00007f0bb6df9104 in framework::MenuBarFactory::CreateUIElement
(ResourceURL="private:resource/statusbar/statusbar", Args=uno::Sequence of length 2 = {...}, ResourceType=u"private:resource/statusbar/", _xMenuBar=uno::Reference to (framework::StatusBarWrapper *) 0x55b0c8d0f0f8, _rxContext=uno::Reference to (cppu::(anonymous namespace)::ComponentContext *) 0x55b0ba8b8308) at /home/michi/development/git/libreoffice/framework/source/uifactory/menubarfactory.cxx:158
#24 0x00007f0bb6df9c0a in (anonymous namespace)::StatusBarFactory::createUIElement (this=0x55b0c8e03800, ResourceURL="private:resource/statusbar/statusbar", Args=uno::Sequence of length 2 = {...})
at /home/michi/development/git/libreoffice/framework/source/uifactory/statusbarfactory.cxx:68
#25 0x00007f0bb6df9d74 in non-virtual thunk to (anonymous namespace)::StatusBarFactory::createUIElement(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) ()
at /home/michi/development/git/libreoffice/instdir/program/libfwklo.so
#26 0x00007f0bb6e01290 in (anonymous namespace)::UIElementFactoryManager::createUIElement (this=0x55b0bf803260, ResourceURL="private:resource/statusbar/statusbar", Args=uno::Sequence of length 2 = {...})
at /home/michi/development/git/libreoffice/framework/source/uifactory/uielementfactorymanager.cxx:440
#27 0x00007f0bb6e024f4 in non-virtual thunk to (anonymous namespace)::UIElementFactoryManager::createUIElement(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) ()
at /home/michi/development/git/libreoffice/instdir/program/libfwklo.so
#28 0x00007f0bb6b6d427 in framework::LayoutManager::implts_createElement (this=0x55b0c1e3a170, aName="private:resource/statusbar/statusbar")
at /home/michi/development/git/libreoffice/framework/source/layoutmanager/layoutmanager.cxx:730
#29 0x00007f0bb6b71852 in framework::LayoutManager::implts_createStatusBar (this=0x55b0c1e3a170, aStatusBarName="private:resource/statusbar/statusbar")
at /home/michi/development/git/libreoffice/framework/source/layoutmanager/layoutmanager.cxx:849
#30 0x00007f0bb6b75bcc in framework::LayoutManager::createElement (this=0x55b0c1e3a170, aName="private:resource/statusbar/statusbar") at /home/michi/development/git/libreoffice/framework/source/layoutmanager/layoutmanager.cxx:1443
#31 0x00007f0bb6b76b57 in framework::LayoutManager::requestElement (this=0x55b0c1e3a170, rResourceURL="private:resource/statusbar/statusbar")
at /home/michi/development/git/libreoffice/framework/source/layoutmanager/layoutmanager.cxx:1570
#32 0x00007f0bb595f0b5 in SfxWorkWindow::UpdateStatusBar_Impl (this=0x55b0bf82f570) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1471
#33 0x00007f0bb595e9a0 in SfxWorkWindow::UpdateObjectBars_Impl2 (this=0x55b0bf82f570) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1242
#34 0x00007f0bb595e001 in SfxWorkWindow::UpdateObjectBars_Impl (this=0x55b0bf82f570) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1095
#35 0x00007f0bb59ca573 in SfxDispatcher::Update_Impl (this=0x55b0c742b5b0, bForce=false) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:1123
#36 0x00007f0bb6003921 in SfxBaseController::ConnectSfxFrame_Impl (this=0x55b0c7469930, i_eConnect=SfxBaseController::E_CONNECT) at /home/michi/development/git/libreoffice/sfx2/source/view/sfxbasecontroller.cxx:1207
#37 0x00007f0bb6002ade in SfxBaseController::attachFrame (this=0x55b0c7469930, xFrame=uno::Reference to ((anonymous namespace)::XFrameImpl *) 0x55b0bfb36e40)
at /home/michi/development/git/libreoffice/sfx2/source/view/sfxbasecontroller.cxx:531
#38 0x00007f0bb5fd38b9 in utl::ConnectFrameControllerModel
(xFrame=uno::Reference to ((anonymous namespace)::XFrameImpl *) 0x55b0bfb36e40, xController=uno::Reference to (SwXTextView *) 0x55b0c7469958, xModel=uno::Reference to (SwXTextDocument *) 0x55b0c71c0670)
at include/unotools/fcm.hxx:57
#39 0x00007f0bb5fcfec1 in (anonymous namespace)::SfxFrameLoader_Impl::impl_createDocumentView
(i_rModel=uno::Reference to (SwXTextDocument *) 0x55b0c71c0670, i_rFrame=uno::Reference to ((anonymous namespace)::XFrameImpl *) 0x55b0bfb36e40, i_rViewFactoryArgs=..., i_rViewName="Default")
at /home/michi/development/git/libreoffice/sfx2/source/view/frmload.cxx:585
#40 0x00007f0bb5fcd45c in (anonymous namespace)::SfxFrameLoader_Impl::load (this=0x55b0c22dc9f0, rArgs=uno::Sequence of length 9 = {...}, _rTargetFrame=uno::Reference to ((anonymous namespace)::XFrameImpl *) 0x55b0bfb36e40)
at /home/michi/development/git/libreoffice/sfx2/source/view/frmload.cxx:764
#41 0x00007f0bb6bc2644 in framework::LoadEnv::impl_loadContent (this=0x55b0c1271ec8) at /home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:1180
#42 0x00007f0bb6bbf7a5 in framework::LoadEnv::start (this=0x55b0c1271ec8) at /home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:415
#43 0x00007f0bb6bbd452 in framework::LoadEnv::startLoading
(this=0x55b0c1271ec8, sURL="private:factory/swriter", lMediaDescriptor=uno::Sequence of length 4 = {...}, xBaseFrame=uno::Reference to (framework::Desktop *) 0x55b0bbbee8c8, sTarget="_default", nSearchFlags=0, eFeature=(LoadEnvFeatu--Type <RET> for more, q to quit, c to continue without paging--
res::WorkWithUI | LoadEnvFeatures::AllowContentHandler)) at /home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:311
#44 0x00007f0bb6a56311 in framework::LoadDispatcher::impl_dispatch (this=0x55b0c1271e70, rURL=..., lArguments=uno::Sequence of length 4 = {...}, xListener=empty uno::Reference)
at /home/michi/development/git/libreoffice/framework/source/dispatch/loaddispatcher.cxx:107
#45 0x00007f0bb6a57071 in framework::LoadDispatcher::dispatchWithReturnValue (this=0x55b0c1271e70, rURL=..., lArguments=uno::Sequence of length 4 = {...})
at /home/michi/development/git/libreoffice/framework/source/dispatch/loaddispatcher.cxx:60
#46 0x00007f0bb6a57114 in non-virtual thunk to framework::LoadDispatcher::dispatchWithReturnValue(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) ()
at /home/michi/development/git/libreoffice/framework/source/dispatch/loaddispatcher.cxx:60
#47 0x00007f0bb80110b0 in comphelper::SynchronousDispatch::dispatch (xStartPoint=uno::Reference to (framework::Desktop *) 0x55b0bbbee8b8, sURL="private:factory/swriter", sTarget="_default", lArguments=uno::Sequence of length 4 = {...})
at /home/michi/development/git/libreoffice/comphelper/source/misc/synchronousdispatch.cxx:62
#48 0x00007f0bb99757fd in desktop::DispatchWatcher::executeDispatchRequests (this=0x55b0c16043b0, aDispatchRequestsList=std::__debug::vector of length 1, capacity 1 = {...}, bNoTerminate=false)
at /home/michi/development/git/libreoffice/desktop/source/app/dispatchwatcher.cxx:529
#49 0x00007f0bb9993b5a in desktop::RequestHandler::ExecuteCmdLineRequests (aRequest=..., noTerminate=false) at /home/michi/development/git/libreoffice/desktop/source/app/officeipcthread.cxx:1347
#50 0x00007f0bb992f196 in desktop::Desktop::OpenDefault () at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:2276
#51 0x00007f0bb992e5cd in desktop::Desktop::OpenClients () at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:2220
#52 0x00007f0bb992c3a3 in desktop::Desktop::OpenClients_Impl (this=0x7ffed3055280) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1979
#53 0x00007f0bb992aa3d in desktop::Desktop::LinkStubOpenClients_Impl (instance=0x7ffed3055280, data=0x0) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1963
#54 0x00007f0bb02ac091 in Link<void*, void>::Call (this=0x55b0bffb6ba8, data=0x0) at include/tools/link.hxx:105
#55 0x00007f0bb02a8291 in ImplHandleUserEvent (pSVEvent=0x55b0bffb6ba0) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2285
#56 0x00007f0bb02a51ba in ImplWindowFrameProc (_pWindow=0x55b0bfc9e9b0, nEvent=SalEvent::UserEvent, pEvent=0x55b0bffb6ba0) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2849
#57 0x00007f0bb0e665bc in SalFrame::CallCallback (this=0x55b0bf7eaa50, nEvent=SalEvent::UserEvent, pEvent=0x55b0bffb6ba0) at vcl/inc/salframe.hxx:311
#58 0x00007f0bb0e8ef5f in SalGenericDisplay::ProcessEvent (this=0x55b0baa61510, aEvent=...) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:66
#59 0x00007f0bb09aaddd in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7ffed3053530) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
#60 0x00007f0bb09aacb6 in SalUserEventList::DispatchUserEvents (this=0x55b0baa61510, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
#61 0x00007f0bb0e8eeb5 in SalGenericDisplay::DispatchInternalEvent (this=0x55b0baa61510, bHandleAllCurrentEvent=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:51
#62 0x00007f0ba628536f in call_userEventFn (data=0x55b0ba8d13e0) at vcl/unx/gtk4/../gtk3/gtkdata.cxx:827
#63 0x00007f0babd03d5f in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#64 0x00007f0babd05fd7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#65 0x00007f0babd06740 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#66 0x00007f0ba62840ac in GtkSalData::Yield (this=0x55b0ba8d13e0, bWait=true, bHandleAllCurrentEvents=false) at vcl/unx/gtk4/../gtk3/gtkdata.cxx:405
#67 0x00007f0ba6289863 in GtkInstance::DoYield (this=0x55b0ba8d1290, bWait=true, bHandleAllCurrentEvents=false) at vcl/unx/gtk4/../gtk3/gtkinst.cxx:439
#68 0x00007f0bb0a75c06 in ImplYield (i_bWait=true, i_bAllEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:385
#69 0x00007f0bb0a7551f in Application::Yield () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:488
#70 0x00007f0bb0a75300 in Application::Execute () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:360
#71 0x00007f0bb9928a19 in desktop::Desktop::Main (this=0x7ffed3055280) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1679
#72 0x00007f0bb0a970d6 in ImplSVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:230
#73 0x00007f0bb0a98cc9 in SVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:248
#74 0x00007f0bb99a22fa in soffice_main () at /home/michi/development/git/libreoffice/desktop/source/app/sofficemain.cxx:122
#75 0x000055b09e4b3a6d in sal_main () at /home/michi/development/git/libreoffice/desktop/source/app/main.c:51
#76 0x000055b09e4b3a47 in main (argc=2, argv=0x7ffed3055488) at /home/michi/development/git/libreoffice/desktop/source/app/main.c:49
[1] https://docs.gtk.org/glib/gvariant-format-strings.html#pointers
Change-Id: I87bd2840ac573426264d1dff2fd40ab292f09fc1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181666
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <[email protected]>
(cherry picked from commit 38024bc)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188096
Reviewed-by: Xisco Fauli <[email protected]>
...to avoid > warn:legacy.osl:1217871:1217871:sd/source/ui/framework/tools/FrameworkHelper.cxx:656: FrameworkHelper::WaitForEvent(), no event for a minute? giving up! > warn:legacy.osl:1217871:1217871:canvas/source/cairo/cairo_spritecanvas.cxx:82: CairoSpriteCanvas::SpriteCanvas: No Cairo capability > ================================================================= > ==1217871==ERROR: AddressSanitizer: stack-use-after-return on address 0x7fa9e7be2720 at pc 0x7fa98f2d3422 bp 0x7ffea89263e0 sp 0x7ffea89263d8 > WRITE of size 1 at 0x7fa9e7be2720 thread T0 > #0 0x7fa98f2d3421 in sd::framework::(anonymous namespace)::FlagUpdater::operator()(bool) const /sd/source/ui/framework/tools/FrameworkHelper.cxx:627:42 > #1 0x7fa98f2d330e in void std::__invoke_impl<void, sd::framework::(anonymous namespace)::FlagUpdater&, bool>(std::__invoke_other, sd::framework::(anonymous namespace)::FlagUpdater&, bool&&) /opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/invoke.h:61:14 > #2 0x7fa98f2d30ed in std::enable_if<is_invocable_r_v<void, sd::framework::(anonymous namespace)::FlagUpdater&, bool>, void>::type std::__invoke_r<void, sd::framework::(anonymous namespace)::FlagUpdater&, bool>(sd::framework::(anonymous namespace)::FlagUpdater&, bool&&) /opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/invoke.h:111:2 > #3 0x7fa98f2d2cad in std::_Function_handler<void (bool), sd::framework::(anonymous namespace)::FlagUpdater>::_M_invoke(std::_Any_data const&, bool&&) /opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/std_function.h:290:9 > #4 0x7fa98f2dc5eb in std::function<void (bool)>::operator()(bool) const /opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/std_function.h:591:9 > #5 0x7fa98f2ce73f in (anonymous namespace)::CallbackCaller::notifyConfigurationChange(sd::framework::ConfigurationChangeEvent const&) /sd/source/ui/framework/tools/FrameworkHelper.cxx:827:5 > #6 0x7fa98f0cb3be in sd::framework::ConfigurationControllerBroadcaster::NotifyListeners(std::__debug::vector<rtl::Reference<sd::framework::ConfigurationChangeListener>, std::allocator<rtl::Reference<sd::framework::ConfigurationChangeListener> > > const&, sd::framework::ConfigurationChangeEvent const&) /sd/source/ui/framework/configuration/ConfigurationControllerBroadcaster.cxx:84:24 > #7 0x7fa98f0cbe73 in sd::framework::ConfigurationControllerBroadcaster::NotifyListeners(sd::framework::ConfigurationChangeEvent const&) /sd/source/ui/framework/configuration/ConfigurationControllerBroadcaster.cxx:109:9 > #8 0x7fa98f12ee24 in sd::framework::ConfigurationUpdater::UpdateConfiguration() /sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:169:28 > #9 0x7fa98f12d569 in sd::framework::ConfigurationUpdater::RequestUpdate(rtl::Reference<sd::framework::Configuration> const&) /sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:108:13 > #10 0x7fa98f0536dc in sd::framework::ChangeRequestQueueProcessor::ProcessOneEvent() /sd/source/ui/framework/configuration/ChangeRequestQueueProcessor.cxx:158:33 > #11 0x7fa98f0521a9 in sd::framework::ChangeRequestQueueProcessor::ProcessEvent(void*) /sd/source/ui/framework/configuration/ChangeRequestQueueProcessor.cxx:115:5 > #12 0x7fa98f052018 in sd::framework::ChangeRequestQueueProcessor::LinkStubProcessEvent(void*, void*) /sd/source/ui/framework/configuration/ChangeRequestQueueProcessor.cxx:109:1 > #13 0x7fa9caadaf2d in Link<void*, void>::Call(void*) const /include/tools/link.hxx:105:45 > #14 0x7fa9caac0560 in ImplHandleUserEvent(ImplSVEvent*) /vcl/source/window/winproc.cxx:2312:30 > #15 0x7fa9caaab2aa in ImplWindowFrameProc(vcl::Window*, SalEvent, void const*) /vcl/source/window/winproc.cxx:2876:13 > #16 0x7fa9ce83a5f2 in SalFrame::CallCallback(SalEvent, void const*) const /vcl/inc/salframe.hxx:310:29 > #17 0x7fa9ce8e7311 in SvpSalInstance::ProcessEvent(SalUserEventList::SalUserEvent) /vcl/headless/svpinst.cxx:284:22 > #18 0x7fa9ce8e7aa2 in non-virtual thunk to SvpSalInstance::ProcessEvent(SalUserEventList::SalUserEvent) /vcl/headless/svpinst.cxx > #19 0x7fa9cd06f7a3 in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const /vcl/source/app/salusereventlist.cxx:119:58 > #20 0x7fa9cd06ef3a in SalUserEventList::DispatchUserEvents(bool) /vcl/source/app/salusereventlist.cxx:120:13 > #21 0x7fa9ce8eb7ba in SvpSalInstance::ImplYield(bool, bool) /vcl/headless/svpinst.cxx:437:22 > #22 0x7fa9ce8edfd3 in SvpSalInstance::DoYield(bool, bool) /vcl/headless/svpinst.cxx:516:21 > #23 0x7fa9cd4d1a1a in ImplYield(bool, bool) /vcl/source/app/svapp.cxx:385:48 > #24 0x7fa9cd4d28cf in Scheduler::ProcessEventsToIdle() /vcl/source/app/svapp.cxx:435:12 > #25 0x7fa9a610ec3c in SdUiImpressTest::typeKey(SdXImpressDocument*, unsigned short) /sd/qa/unit/uiimpress.cxx:103:5 > #26 0x7fa9a619cf17 in testTdf166647_userpaint::TestBody() /sd/qa/unit/uiimpress.cxx:2012:5 > #27 0x7fa9a6327587 in void std::__invoke_impl<void, void (testTdf166647_userpaint::*&)(), testTdf166647_userpaint*&>(std::__invoke_memfun_deref, void (testTdf166647_userpaint::*&)(), testTdf166647_userpaint*&) /opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/invoke.h:74:14 > #28 0x7fa9a63271f4 in std::__invoke_result<void (testTdf166647_userpaint::*&)(), testTdf166647_userpaint*&>::type std::__invoke<void (testTdf166647_userpaint::*&)(), testTdf166647_userpaint*&>(void (testTdf166647_userpaint::*&)(), testTdf166647_userpaint*&) /opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/invoke.h:96:14 > #29 0x7fa9a6327070 in void std::_Bind<void (testTdf166647_userpaint::* (testTdf166647_userpaint*))()>::__call<void, 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/functional:495:11 > #30 0x7fa9a6326dd4 in void std::_Bind<void (testTdf166647_userpaint::* (testTdf166647_userpaint*))()>::operator()<void>() /opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/functional:580:17 > #31 0x7fa9a6326c4c in void std::__invoke_impl<void, std::_Bind<void (testTdf166647_userpaint::* (testTdf166647_userpaint*))()>&>(std::__invoke_other, std::_Bind<void (testTdf166647_userpaint::* (testTdf166647_userpaint*))()>&) /opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/invoke.h:61:14 > #32 0x7fa9a6326afc in std::enable_if<is_invocable_r_v<void, std::_Bind<void (testTdf166647_userpaint::* (testTdf166647_userpaint*))()>&>, void>::type std::__invoke_r<void, std::_Bind<void (testTdf166647_userpaint::* (testTdf166647_userpaint*))()>&>(std::_Bind<void (testTdf166647_userpaint::* (testTdf166647_userpaint*))()>&) /opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/invoke.h:111:2 > #33 0x7fa9a632629c in std::_Function_handler<void (), std::_Bind<void (testTdf166647_userpaint::* (testTdf166647_userpaint*))()> >::_M_invoke(std::_Any_data const&) /opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/std_function.h:290:9 > #34 0x7fa9a6217041 in std::function<void ()>::operator()() const /opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/std_function.h:591:9 > #35 0x7fa9a6325668 in CppUnit::TestCaller<testTdf166647_userpaint>::runTest() /workdir/UnpackedTarball/cppunit/include/cppunit/TestCaller.h:175:7 > #36 0x7fa9ecf0988b in CppUnit::TestCaseMethodFunctor::operator()() const (/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.15.so.1+0x31688b) > #37 0x7fa9ed3c86c0 in (anonymous namespace)::Protector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /test/source/vclbootstrapprotector.cxx:37:14 > #38 0x7fa9eced8ccc in CppUnit::ProtectorChain::ProtectFunctor::operator()() const (/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.15.so.1+0x2e5ccc) > #39 0x7fa9e7651410 in (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /unotest/source/cpp/unobootstrapprotector/unobootstrapprotector.cxx:78:12 > #40 0x7fa9eced8ccc in CppUnit::ProtectorChain::ProtectFunctor::operator()() const (/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.15.so.1+0x2e5ccc) > #41 0x7fa9ed2ff0ae in (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /unotest/source/cpp/unoexceptionprotector/unoexceptionprotector.cxx:181:16 > #42 0x7fa9eced8ccc in CppUnit::ProtectorChain::ProtectFunctor::operator()() const (/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.15.so.1+0x2e5ccc) > #43 0x7fa9ece619df in CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.15.so.1+0x26e9df) > #44 0x7fa9eced8ccc in CppUnit::ProtectorChain::ProtectFunctor::operator()() const (/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.15.so.1+0x2e5ccc) > #45 0x7fa9eced2498 in CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.15.so.1+0x2df498) > #46 0x7fa9ecf7a1e7 in CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.15.so.1+0x3871e7) > #47 0x7fa9ecf080eb in CppUnit::TestCase::run(CppUnit::TestResult*) (/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.15.so.1+0x3150eb) > #48 0x7fa9ecf0bbc1 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.15.so.1+0x318bc1) > #49 0x7fa9ecf0ae18 in CppUnit::TestComposite::run(CppUnit::TestResult*) (/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.15.so.1+0x317e18) > #50 0x7fa9ecf0bbc1 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.15.so.1+0x318bc1) > #51 0x7fa9ecf0ae18 in CppUnit::TestComposite::run(CppUnit::TestResult*) (/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.15.so.1+0x317e18) > #52 0x7fa9ecfaf846 in CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) (/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.15.so.1+0x3bc846) > #53 0x7fa9ecf78c9e in CppUnit::TestResult::runTest(CppUnit::Test*) (/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.15.so.1+0x385c9e) > #54 0x7fa9ecfb0712 in CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.15.so.1+0x3bd712) > #55 0x50a2bb in (anonymous namespace)::ProtectedFixtureFunctor::run() const /sal/cppunittester/cppunittester.cxx:328:20 > #56 0x506d13 in main2() /sal/cppunittester/cppunittester.cxx:482:16 > #57 0x50512f in sal_main() /sal/cppunittester/cppunittester.cxx:627:14 > #58 0x504f6e in main /sal/cppunittester/cppunittester.cxx:622:1 (<https://ci.libreoffice.org/job/lo_ubsan/3648/>) as seen during (recently introduced) CppunitTest_sd_uiimpress testTdf166647_userpaint::TestBody. (I assume that there is a pre-existing race accessing CallbackCaller::mxConfigurationController, and that an additional CallbackCaller::stop accessing it doesn't make things worse, so left that point alone for now.) Change-Id: I069b2935b5ca6430710d401b4cae32e4b9c8b7f1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189598 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]>
As the GVariant format string doc says [1] about
pointers:
> The `&` character is used to indicate that serialised data should be
> directly exchanged via a pointer.
>
> Currently, the only use for this character is when it is applied to a
> string (ie: `&s`, `&o` or `&g`). For `g_variant_new()` this has absolutely no
> effect. The string is collected and duplicated normally. For
> `g_variant_get()` it means that instead of creating a newly allocated copy
> of the string, a pointer to the serialised data is returned. This
> pointer should not be freed. Validity checks are performed to ensure
> that the string data will always be properly nul-terminated.
Therefore, freeing the string with
g_free(pLabel);
is incorrect and resulted in a crash when starting Writer with
the gtk4 VCL plugin, s. backtrace below.
Use just "s" instead of "&s" for the format string to get a
string copy that is owned and can be freed.
(Dropping the `g_free` might be an alternative and avoid
a string copy, but it's not instantly clear to me whether
using "a pointer to the serialised data" is safe without
digging any deeper what exactly that means.)
Backtrace:
free(): invalid pointer
[New Thread 125500.125502]
[New Thread 125500.125503]
[New Thread 125500.125504]
[New Thread 125500.125505]
[New Thread 125500.125506]
[New Thread 125500.125507]
[New Thread 125500.125508]
[New Thread 125500.125510]
[New Thread 125500.125511]
[New Thread 125500.125525]
Thread 1 received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
warning: 44 ./nptl/pthread_kill.c: No such file or directory
(rr) bt
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
#1 0x00007f0bb969de2f in __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:78
#2 0x00007f0bb9649d02 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3 0x00007f0bb96324f0 in __GI_abort () at ./stdlib/abort.c:79
#4 0x00007f0bb963332d in __libc_message_impl (fmt=fmt@entry=0x7f0bb97b5303 "%s\n") at ../sysdeps/posix/libc_fatal.c:134
#5 0x00007f0bb96a7965 in malloc_printerr (str=str@entry=0x7f0bb97b3082 "free(): invalid pointer") at ./malloc/malloc.c:5772
#6 0x00007f0bb96a9bf4 in _int_free (av=0x7f0bb97f1ac0 <main_arena>, p=<optimized out>, have_lock=have_lock@entry=0) at ./malloc/malloc.c:4507
#7 0x00007f0bb96ac43f in __GI___libc_free (mem=<optimized out>) at ./malloc/malloc.c:3398
#8 0x00007f0ba62b908a in (anonymous namespace)::MenuHelper::get_item_label (this=0x55b0c8dcd360, rIdent="standard") at vcl/unx/gtk4/../gtk3/gtkinst.cxx:5684
#9 0x00007f0ba63013d8 in (anonymous namespace)::GtkInstanceMenu::get_label (this=0x55b0c8dcd360, rIdent="standard") at vcl/unx/gtk4/../gtk3/gtkinst.cxx:11694
#10 0x00007f0ba6301b2f in virtual thunk to (anonymous namespace)::GtkInstanceMenu::get_label(rtl::OUString const&) const () at vcl/unx/gtk4/../gtk3/gtkinst.cxx:11823
#11 0x00007f0bb482d026 in (anonymous namespace)::SelectionTypePopup::GetItemTextForState (this=0x7ffed304ad80, nState=0) at /home/michi/development/git/libreoffice/svx/source/stbctrls/selctrl.cxx:56
#12 0x00007f0bb482cc59 in SvxSelectionModeControl::StateChangedAtStatusBarControl (this=0x55b0c8d2d6e0, eState=SfxItemState::DEFAULT, pState=0x55b0c8f331c0) at /home/michi/development/git/libreoffice/svx/source/stbctrls/selctrl.cxx:128
#13 0x00007f0bb5f9af1e in SfxStatusBarControl::statusChanged (this=0x55b0c8d2d6e0, rEvent=...) at /home/michi/development/git/libreoffice/sfx2/source/statbar/stbitem.cxx:263
#14 0x00007f0bb5a9d4c8 in SfxDispatchController_Impl::addStatusListener (this=0x55b0c8ed6380, aListener=uno::Reference to (SvxSelectionModeControl *) 0x55b0c8d2d6f0, aURL=...)
at /home/michi/development/git/libreoffice/sfx2/source/control/unoctitm.cxx:841
#15 0x00007f0bb5a9d174 in SfxOfficeDispatch::addStatusListener (this=0x55b0c8f280e0, aListener=uno::Reference to (SvxSelectionModeControl *) 0x55b0c8d2d6f0, aURL=...)
at /home/michi/development/git/libreoffice/sfx2/source/control/unoctitm.cxx:283
#16 0x00007f0bb28a8577 in svt::StatusbarController::bindListener (this=0x55b0c8d2d6e0) at /home/michi/development/git/libreoffice/svtools/source/uno/statusbarcontroller.cxx:462
#17 0x00007f0bb28a7f09 in svt::StatusbarController::update (this=0x55b0c8d2d6e0) at /home/michi/development/git/libreoffice/svtools/source/uno/statusbarcontroller.cxx:169
#18 0x00007f0bb6d41a6b in framework::(anonymous namespace)::lcl_UpdateController<std::__debug::map<unsigned short, com::sun::star::uno::Reference<com::sun::star::frame::XStatusbarController>, std::less<unsigned short>, std::allocator<std::pair<unsigned short const, com::sun::star::uno::Reference<com::sun::star::frame::XStatusbarController> > > > >::operator() (this=0x7ffed304b547, rElement={...})
at /home/michi/development/git/libreoffice/framework/source/uielement/statusbarmanager.cxx:69
#19 0x00007f0bb6d3e5ef in std::for_each<__gnu_debug::_Safe_iterator<std::_Rb_tree_iterator<std::pair<unsigned short const, com::sun::star::uno::Reference<com::sun::star::frame::XStatusbarController> > >, std::__debug::map<unsigned short, com::sun::star::uno::Reference<com::sun::star::frame::XStatusbarController>, std::less<unsigned short>, std::allocator<std::pair<unsigned short const, com::sun::star::uno::Reference<com::sun::star::frame::XStatusbarController> > > >, std::bidirectional_iterator_tag>, framework::(anonymous namespace)::lcl_UpdateController<std::__debug::map<unsigned short, com::sun::star::uno::Reference<com::sun::star::frame::XStatusbarController>, std::less<unsigned short>, std::allocator<std::pair<unsigned short const, com::sun::star::uno::Reference<com::sun::star::frame::XStatusbarController> > > > > > (__first={...}, __last={...}, __f=...)
at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/stl_algo.h:3786
#20 0x00007f0bb6d3d9a5 in framework::StatusBarManager::UpdateControllers (this=0x55b0c8cefc90) at /home/michi/development/git/libreoffice/framework/source/uielement/statusbarmanager.cxx:269
#21 0x00007f0bb6d4028b in framework::StatusBarManager::FillStatusBar (this=0x55b0c8cefc90, rItemContainer=uno::Reference to (framework::ConstItemContainer *) 0x55b0c8e017e8)
at /home/michi/development/git/libreoffice/framework/source/uielement/statusbarmanager.cxx:479
#22 0x00007f0bb6d4ae38 in framework::StatusBarWrapper::initialize (this=0x55b0c8d0f060, aArguments=uno::Sequence of length 4 = {...}) at /home/michi/development/git/libreoffice/framework/source/uielement/statusbarwrapper.cxx:117
#23 0x00007f0bb6df9104 in framework::MenuBarFactory::CreateUIElement
(ResourceURL="private:resource/statusbar/statusbar", Args=uno::Sequence of length 2 = {...}, ResourceType=u"private:resource/statusbar/", _xMenuBar=uno::Reference to (framework::StatusBarWrapper *) 0x55b0c8d0f0f8, _rxContext=uno::Reference to (cppu::(anonymous namespace)::ComponentContext *) 0x55b0ba8b8308) at /home/michi/development/git/libreoffice/framework/source/uifactory/menubarfactory.cxx:158
#24 0x00007f0bb6df9c0a in (anonymous namespace)::StatusBarFactory::createUIElement (this=0x55b0c8e03800, ResourceURL="private:resource/statusbar/statusbar", Args=uno::Sequence of length 2 = {...})
at /home/michi/development/git/libreoffice/framework/source/uifactory/statusbarfactory.cxx:68
#25 0x00007f0bb6df9d74 in non-virtual thunk to (anonymous namespace)::StatusBarFactory::createUIElement(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) ()
at /home/michi/development/git/libreoffice/instdir/program/libfwklo.so
#26 0x00007f0bb6e01290 in (anonymous namespace)::UIElementFactoryManager::createUIElement (this=0x55b0bf803260, ResourceURL="private:resource/statusbar/statusbar", Args=uno::Sequence of length 2 = {...})
at /home/michi/development/git/libreoffice/framework/source/uifactory/uielementfactorymanager.cxx:440
#27 0x00007f0bb6e024f4 in non-virtual thunk to (anonymous namespace)::UIElementFactoryManager::createUIElement(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) ()
at /home/michi/development/git/libreoffice/instdir/program/libfwklo.so
#28 0x00007f0bb6b6d427 in framework::LayoutManager::implts_createElement (this=0x55b0c1e3a170, aName="private:resource/statusbar/statusbar")
at /home/michi/development/git/libreoffice/framework/source/layoutmanager/layoutmanager.cxx:730
#29 0x00007f0bb6b71852 in framework::LayoutManager::implts_createStatusBar (this=0x55b0c1e3a170, aStatusBarName="private:resource/statusbar/statusbar")
at /home/michi/development/git/libreoffice/framework/source/layoutmanager/layoutmanager.cxx:849
#30 0x00007f0bb6b75bcc in framework::LayoutManager::createElement (this=0x55b0c1e3a170, aName="private:resource/statusbar/statusbar") at /home/michi/development/git/libreoffice/framework/source/layoutmanager/layoutmanager.cxx:1443
#31 0x00007f0bb6b76b57 in framework::LayoutManager::requestElement (this=0x55b0c1e3a170, rResourceURL="private:resource/statusbar/statusbar")
at /home/michi/development/git/libreoffice/framework/source/layoutmanager/layoutmanager.cxx:1570
#32 0x00007f0bb595f0b5 in SfxWorkWindow::UpdateStatusBar_Impl (this=0x55b0bf82f570) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1471
#33 0x00007f0bb595e9a0 in SfxWorkWindow::UpdateObjectBars_Impl2 (this=0x55b0bf82f570) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1242
#34 0x00007f0bb595e001 in SfxWorkWindow::UpdateObjectBars_Impl (this=0x55b0bf82f570) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1095
#35 0x00007f0bb59ca573 in SfxDispatcher::Update_Impl (this=0x55b0c742b5b0, bForce=false) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:1123
#36 0x00007f0bb6003921 in SfxBaseController::ConnectSfxFrame_Impl (this=0x55b0c7469930, i_eConnect=SfxBaseController::E_CONNECT) at /home/michi/development/git/libreoffice/sfx2/source/view/sfxbasecontroller.cxx:1207
#37 0x00007f0bb6002ade in SfxBaseController::attachFrame (this=0x55b0c7469930, xFrame=uno::Reference to ((anonymous namespace)::XFrameImpl *) 0x55b0bfb36e40)
at /home/michi/development/git/libreoffice/sfx2/source/view/sfxbasecontroller.cxx:531
#38 0x00007f0bb5fd38b9 in utl::ConnectFrameControllerModel
(xFrame=uno::Reference to ((anonymous namespace)::XFrameImpl *) 0x55b0bfb36e40, xController=uno::Reference to (SwXTextView *) 0x55b0c7469958, xModel=uno::Reference to (SwXTextDocument *) 0x55b0c71c0670)
at include/unotools/fcm.hxx:57
#39 0x00007f0bb5fcfec1 in (anonymous namespace)::SfxFrameLoader_Impl::impl_createDocumentView
(i_rModel=uno::Reference to (SwXTextDocument *) 0x55b0c71c0670, i_rFrame=uno::Reference to ((anonymous namespace)::XFrameImpl *) 0x55b0bfb36e40, i_rViewFactoryArgs=..., i_rViewName="Default")
at /home/michi/development/git/libreoffice/sfx2/source/view/frmload.cxx:585
#40 0x00007f0bb5fcd45c in (anonymous namespace)::SfxFrameLoader_Impl::load (this=0x55b0c22dc9f0, rArgs=uno::Sequence of length 9 = {...}, _rTargetFrame=uno::Reference to ((anonymous namespace)::XFrameImpl *) 0x55b0bfb36e40)
at /home/michi/development/git/libreoffice/sfx2/source/view/frmload.cxx:764
#41 0x00007f0bb6bc2644 in framework::LoadEnv::impl_loadContent (this=0x55b0c1271ec8) at /home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:1180
#42 0x00007f0bb6bbf7a5 in framework::LoadEnv::start (this=0x55b0c1271ec8) at /home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:415
#43 0x00007f0bb6bbd452 in framework::LoadEnv::startLoading
(this=0x55b0c1271ec8, sURL="private:factory/swriter", lMediaDescriptor=uno::Sequence of length 4 = {...}, xBaseFrame=uno::Reference to (framework::Desktop *) 0x55b0bbbee8c8, sTarget="_default", nSearchFlags=0, eFeature=(LoadEnvFeatu--Type <RET> for more, q to quit, c to continue without paging--
res::WorkWithUI | LoadEnvFeatures::AllowContentHandler)) at /home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:311
#44 0x00007f0bb6a56311 in framework::LoadDispatcher::impl_dispatch (this=0x55b0c1271e70, rURL=..., lArguments=uno::Sequence of length 4 = {...}, xListener=empty uno::Reference)
at /home/michi/development/git/libreoffice/framework/source/dispatch/loaddispatcher.cxx:107
#45 0x00007f0bb6a57071 in framework::LoadDispatcher::dispatchWithReturnValue (this=0x55b0c1271e70, rURL=..., lArguments=uno::Sequence of length 4 = {...})
at /home/michi/development/git/libreoffice/framework/source/dispatch/loaddispatcher.cxx:60
#46 0x00007f0bb6a57114 in non-virtual thunk to framework::LoadDispatcher::dispatchWithReturnValue(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) ()
at /home/michi/development/git/libreoffice/framework/source/dispatch/loaddispatcher.cxx:60
#47 0x00007f0bb80110b0 in comphelper::SynchronousDispatch::dispatch (xStartPoint=uno::Reference to (framework::Desktop *) 0x55b0bbbee8b8, sURL="private:factory/swriter", sTarget="_default", lArguments=uno::Sequence of length 4 = {...})
at /home/michi/development/git/libreoffice/comphelper/source/misc/synchronousdispatch.cxx:62
#48 0x00007f0bb99757fd in desktop::DispatchWatcher::executeDispatchRequests (this=0x55b0c16043b0, aDispatchRequestsList=std::__debug::vector of length 1, capacity 1 = {...}, bNoTerminate=false)
at /home/michi/development/git/libreoffice/desktop/source/app/dispatchwatcher.cxx:529
#49 0x00007f0bb9993b5a in desktop::RequestHandler::ExecuteCmdLineRequests (aRequest=..., noTerminate=false) at /home/michi/development/git/libreoffice/desktop/source/app/officeipcthread.cxx:1347
#50 0x00007f0bb992f196 in desktop::Desktop::OpenDefault () at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:2276
#51 0x00007f0bb992e5cd in desktop::Desktop::OpenClients () at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:2220
#52 0x00007f0bb992c3a3 in desktop::Desktop::OpenClients_Impl (this=0x7ffed3055280) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1979
#53 0x00007f0bb992aa3d in desktop::Desktop::LinkStubOpenClients_Impl (instance=0x7ffed3055280, data=0x0) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1963
#54 0x00007f0bb02ac091 in Link<void*, void>::Call (this=0x55b0bffb6ba8, data=0x0) at include/tools/link.hxx:105
#55 0x00007f0bb02a8291 in ImplHandleUserEvent (pSVEvent=0x55b0bffb6ba0) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2285
#56 0x00007f0bb02a51ba in ImplWindowFrameProc (_pWindow=0x55b0bfc9e9b0, nEvent=SalEvent::UserEvent, pEvent=0x55b0bffb6ba0) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2849
#57 0x00007f0bb0e665bc in SalFrame::CallCallback (this=0x55b0bf7eaa50, nEvent=SalEvent::UserEvent, pEvent=0x55b0bffb6ba0) at vcl/inc/salframe.hxx:311
#58 0x00007f0bb0e8ef5f in SalGenericDisplay::ProcessEvent (this=0x55b0baa61510, aEvent=...) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:66
#59 0x00007f0bb09aaddd in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7ffed3053530) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
#60 0x00007f0bb09aacb6 in SalUserEventList::DispatchUserEvents (this=0x55b0baa61510, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
#61 0x00007f0bb0e8eeb5 in SalGenericDisplay::DispatchInternalEvent (this=0x55b0baa61510, bHandleAllCurrentEvent=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:51
#62 0x00007f0ba628536f in call_userEventFn (data=0x55b0ba8d13e0) at vcl/unx/gtk4/../gtk3/gtkdata.cxx:827
#63 0x00007f0babd03d5f in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#64 0x00007f0babd05fd7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#65 0x00007f0babd06740 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#66 0x00007f0ba62840ac in GtkSalData::Yield (this=0x55b0ba8d13e0, bWait=true, bHandleAllCurrentEvents=false) at vcl/unx/gtk4/../gtk3/gtkdata.cxx:405
#67 0x00007f0ba6289863 in GtkInstance::DoYield (this=0x55b0ba8d1290, bWait=true, bHandleAllCurrentEvents=false) at vcl/unx/gtk4/../gtk3/gtkinst.cxx:439
#68 0x00007f0bb0a75c06 in ImplYield (i_bWait=true, i_bAllEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:385
#69 0x00007f0bb0a7551f in Application::Yield () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:488
#70 0x00007f0bb0a75300 in Application::Execute () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:360
#71 0x00007f0bb9928a19 in desktop::Desktop::Main (this=0x7ffed3055280) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1679
#72 0x00007f0bb0a970d6 in ImplSVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:230
#73 0x00007f0bb0a98cc9 in SVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:248
#74 0x00007f0bb99a22fa in soffice_main () at /home/michi/development/git/libreoffice/desktop/source/app/sofficemain.cxx:122
#75 0x000055b09e4b3a6d in sal_main () at /home/michi/development/git/libreoffice/desktop/source/app/main.c:51
#76 0x000055b09e4b3a47 in main (argc=2, argv=0x7ffed3055488) at /home/michi/development/git/libreoffice/desktop/source/app/main.c:49
[1] https://docs.gtk.org/glib/gvariant-format-strings.html#pointers
Change-Id: I87bd2840ac573426264d1dff2fd40ab292f09fc1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181666
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <[email protected]>
(cherry picked from commit 38024bc)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188096
Reviewed-by: Xisco Fauli <[email protected]>
...as seen during CppunitTest_vcl_lifecycle, > ../src/hb-vector.hh:447:33: runtime error: applying non-zero offset 18446744073709551264 to null pointer > #0 0x7ffb5ab18a06 in hb_vector_t<AAT::kern_subtable_accelerator_data_t, false>::shrink_vector(unsigned int) /workdir/UnpackedTarball/harfbuzz/builddir/../src/hb-vector.hh:447:33 > #1 0x7ffb5ab1e1ba in hb_vector_t<AAT::kern_subtable_accelerator_data_t, false>::fini() /workdir/UnpackedTarball/harfbuzz/builddir/../src/hb-vector.hh:163:5 > #2 0x7ffb5ab1e168 in hb_vector_t<AAT::kern_subtable_accelerator_data_t, false>::~hb_vector_t() /workdir/UnpackedTarball/harfbuzz/builddir/../src/hb-vector.hh:85:21 > #3 0x7ffb5ab00c45 in AAT::kern_accelerator_data_t::~kern_accelerator_data_t() /workdir/UnpackedTarball/harfbuzz/builddir/../src/hb-aat-layout-kerx-table.hh:931:8 > #4 0x7ffb5ab0039b in AAT::KerxTable<AAT::kerx>::accelerator_t::accelerator_t(hb_face_t*) /workdir/UnpackedTarball/harfbuzz/builddir/../src/hb-aat-layout-kerx-table.hh:1151:7 > #5 0x7ffb5ab000cc in AAT::kerx_accelerator_t::kerx_accelerator_t(hb_face_t*) /workdir/UnpackedTarball/harfbuzz/builddir/../src/hb-aat-layout-kerx-table.hh:1198:42 > #6 0x7ffb5ab00022 in hb_lazy_loader_t<AAT::kerx_accelerator_t, hb_face_lazy_loader_t<AAT::kerx_accelerator_t, 30u>, hb_face_t, 30u, AAT::kerx_accelerator_t>::create(hb_face_t*) /workdir/UnpackedTarball/harfbuzz/builddir/../src/hb-machinery.hh:266:19 > #7 0x7ffb5aaffd4e in AAT::kerx_accelerator_t* hb_data_wrapper_t<hb_face_t, 30u>::call_create<AAT::kerx_accelerator_t, hb_face_lazy_loader_t<AAT::kerx_accelerator_t, 30u> >() const /workdir/UnpackedTarball/harfbuzz/builddir/../src/hb-machinery.hh:166:42 > #8 0x7ffb5aaffa54 in hb_lazy_loader_t<AAT::kerx_accelerator_t, hb_face_lazy_loader_t<AAT::kerx_accelerator_t, 30u>, hb_face_t, 30u, AAT::kerx_accelerator_t>::get_stored() const /workdir/UnpackedTarball/harfbuzz/builddir/../src/hb-machinery.hh:229:26 > #9 0x7ffb5aaff918 in hb_lazy_loader_t<AAT::kerx_accelerator_t, hb_face_lazy_loader_t<AAT::kerx_accelerator_t, 30u>, hb_face_t, 30u, AAT::kerx_accelerator_t>::get() const /workdir/UnpackedTarball/harfbuzz/builddir/../src/hb-machinery.hh:253:58 > #10 0x7ffb5a9d3a78 in hb_lazy_loader_t<AAT::kerx_accelerator_t, hb_face_lazy_loader_t<AAT::kerx_accelerator_t, 30u>, hb_face_t, 30u, AAT::kerx_accelerator_t>::operator->() const /workdir/UnpackedTarball/harfbuzz/builddir/../src/hb-machinery.hh:213:50 > #11 0x7ffb5a9bc608 in hb_aat_layout_has_positioning /workdir/UnpackedTarball/harfbuzz/builddir/../src/hb-aat-layout.cc:359:10 > #12 0x7ffb5b1169be in hb_ot_shape_planner_t::compile(hb_ot_shape_plan_t&, hb_ot_shape_plan_key_t const&) /workdir/UnpackedTarball/harfbuzz/builddir/../src/hb-ot-shape.cc:158:19 > #13 0x7ffb5b117ffc in hb_ot_shape_plan_t::init0(hb_face_t*, hb_shape_plan_key_t const*) /workdir/UnpackedTarball/harfbuzz/builddir/../src/hb-ot-shape.cc:239:11 > #14 0x7ffb5b19307b in hb_shape_plan_create2 /workdir/UnpackedTarball/harfbuzz/builddir/../src/hb-shape-plan.cc:261:7 > #15 0x7ffb5b1954bd in hb_shape_plan_create_cached2 /workdir/UnpackedTarball/harfbuzz/builddir/../src/hb-shape-plan.cc:554:33 > #16 0x7ffb5b199535 in hb_shape_full /workdir/UnpackedTarball/harfbuzz/builddir/../src/hb-shape.cc:145:33 > #17 0x7ffb57ffa071 in GenericSalLayout::LayoutText(vcl::text::ImplLayoutArgs&, SalLayoutGlyphsImpl const*) /vcl/source/gdi/CommonSalLayout.cxx:606:23 > #18 0x7ffb56c08519 in OutputDevice::ImplLayout(rtl::OUString const&, int, int, Point const&, long, std::span<double const, 18446744073709551615ul>, std::span<unsigned char const, 18446744073709551615ul>, SalLayoutFlags, vcl::text::TextLayoutCache const*, SalLayoutGlyphs const*, std::optional<int>, std::optional<int>, std::optional<int>) const /vcl/source/outdev/text.cxx:1259:36 > #19 0x7ffb56c0fafb in OutputDevice::GetPartialTextArray(rtl::OUString const&, std::__debug::vector<double, std::allocator<double> >*, int, int, int, int, bool, vcl::text::TextLayoutCache const*, SalLayoutGlyphs const*, std::optional<tools::Rectangle>*) const /vcl/source/outdev/text.cxx:791:22 > #20 0x7ffb56c0a375 in OutputDevice::GetTextArray(rtl::OUString const&, std::__debug::vector<double, std::allocator<double> >*, int, int, bool, vcl::text::TextLayoutCache const*, SalLayoutGlyphs const*, std::optional<tools::Rectangle>*) const /vcl/source/outdev/text.cxx:760:12 > #21 0x7ffb56c0a1b0 in OutputDevice::GetTextWidthDouble(rtl::OUString const&, int, int, vcl::text::TextLayoutCache const*, SalLayoutGlyphs const*) const /vcl/source/outdev/text.cxx:632:12 > #22 0x7ffb56c0a058 in OutputDevice::GetTextWidth(rtl::OUString const&, int, int, vcl::text::TextLayoutCache const*, SalLayoutGlyphs const*) const /vcl/source/outdev/text.cxx:624:21 > #23 0x7ffb5943b739 in FontMetricData::ImplInitTextLineSize(OutputDevice const*) /vcl/source/font/fontmetric.cxx:262:30 > #24 0x7ffb56baf404 in OutputDevice::ImplNewFont() const /vcl/source/outdev/font.cxx:741:38 > #25 0x7ffb56ba1d10 in OutputDevice::InitFont() const /vcl/source/outdev/font.cxx:644:10 > #26 0x7ffb56c0a463 in OutputDevice::GetTextHeight() const /vcl/source/outdev/text.cxx:637:10 > #27 0x7ffb55ea641c in vcl::Window::GetTextHeight() const /vcl/source/window/window3.cxx:66:65 > #28 0x7ffb55ee73fc in vcl::Window::ImplInitAppFontData(vcl::Window const*) /vcl/source/window/window.cxx:1185:40 > #29 0x7ffb55ebd975 in vcl::Window::ImplInit(vcl::Window*, long, SystemParentData*) /vcl/source/window/window.cxx:1179:9 > #30 0x7ffb5604436f in PushButton::ImplInit(vcl::Window*, long) /vcl/source/control/button.cxx:684:13 > #31 0x7ffb56054dce in PushButton::PushButton(vcl::Window*, long) /vcl/source/control/button.cxx:1267:5 > #32 0x7ffb31a7b56a in ScopedVclPtrInstance<PushButton>::ScopedVclPtrInstance<std::nullptr_t, int>(std::nullptr_t&&, int&&) /include/vcl/vclptr.hxx:361:45 > #33 0x7ffb31a4ee34 in LifecycleTest::testCast() /vcl/qa/cppunit/lifecycle.cxx:57:40 (<https://ci.libreoffice.org//job/lo_ubsan/3658/>) Change-Id: I00d0b9524042641170d6d2e9933a0f71fc6a6e60 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190045 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]>
This fixes the below assert seen with gtk4 when
hovering over paragraph styles in the "Styles" sidebar
deck in Writer with.
soffice.bin: /home/michi/development/git/libreoffice/vcl/source/app/dbggui.cxx:36: void ImplDbgTestSolarMutex(bool): Assertion `ImplGetSVData()->mpDefInst->GetYieldMutex()->IsCurrentThread() && "SolarMutex not owned!"' failed.
Thread 1 received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
warning: 44 ./nptl/pthread_kill.c: No such file or directory
(rr) bt
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
#1 0x00007fe0abe9e9ff in __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:89
#2 0x00007fe0abe49cc2 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3 0x00007fe0abe324ac in __GI_abort () at ./stdlib/abort.c:73
#4 0x00007fe0abe32420 in __assert_fail_base (fmt=<optimized out>, assertion=<optimized out>, file=<optimized out>, line=36, function=<optimized out>) at ./assert/assert.c:118
#5 0x00007fe0a31b5ccc in ImplDbgTestSolarMutex (owned=true) at /home/michi/development/git/libreoffice/vcl/source/app/dbggui.cxx:36
#6 0x00007fe0aa32b044 in DbgTestSolarMutex (owned=true) at /home/michi/development/git/libreoffice/tools/source/debug/debug.cxx:54
#7 0x00007fe0549fc572 in SwModify::CallSwClientNotify (this=0x559770009880, rHint=...) at /home/michi/development/git/libreoffice/sw/source/core/attr/calbck.cxx:273
#8 0x00007fe0549fc9b1 in sw::BroadcastingModify::CallSwClientNotify (this=0x559770009880, rHint=...) at /home/michi/development/git/libreoffice/sw/source/core/attr/calbck.cxx:297
#9 0x00007fe054f0cd67 in SwDoc::IsUsed (this=0x55976fdd1cf0, rModify=...) at /home/michi/development/git/libreoffice/sw/source/core/doc/poolfmt.cxx:109
#10 0x00007fe055e8fe47 in SwDocStyleSheet::IsUsed (this=0x55976fe02e80) at /home/michi/development/git/libreoffice/sw/source/uibase/app/docstyle.cxx:2481
#11 0x00007fe0a83f603d in StyleList::QueryTooltipHdl (this=0x559771b48dd0, rEntry=...) at /home/michi/development/git/libreoffice/sfx2/source/dialog/StyleList.cxx:1753
#12 0x00007fe0a83edd68 in StyleList::LinkStubQueryTooltipHdl (instance=0x559771b48dd0, data=...) at /home/michi/development/git/libreoffice/sfx2/source/dialog/StyleList.cxx:1743
#13 0x00007fe09a7907bd in Link<weld::TreeIter const&, rtl::OUString>::Call (this=0x559771b27bb8, data=...) at include/tools/link.hxx:105
#14 0x00007fe09a79075f in weld::TreeView::signal_query_tooltip (this=0x559771b27a08, rIter=...) at include/vcl/weld.hxx:1025
#15 0x00007fe09a6e8d09 in (anonymous namespace)::GtkInstanceTreeView::signalQueryTooltip (x=382, y=153, keyboard_tip=0, tooltip=0x559769fbaa90, widget=0x559771b27400) at vcl/unx/gtk4/../gtk3/gtkinst.cxx:14531
#16 0x00007fe0994dedfc in _gtk_marshal_BOOLEAN__INT_INT_BOOLEAN_OBJECT (closure=0x559771b24580, return_value=0x7ffef76e15b0, n_param_values=5, param_values=0x7ffef76e1640, invocation_hint=0x7ffef76e1590, marshal_data=0x0)
at gtk/gtkmarshalers.c:1109
#17 0x00007fe0a967d950 in g_closure_invoke () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#18 0x00007fe0a9691d43 in ??? () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#19 0x00007fe0a9693032 in ??? () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#20 0x00007fe0a96995a6 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#21 0x00007fe0a9699663 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#22 0x00007fe0997c6ada in gtk_widget_query_tooltip (widget=0x55976892b2b0, x=382, y=153, keyboard_mode=0, tooltip=0x559769fbaa90) at ../gtk/gtkwidget.c:5114
#23 0x00007fe0997af430 in gtk_tooltip_run_requery (widget=0x7ffef76e1a58, tooltip=0x559769fbaa90, x=0x7ffef76e1a90, y=0x7ffef76e1a8c) at ../gtk/gtktooltip.c:559
#24 0x00007fe0997b01bb in gtk_tooltip_handle_event_internal (event_type=GDK_MOTION_NOTIFY, surface=0x559764aa88a0, target_widget=0x55976892b2b0, dx=382.953125, dy=153.796875) at ../gtk/gtktooltip.c:1009
#25 0x00007fe0997b0065 in _gtk_tooltip_handle_event (target=0x55976892b2b0, event=0x559772515280) at ../gtk/gtktooltip.c:957
#26 0x00007fe099686120 in gtk_main_do_event (event=0x559772515280) at ../gtk/gtkmain.c:1751
#27 0x00007fe0997e6720 in surface_event (surface=0x559764aa88a0, event=0x559772515280, widget=0x55976a125f10) at ../gtk/gtkwindow.c:4951
#28 0x00007fe099a684cb in _gdk_marshal_BOOLEAN__POINTERv (closure=0x55976bc7ddf0, return_value=0x7ffef76e1eb0, instance=0x559764aa88a0, args=0x7ffef76e1fb0, marshal_data=0x0, n_params=1, param_types=0x559764ac5730)
at gdk/gdkmarshalers.c:302
#29 0x00007fe099b50e3c in gdk_surface_event_marshallerv (closure=0x55976bc7ddf0, return_value=0x7ffef76e1eb0, instance=0x559764aa88a0, args=0x7ffef76e1fb0, marshal_data=0x0, n_params=1, param_types=0x559764ac5730)
at ../gdk/gdksurface.c:465
#30 0x00007fe0a967db81 in ??? () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#31 0x00007fe0a9692b33 in ??? () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#32 0x00007fe0a96995a6 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#33 0x00007fe0a9699663 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#34 0x00007fe099b55ee7 in gdk_surface_handle_event (event=0x559772515280) at ../gdk/gdksurface.c:3001
#35 0x00007fe099b0ae91 in _gdk_event_emit (event=0x559772515280) at ../gdk/gdkevents.c:491
#36 0x00007fe099b0b946 in _gdk_event_queue_flush (display=0x5597649c1140) at ../gdk/gdkevents.c:856
#37 0x00007fe099b54d84 in gdk_surface_flush_events (clock=0x559764a437b0, data=0x559764aa88a0) at ../gdk/gdksurface.c:2419
#38 0x00007fe0a967db81 in ??? () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#39 0x00007fe0a96938b8 in ??? () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#40 0x00007fe0a96995a6 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#41 0x00007fe0a9699663 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#42 0x00007fe099b13cae in _gdk_frame_clock_emit_flush_events (frame_clock=0x559764a437b0) at ../gdk/gdkframeclock.c:701
#43 0x00007fe099b1492d in gdk_frame_clock_flush_idle (data=0x559764a437b0) at ../gdk/gdkframeclockidle.c:391
#44 0x00007fe09e50744e in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#45 0x00007fe09e5043c5 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#46 0x00007fe09e5065f7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#47 0x00007fe09e506d60 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#48 0x00007fe09a683dac in GtkSalData::Yield (this=0x5597637370a0, bWait=true, bHandleAllCurrentEvents=false) at vcl/unx/gtk4/../gtk3/gtkdata.cxx:403
#49 0x00007fe09a689403 in GtkInstance::DoYield (this=0x559763736f50, bWait=true, bHandleAllCurrentEvents=false) at vcl/unx/gtk4/../gtk3/gtkinst.cxx:440
#50 0x00007fe0a328c606 in ImplYield (i_bWait=true, i_bAllEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:385
#51 0x00007fe0a328bf1f in Application::Yield () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:488
#52 0x00007fe0a328bd00 in Application::Execute () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:360
#53 0x00007fe0ac129915 in desktop::Desktop::Main (this=0x7ffef76e4160) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1678
#54 0x00007fe0a32b8526 in ImplSVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:230
#55 0x00007fe0a32ba019 in SVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:248
#56 0x00007fe0ac1a35ca in soffice_main () at /home/michi/development/git/libreoffice/desktop/source/app/sofficemain.cxx:122
#57 0x0000559759c3b9fd in sal_main () at /home/michi/development/git/libreoffice/desktop/source/app/main.c:51
#58 0x0000559759c3b9d7 in main (argc=2, argv=0x7ffef76e4368) at /home/michi/development/git/libreoffice/desktop/source/app/main.c:49
Change-Id: If520816e8f748a7f082226d216b10aa5a2c27717
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190318
Reviewed-by: Michael Weghorn <[email protected]>
Tested-by: Jenkins
...and of "use a different memory allocation strategy for caches" This reverts the sw/source/core/ole/ndole.cxx part of commit 3fc2216 and of commit b8935ee for now, as it causes > ==489880==ERROR: AddressSanitizer: heap-use-after-free on address 0x7c4dc7e22210 at pc 0x7b6d336739b2 bp 0x7ffc09ed2d50 sp 0x7ffc09ed2d48 > READ of size 8 at 0x7c4dc7e22210 thread T0 (kitbroker_003) > #0 in __gnu_cxx::__normal_iterator<SwOLEObj* const*, std::__cxx1998::vector<SwOLEObj*, std::pmr::polymorphic_allocator<SwOLEObj*>>>::__normal_iterator(SwOLEObj* const* const&) at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/stl_iterator.h:1059:20 > #1 in std::__cxx1998::vector<SwOLEObj*, std::pmr::polymorphic_allocator<SwOLEObj*>>::begin() const at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/stl_vector.h:1009:16 > #2 in std::__cxx1998::vector<SwOLEObj*, std::pmr::polymorphic_allocator<SwOLEObj*>>::empty() const at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/stl_vector.h:1224:16 > #3 in (anonymous namespace)::SwOLELRUCache::dropCaches() at core/sw/source/core/ole/ndole.cxx:98:29 > #4 in ImplSVData::dropCaches() at core/vcl/source/app/svdata.cxx:455:43 > #5 in vcl::lok::trimMemory(int) at core/vcl/source/app/svapp.cxx:1800:18 > #6 in lo_trimMemory(_LibreOfficeKit*, int) at core/desktop/source/lib/init.cxx:3403:5 > #7 in Document::trimAfterInactivity() at online/kit/Kit.cpp:1122:17 > #8 in KitSocketPoll::kitPoll(int) at online/kit/Kit.cpp:3045:20 > #9 in SvpSalInstance::ImplYield(bool, bool) at core/vcl/headless/svpinst.cxx:463:31 > #10 in SvpSalInstance::DoYield(bool, bool) at core/vcl/headless/svpinst.cxx:504:21 > #11 in ImplYield(bool, bool) at core/vcl/source/app/svapp.cxx:389:48 > #12 in Application::Yield() at core/vcl/source/app/svapp.cxx:492:5 > #13 in Application::Execute() at core/vcl/source/app/svapp.cxx:364:13 > #14 in desktop::Desktop::Main() at core/desktop/source/app/app.cxx:1680:13 > #15 in ImplSVMain() at core/vcl/source/app/svmain.cxx:228:35 > #16 in SVMain() at core/vcl/source/app/svmain.cxx:246:12 > #17 in soffice_main at core/desktop/source/app/sofficemain.cxx:121:12 > #18 in lo_runLoop(_LibreOfficeKit*, int (*)(void*, int), void (*)(void*), void*) at core/desktop/source/lib/init.cxx:7849:9 > #19 in lokit_main(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool, bool, bool, bool, bool, unsigned long) at online/kit/Kit.cpp:3928:16 > #20 in createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)::$_0::operator()() const at online/kit/ForKit.cpp:553:13 > #21 in void std::__invoke_impl<void, createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)::$_0&>(std::__invoke_other, createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)::$_0&) at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/invoke.h:63:14 > #22 in std::enable_if<is_invocable_r_v<void, createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)::$_0&>, void>::type std::__invoke_r<void, createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)::$_0&>(createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)::$_0&) at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/invoke.h:113:2 > #23 in std::_Function_handler<void (), createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)::$_0>::_M_invoke(std::_Any_data const&) at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/std_function.h:292:9 > #24 in std::function<void ()>::operator()() const at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/std_function.h:593:9 > #25 in forkKit(std::function<void ()> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::function<void (int)> const&) at online/kit/ForKit.cpp:496:9 > #26 in createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool) at online/kit/ForKit.cpp:573:20 > #27 in forkLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool) at online/kit/ForKit.cpp:698:39 > #28 in forkit_main(int, char**) at online/kit/ForKit.cpp:1100:17 > #29 in __libc_start_call_main at <null> Change-Id: I8fdc88ca965e27c16b92df1c05e95eca23ab57b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190379 Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Caolán McNamara <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]>
...cf. > warn:sal.osl:998109:998080:sal/osl/unx/module.cxx:103: dlopen(.../core/instdir/program/libacclo.so, 1): .../core/instdir/program/libacclo.so: undefined symbol: _ZTI7TabPage and the failing assert at > #0 in vcl::AccessibleFactoryAccess::ensureInitialized() at core/vcl/source/helper/svtaccessiblefactory.cxx:252:80 > #1 in vcl::AccessibleFactoryAccess::getFactory() at core/vcl/source/helper/svtaccessiblefactory.cxx:280:9 > #2 in IconView::CreateAccessible() at core/vcl/source/treelist/iconview.cxx:248:44 > #3 in SalInstanceIconView::SalInstanceIconView(IconView*, SalInstanceBuilder*, bool) at core/vcl/source/app/salvtables.cxx:5398:45 > #4 in JSWidget<SalInstanceIconView, IconView>::JSWidget(JSDialogSender*, IconView*, SalInstanceBuilder*, bool) at core/vcl/inc/jsdialog/jsdialogbuilder.hxx:300:11 > #5 in JSIconView::JSIconView(JSDialogSender*, IconView*, SalInstanceBuilder*, bool) at core/vcl/jsdialog/jsdialogbuilder.cxx:1892:7 > #6 in std::__detail::_MakeUniq<JSIconView>::__single_object std::make_unique<JSIconView, JSInstanceBuilder*, IconView*&, JSInstanceBuilder*, bool>(JSInstanceBuilder*&&, IconView*&, JSInstanceBuilder*&&, bool&&) at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/unique_ptr.h:1085:34 > #7 in JSInstanceBuilder::weld_icon_view(rtl::OUString const&) at core/vcl/jsdialog/jsdialogbuilder.cxx:772:23 > #8 in StylesPreviewWindow_Base::StylesPreviewWindow_Base(weld::Builder&, std::__debug::vector<std::pair<rtl::OUString, rtl::OUString>, std::allocator<std::pair<rtl::OUString, rtl::OUString>>>&&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) at core/svx/source/tbxctrls/StylesPreviewWindow.cxx:449:30 > #9 in StylesPreviewWindow_Impl::StylesPreviewWindow_Impl(vcl::Window*, std::__debug::vector<std::pair<rtl::OUString, rtl::OUString>, std::allocator<std::pair<rtl::OUString, rtl::OUString>>>&&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) at core/svx/source/tbxctrls/StylesPreviewWindow.cxx:661:7 > #10 in VclPtr<StylesPreviewWindow_Impl> VclPtr<StylesPreviewWindow_Impl>::Create<VclPtr<vcl::Window>&, std::__debug::vector<std::pair<rtl::OUString, rtl::OUString>, std::allocator<std::pair<rtl::OUString, rtl::OUString>>>, com::sun::star::uno::Reference<com::sun::star::frame::XFrame>&>(VclPtr<vcl::Window>&, std::__debug::vector<std::pair<rtl::OUString, rtl::OUString>, std::allocator<std::pair<rtl::OUString, rtl::OUString>>>&&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame>&) at core/include/vcl/vclptr.hxx:130:46 > #11 in StylesPreviewToolBoxControl::createItemWindow(com::sun::star::uno::Reference<com::sun::star::awt::XWindow> const&) at core/svx/source/tbxctrls/StylesPreviewToolBoxControl.cxx:159:25 > #12 in non-virtual thunk to StylesPreviewToolBoxControl::createItemWindow(com::sun::star::uno::Reference<com::sun::star::awt::XWindow> const&) at core/svx/source/tbxctrls/StylesPreviewToolBoxControl.cxx > #13 in sfx2::sidebar::ControllerFactory::CreateToolBoxController(ToolBox*, o3tl::strong_int<unsigned short, ToolBoxItemIdTag>, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, com::sun::star::uno::Reference<com::sun::star::frame::XController> const&, com::sun::star::uno::Reference<com::sun::star::awt::XWindow> const&, int, bool) at core/sfx2/source/sidebar/ControllerFactory.cxx:117:63 > #14 in sfx2::sidebar::SidebarToolBox::CreateController(o3tl::strong_int<unsigned short, ToolBoxItemIdTag>, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, int, bool) at core/sfx2/source/sidebar/SidebarToolBox.cxx:169:59 > #15 in sfx2::sidebar::SidebarToolBox::InsertItem(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, ToolBoxItemBits, Size const&, unsigned long) at core/sfx2/source/sidebar/SidebarToolBox.cxx:137:5 > #16 in VclBuilder::makeObject(vcl::Window*, rtl::OUString const&, rtl::OUString const&, std::__debug::map<rtl::OUString, rtl::OUString, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::OUString>>>&) at core/vcl/source/window/builder.cxx:1973:27 > #17 in VclBuilder::insertObject(vcl::Window*, rtl::OUString const&, std::basic_string_view<char, std::char_traits<char>>, rtl::OUString const&, std::__debug::map<rtl::OUString, rtl::OUString, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::OUString>>>&, std::__debug::map<rtl::OUString, rtl::OUString, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::OUString>>>&, std::__debug::map<rtl::OUString, rtl::OUString, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::OUString>>>&) at core/vcl/source/window/builder.cxx:2350:25 > #18 in WidgetBuilder<vcl::Window, VclPtr<vcl::Window>, PopupMenu, VclPtr<PopupMenu>>::handleObject(vcl::Window*, std::__debug::map<rtl::OUString, rtl::OUString, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::OUString>>>*, xmlreader::XmlReader&, std::basic_string_view<char, std::char_traits<char>>, std::basic_string_view<char, std::char_traits<char>>, bool) at core/include/vcl/widgetbuilder.hxx:285:29 > #19 in WidgetBuilder<vcl::Window, VclPtr<vcl::Window>, PopupMenu, VclPtr<PopupMenu>>::handleChild(vcl::Window*, std::__debug::map<rtl::OUString, rtl::OUString, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::OUString>>>*, xmlreader::XmlReader&, bool) at core/include/vcl/widgetbuilder.hxx:127:37 > #20 in WidgetBuilder<vcl::Window, VclPtr<vcl::Window>, PopupMenu, VclPtr<PopupMenu>>::handleObject(vcl::Window*, std::__debug::map<rtl::OUString, rtl::OUString, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::OUString>>>*, xmlreader::XmlReader&, std::basic_string_view<char, std::char_traits<char>>, std::basic_string_view<char, std::char_traits<char>>, bool) at core/include/vcl/widgetbuilder.hxx:233:21 > #21 in WidgetBuilder<vcl::Window, VclPtr<vcl::Window>, PopupMenu, VclPtr<PopupMenu>>::handleChild(vcl::Window*, std::__debug::map<rtl::OUString, rtl::OUString, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::OUString>>>*, xmlreader::XmlReader&, bool) at core/include/vcl/widgetbuilder.hxx:127:37 > #22 in WidgetBuilder<vcl::Window, VclPtr<vcl::Window>, PopupMenu, VclPtr<PopupMenu>>::handleObject(vcl::Window*, std::__debug::map<rtl::OUString, rtl::OUString, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::OUString>>>*, xmlreader::XmlReader&, std::basic_string_view<char, std::char_traits<char>>, std::basic_string_view<char, std::char_traits<char>>, bool) at core/include/vcl/widgetbuilder.hxx:233:21 > #23 in WidgetBuilder<vcl::Window, VclPtr<vcl::Window>, PopupMenu, VclPtr<PopupMenu>>::handleChild(vcl::Window*, std::__debug::map<rtl::OUString, rtl::OUString, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::OUString>>>*, xmlreader::XmlReader&, bool) at core/include/vcl/widgetbuilder.hxx:127:37 > #24 in WidgetBuilder<vcl::Window, VclPtr<vcl::Window>, PopupMenu, VclPtr<PopupMenu>>::handleObject(vcl::Window*, std::__debug::map<rtl::OUString, rtl::OUString, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::OUString>>>*, xmlreader::XmlReader&, std::basic_string_view<char, std::char_traits<char>>, std::basic_string_view<char, std::char_traits<char>>, bool) at core/include/vcl/widgetbuilder.hxx:233:21 > #25 in WidgetBuilder<vcl::Window, VclPtr<vcl::Window>, PopupMenu, VclPtr<PopupMenu>>::handleChild(vcl::Window*, std::__debug::map<rtl::OUString, rtl::OUString, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::OUString>>>*, xmlreader::XmlReader&, bool) at core/include/vcl/widgetbuilder.hxx:127:37 > #26 in WidgetBuilder<vcl::Window, VclPtr<vcl::Window>, PopupMenu, VclPtr<PopupMenu>>::processUIFile(vcl::Window*) at core/include/vcl/widgetbuilder.hxx:70:13 > #27 in VclBuilder::VclBuilder(vcl::Window*, std::basic_string_view<char16_t, std::char_traits<char16_t>>, rtl::OUString const&, rtl::OUString, com::sun::star::uno::Reference<com::sun::star::frame::XFrame>, bool, std::unique_ptr<NotebookBarAddonsItem, std::default_delete<NotebookBarAddonsItem>>) at core/vcl/source/window/builder.cxx:535:5 > #28 in SalInstanceBuilder::SalInstanceBuilder(vcl::Window*, std::basic_string_view<char16_t, std::char_traits<char16_t>>, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) at core/vcl/source/app/salvtables.cxx:7164:22 > #29 in JSInstanceBuilder::JSInstanceBuilder(weld::Widget*, vcl::Window*, std::basic_string_view<char16_t, std::char_traits<char16_t>>, rtl::OUString const&, JSInstanceBuilder::Type, unsigned long, std::basic_string_view<char16_t, std::char_traits<char16_t>> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) at core/vcl/jsdialog/jsdialogbuilder.cxx:276:7 > #30 in std::__detail::_MakeUniq<JSInstanceBuilder>::__single_object std::make_unique<JSInstanceBuilder, std::nullptr_t, vcl::Window*&, rtl::OUString const&, rtl::OUString const&, JSInstanceBuilder::Type, unsigned long&, char16_t const (&) [1], com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&>(std::nullptr_t&&, vcl::Window*&, rtl::OUString const&, rtl::OUString const&, JSInstanceBuilder::Type&&, unsigned long&, char16_t const (&) [1], com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/unique_ptr.h:1085:34 > #31 in JSInstanceBuilder::CreateNotebookbarBuilder(vcl::Window*, rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, unsigned long) at core/vcl/jsdialog/jsdialogbuilder.cxx:331:12 > #32 in WeldedTabbedNotebookbar::WeldedTabbedNotebookbar(VclPtr<vcl::Window> const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, unsigned long) at core/vcl/source/control/WeldedTabbedNotebookbar.cxx:17:18 > #33 in sfx2::SfxNotebookBar::StateMethod(SystemWindow*, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, std::basic_string_view<char16_t, std::char_traits<char16_t>>, bool) at core/sfx2/source/notebookbar/SfxNotebookBar.cxx:513:29 > #34 in sfx2::SfxNotebookBar::StateMethod(SfxBindings&, std::basic_string_view<char16_t, std::char_traits<char16_t>>, bool) at core/sfx2/source/notebookbar/SfxNotebookBar.cxx:423:12 > #35 in SwDocShell::GetState(SfxItemSet&) at core/sw/source/uibase/app/docsh.cxx:1117:28 > #36 in SfxStubSwDocShellGetState(SfxShell*, SfxItemSet&) at core/workdir/SdiTarget/sw/sdi/swslots.hxx:1427:1 > #37 in SfxShell::GetSlotState(unsigned short, SfxInterface const*, SfxItemSet*) at core/sfx2/source/control/shell.cxx:492:13 > #38 in SfxDispatcher::QueryState(unsigned short, SfxPoolItemHolder&) at core/sfx2/source/control/dispatch.cxx:2051:26 > #39 in SfxApplication::MiscExec_Impl(SfxRequest&) at core/sfx2/source/appl/appserv.cxx:1144:50 > #40 in SfxStubSfxApplicationMiscExec_Impl(SfxShell*, SfxRequest&) at core/workdir/SdiTarget/sfx2/sdi/sfxslots.hxx:1307:1 > #41 in SfxDispatcher::Call_Impl(SfxShell&, SfxSlot const&, SfxRequest&, bool) at core/sfx2/source/control/dispatch.cxx:255:9 > #42 in SfxDispatcher::Execute_(SfxShell&, SfxSlot const&, SfxRequest&, SfxCallMode) at core/sfx2/source/control/dispatch.cxx:754:9 > #43 in SfxDispatcher::Execute(unsigned short, SfxCallMode, SfxItemSet const*, SfxItemSet const*, unsigned short) at core/sfx2/source/control/dispatch.cxx:813:9 > #44 in SfxDispatchController_Impl::dispatch(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> const&) at core/sfx2/source/control/unoctitm.cxx:716:46 > #45 in SfxOfficeDispatch::dispatch(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at core/sfx2/source/control/unoctitm.cxx:255:20 > #46 in comphelper::dispatchCommand(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::frame::XDispatchProvider> const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> const&) at core/comphelper/source/misc/dispatchcommand.cxx:63:12 > #47 in comphelper::dispatchCommand(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> const&) at core/comphelper/source/misc/dispatchcommand.cxx:73:12 > #48 in comphelper::dispatchCommand(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> const&) at core/comphelper/source/misc/dispatchcommand.cxx:94:12 > #49 in doc_postUnoCommand(_LibreOfficeKitDocument*, char const*, char const*, bool) at core/desktop/source/lib/init.cxx:5617:19 > #50 in ChildSession::unoCommand(StringVector const&) at online/kit/ChildSession.cpp:2357:25 > #51 in ChildSession::_handleInput(char const*, int) at online/kit/ChildSession.cpp:703:20 > #52 in Session::handleMessage(std::vector<char, std::allocator<char>> const&) at online/common/Session.cpp > #53 in Document::forwardToChild(std::basic_string_view<char, std::char_traits<char>>, std::vector<char, std::allocator<char>> const&) at online/kit/Kit.cpp:2283:26 > #54 in Document::drainQueue() at online/kit/Kit.cpp:2553:17 > #55 in KitSocketPoll::drainQueue() at online/kit/Kit.cpp:2961:20 > #56 in KitSocketPoll::kitPoll(int) at online/kit/Kit.cpp:3034:13 > #57 in SvpSalInstance::ImplYield(bool, bool) at core/vcl/headless/svpinst.cxx:463:31 > #58 in SvpSalInstance::DoYield(bool, bool) at core/vcl/headless/svpinst.cxx:504:21 > #59 in ImplYield(bool, bool) at core/vcl/source/app/svapp.cxx:389:48 > #60 in Application::Yield() at core/vcl/source/app/svapp.cxx:492:5 > #61 in Application::Execute() at core/vcl/source/app/svapp.cxx:364:13 > #62 in desktop::Desktop::Main() at core/desktop/source/app/app.cxx:1680:13 > #63 in ImplSVMain() at core/vcl/source/app/svmain.cxx:228:35 > #64 in SVMain() at core/vcl/source/app/svmain.cxx:246:12 > #65 in soffice_main at core/desktop/source/app/sofficemain.cxx:121:12 > #66 in lo_runLoop(_LibreOfficeKit*, int (*)(void*, int), void (*)(void*), void*) at core/desktop/source/lib/init.cxx:7849:9 > #67 in lokit_main(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool, bool, bool, bool, bool, unsigned long) at online/kit/Kit.cpp:3928:16 > #68 in createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)::$_0::operator()() const at online/kit/ForKit.cpp:553:13 > #69 in void std::__invoke_impl<void, createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)::$_0&>(std::__invoke_other, createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)::$_0&) at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/invoke.h:63:14 > #70 in std::enable_if<is_invocable_r_v<void, createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)::$_0&>, void>::type std::__invoke_r<void, createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)::$_0&>(createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)::$_0&) at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/invoke.h:113:2 > #71 in std::_Function_handler<void (), createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)::$_0>::_M_invoke(std::_Any_data const&) at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/std_function.h:292:9 > #72 in std::function<void ()>::operator()() const at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/std_function.h:593:9 > #73 in forkKit(std::function<void ()> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::function<void (int)> const&) at online/kit/ForKit.cpp:496:9 > #74 in createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool) at online/kit/ForKit.cpp:573:20 > #75 in createSubForKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool)::$_0::operator()() const at online/kit/ForKit.cpp:620:33 > #76 in void std::__invoke_impl<void, createSubForKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool)::$_0&>(std::__invoke_other, createSubForKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool)::$_0&) at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/invoke.h:63:14 > #77 in std::enable_if<is_invocable_r_v<void, createSubForKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool)::$_0&>, void>::type std::__invoke_r<void, createSubForKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool)::$_0&>(createSubForKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool)::$_0&) at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/invoke.h:113:2 > #78 in std::_Function_handler<void (), createSubForKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool)::$_0>::_M_invoke(std::_Any_data const&) at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/std_function.h:292:9 > #79 in std::function<void ()>::operator()() const at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/std_function.h:593:9 > #80 in forkKit(std::function<void ()> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::function<void (int)> const&) at online/kit/ForKit.cpp:496:9 > #81 in createSubForKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool) at online/kit/ForKit.cpp:657:16 > #82 in createSubForKits(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool) at online/kit/ForKit.cpp:674:13 > #83 in forkit_main(int, char**) at online/kit/ForKit.cpp:1102:17 > #84 in __libc_start_call_main at <null> (and this is no longer relevant on master after 9283da8 "a11y: Merge accessibility module into vcl") Change-Id: Icc49bcf8e9bd95b4fdb86b9420cc360e5fa17c08 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190390 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Andras Timar <[email protected]>
...and of "use a different memory allocation strategy for caches" This reverts the sw/source/core/ole/ndole.cxx part of commit 3fc2216 and of commit b8935ee for now, as it causes > ==489880==ERROR: AddressSanitizer: heap-use-after-free on address 0x7c4dc7e22210 at pc 0x7b6d336739b2 bp 0x7ffc09ed2d50 sp 0x7ffc09ed2d48 > READ of size 8 at 0x7c4dc7e22210 thread T0 (kitbroker_003) > #0 in __gnu_cxx::__normal_iterator<SwOLEObj* const*, std::__cxx1998::vector<SwOLEObj*, std::pmr::polymorphic_allocator<SwOLEObj*>>>::__normal_iterator(SwOLEObj* const* const&) at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/stl_iterator.h:1059:20 > #1 in std::__cxx1998::vector<SwOLEObj*, std::pmr::polymorphic_allocator<SwOLEObj*>>::begin() const at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/stl_vector.h:1009:16 > #2 in std::__cxx1998::vector<SwOLEObj*, std::pmr::polymorphic_allocator<SwOLEObj*>>::empty() const at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/stl_vector.h:1224:16 > #3 in (anonymous namespace)::SwOLELRUCache::dropCaches() at core/sw/source/core/ole/ndole.cxx:98:29 > #4 in ImplSVData::dropCaches() at core/vcl/source/app/svdata.cxx:455:43 > #5 in vcl::lok::trimMemory(int) at core/vcl/source/app/svapp.cxx:1800:18 > #6 in lo_trimMemory(_LibreOfficeKit*, int) at core/desktop/source/lib/init.cxx:3403:5 > #7 in Document::trimAfterInactivity() at online/kit/Kit.cpp:1122:17 > #8 in KitSocketPoll::kitPoll(int) at online/kit/Kit.cpp:3045:20 > #9 in SvpSalInstance::ImplYield(bool, bool) at core/vcl/headless/svpinst.cxx:463:31 > #10 in SvpSalInstance::DoYield(bool, bool) at core/vcl/headless/svpinst.cxx:504:21 > #11 in ImplYield(bool, bool) at core/vcl/source/app/svapp.cxx:389:48 > #12 in Application::Yield() at core/vcl/source/app/svapp.cxx:492:5 > #13 in Application::Execute() at core/vcl/source/app/svapp.cxx:364:13 > #14 in desktop::Desktop::Main() at core/desktop/source/app/app.cxx:1680:13 > #15 in ImplSVMain() at core/vcl/source/app/svmain.cxx:228:35 > #16 in SVMain() at core/vcl/source/app/svmain.cxx:246:12 > #17 in soffice_main at core/desktop/source/app/sofficemain.cxx:121:12 > #18 in lo_runLoop(_LibreOfficeKit*, int (*)(void*, int), void (*)(void*), void*) at core/desktop/source/lib/init.cxx:7849:9 > #19 in lokit_main(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool, bool, bool, bool, bool, unsigned long) at online/kit/Kit.cpp:3928:16 > #20 in createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)::$_0::operator()() const at online/kit/ForKit.cpp:553:13 > #21 in void std::__invoke_impl<void, createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)::$_0&>(std::__invoke_other, createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)::$_0&) at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/invoke.h:63:14 > #22 in std::enable_if<is_invocable_r_v<void, createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)::$_0&>, void>::type std::__invoke_r<void, createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)::$_0&>(createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)::$_0&) at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/invoke.h:113:2 > #23 in std::_Function_handler<void (), createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool)::$_0>::_M_invoke(std::_Any_data const&) at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/std_function.h:292:9 > #24 in std::function<void ()>::operator()() const at /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/std_function.h:593:9 > #25 in forkKit(std::function<void ()> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::function<void (int)> const&) at online/kit/ForKit.cpp:496:9 > #26 in createLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool) at online/kit/ForKit.cpp:573:20 > #27 in forkLibreOfficeKit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool) at online/kit/ForKit.cpp:698:39 > #28 in forkit_main(int, char**) at online/kit/ForKit.cpp:1100:17 > #29 in __libc_start_call_main at <null> Change-Id: I8fdc88ca965e27c16b92df1c05e95eca23ab57b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190379 Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Caolán McNamara <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]>
...presumably after 981d8be "freetype: upgrade to 2.14.1", causing e.g. CppunitTest_chart2_pivot_chart_test to fail with > workdir/UnpackedTarball/freetype/src/autofit/aflatin.c:3708:31: runtime error: signed integer overflow: 2161 - -9223372036854775808 cannot be represented in type 'FT_Pos' (aka 'long') > #0 in af_glyph_hints_apply_vertical_separation_adjustments at workdir/UnpackedTarball/freetype/src/autofit/aflatin.c:3708:31 > #1 in af_latin_hints_apply at workdir/UnpackedTarball/freetype/src/autofit/aflatin.c:5054:9 > #2 in af_loader_load_glyph at workdir/UnpackedTarball/freetype/src/autofit/afloader.c:411:17 > #3 in af_autofitter_load_glyph at workdir/UnpackedTarball/freetype/src/autofit/afmodule.c:498:13 > #4 in FT_Load_Glyph at workdir/UnpackedTarball/freetype/src/base/ftobjs.c:1055:19 > #5 at <null> (/lib64/libcairo.so.2 +0x9be4b) > #6 at <null> (/lib64/libcairo.so.2 +0xa0df1) > #7 at <null> (/lib64/libcairo.so.2 +0x528b6) > #8 at <null> (/lib64/libcairo.so.2 +0x57184) > #9 at <null> (/lib64/libcairo.so.2 +0x179f6) > #10 at <null> (/lib64/libcairo.so.2 +0x1a5f7) > #11 at <null> (/lib64/libcairo.so.2 +0x27459) > #12 at <null> (/lib64/libcairo.so.2 +0x701c8) > #13 at <null> (/lib64/libcairo.so.2 +0x22a8b) > #14 in cairo_show_glyphs at <null> (/lib64/libcairo.so.2 +0x78a7d) > #15 in CairoTextRender::ImplDrawTextLayout(_cairo*, Color const&, GenericSalLayout const&, CairoCommon*, bool) at vcl/unx/generic/gdi/cairotextrender.cxx:517:9 > #16 in CairoTextRender::DrawTextLayout(GenericSalLayout const&, SalGraphics const&) at vcl/unx/generic/gdi/cairotextrender.cxx:292:5 > #17 in SvpSalGraphics::DrawTextLayout(GenericSalLayout const&) at vcl/headless/svptext.cxx:74:23 > #18 in GenericSalLayout::DrawText(SalGraphics&) const at vcl/source/gdi/CommonSalLayout.cxx:314:18 > #19 in OutputDevice::ImplDrawTextDirect(SalLayout&, bool) at vcl/source/outdev/text.cxx:311:16 > #20 in OutputDevice::ImplDrawText(SalLayout&) at vcl/source/outdev/text.cxx:464:9 > #21 in OutputDevice::DrawTextArray(Point const&, rtl::OUString const&, std::span<double const, 18446744073709551615ul>, std::span<unsigned char const, 18446744073709551615ul>, int, int, SalLayoutFlags, SalLayoutGlyphs const*) at vcl/source/outdev/text.cxx:750:9 > #22 in ScOutputData::LayoutStringsImpl(bool, RowInfo*, short, int, unsigned long, std::optional<short>&, std::optional<short>&, short, std::__debug::vector<std::unique_ptr<ScPatternAttr, std::default_delete<ScPatternAttr>>, std::allocator<std::unique_ptr<ScPatternAttr, std::default_delete<ScPatternAttr>>>>&, ScPatternAttr const*&, SfxItemSet const*&, SvtScriptType&, ScDrawStringsVars&, bool&, long, long, bool, bool&, vcl::PDFExtOutDevData*, long, std::__debug::vector<double, std::allocator<double>>&) at sc/source/ui/view/output2.cxx:2248:28 > #23 in ScOutputData::LayoutStrings(bool) at sc/source/ui/view/output2.cxx:1565:17 > #24 in ScOutputData::DrawStrings(bool) at sc/source/ui/view/output2.cxx:1487:5 > #25 in ScPrintFunc::DrawToDev(ScDocument&, OutputDevice*, double, tools::Rectangle const&, ScViewData&, bool) at sc/source/ui/view/printfun.cxx:604:17 > #26 in ScDocShell::Draw(OutputDevice*, JobSetup const&, unsigned short, bool) at sc/source/ui/docshell/docsh4.cxx:2656:9 > #27 in SfxObjectShell::DoDraw_Impl(OutputDevice*, Point const&, Fraction const&, Fraction const&, JobSetup const&, unsigned short, bool) at sfx2/source/doc/objembed.cxx:204:5 > #28 in SfxObjectShell::DoDraw(OutputDevice*, Point const&, Size const&, JobSetup const&, unsigned short, bool) at sfx2/source/doc/objembed.cxx:151:9 > #29 in SfxObjectShell::CreatePreview_Impl(bool, bool, VirtualDevice*, GDIMetaFile*) const at sfx2/source/doc/objcont.cxx:201:40 > #30 in SfxObjectShell::GetPreviewBitmap() const at sfx2/source/doc/objcont.cxx:113:9 > #31 in SfxObjectShell::WriteThumbnail(bool, com::sun::star::uno::Reference<com::sun::star::io::XStream> const&) at sfx2/source/doc/objstor.cxx:4157:29 > #32 in SfxObjectShell::GenerateAndStoreThumbnail(bool, com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&) at sfx2/source/doc/objstor.cxx:4112:33 > #33 in SfxObjectShell::SaveTo_Impl(SfxMedium&, SfxItemSet const*) at sfx2/source/doc/objstor.cxx:1839:19 > #34 in SfxObjectShell::PreDoSaveAs_Impl(rtl::OUString const&, rtl::OUString const&, SfxItemSet const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/objstor.cxx:3421:39 > #35 in SfxObjectShell::CommonSaveAs_Impl(INetURLObject const&, rtl::OUString const&, SfxItemSet&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/objstor.cxx:3212:9 > #36 in SfxObjectShell::APISaveAs_Impl(std::basic_string_view<char16_t, std::char_traits<char16_t>>, SfxItemSet&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/objserv.cxx:323:19 > #37 in SfxBaseModel::impl_store(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, bool) at sfx2/source/doc/sfxbasemodel.cxx:3253:42 > #38 in SfxBaseModel::storeToURL(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/sfxbasemodel.cxx:1834:13 > #39 in UnoApiTest::saveWithParams(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at test/source/unoapi_test.cxx:194:16 > #40 in UnoApiTest::save(rtl::OUString const&, char const*) at test/source/unoapi_test.cxx:178:5 > #41 in UnoApiTest::saveAndReload(rtl::OUString const&, char const*) at test/source/unoapi_test.cxx:199:5 > #42 in PivotChartTest::testRoundtrip() at chart2/qa/extras/PivotChartTest.cxx:354:5 Change-Id: I6bb42532fce1291b4208108ab1898b94dda02e68 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191043 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]>
...presumably after 981d8be "freetype: upgrade to 2.14.1", causing e.g. CppunitTest_chart2_pivot_chart_test to fail with > workdir/UnpackedTarball/freetype/src/autofit/aflatin.c:3708:31: runtime error: signed integer overflow: 2161 - -9223372036854775808 cannot be represented in type 'FT_Pos' (aka 'long') > #0 in af_glyph_hints_apply_vertical_separation_adjustments at workdir/UnpackedTarball/freetype/src/autofit/aflatin.c:3708:31 > #1 in af_latin_hints_apply at workdir/UnpackedTarball/freetype/src/autofit/aflatin.c:5054:9 > #2 in af_loader_load_glyph at workdir/UnpackedTarball/freetype/src/autofit/afloader.c:411:17 > #3 in af_autofitter_load_glyph at workdir/UnpackedTarball/freetype/src/autofit/afmodule.c:498:13 > #4 in FT_Load_Glyph at workdir/UnpackedTarball/freetype/src/base/ftobjs.c:1055:19 > #5 at <null> (/lib64/libcairo.so.2 +0x9be4b) > #6 at <null> (/lib64/libcairo.so.2 +0xa0df1) > #7 at <null> (/lib64/libcairo.so.2 +0x528b6) > #8 at <null> (/lib64/libcairo.so.2 +0x57184) > #9 at <null> (/lib64/libcairo.so.2 +0x179f6) > #10 at <null> (/lib64/libcairo.so.2 +0x1a5f7) > #11 at <null> (/lib64/libcairo.so.2 +0x27459) > #12 at <null> (/lib64/libcairo.so.2 +0x701c8) > #13 at <null> (/lib64/libcairo.so.2 +0x22a8b) > #14 in cairo_show_glyphs at <null> (/lib64/libcairo.so.2 +0x78a7d) > #15 in CairoTextRender::ImplDrawTextLayout(_cairo*, Color const&, GenericSalLayout const&, CairoCommon*, bool) at vcl/unx/generic/gdi/cairotextrender.cxx:517:9 > #16 in CairoTextRender::DrawTextLayout(GenericSalLayout const&, SalGraphics const&) at vcl/unx/generic/gdi/cairotextrender.cxx:292:5 > #17 in SvpSalGraphics::DrawTextLayout(GenericSalLayout const&) at vcl/headless/svptext.cxx:74:23 > #18 in GenericSalLayout::DrawText(SalGraphics&) const at vcl/source/gdi/CommonSalLayout.cxx:314:18 > #19 in OutputDevice::ImplDrawTextDirect(SalLayout&, bool) at vcl/source/outdev/text.cxx:311:16 > #20 in OutputDevice::ImplDrawText(SalLayout&) at vcl/source/outdev/text.cxx:464:9 > #21 in OutputDevice::DrawTextArray(Point const&, rtl::OUString const&, std::span<double const, 18446744073709551615ul>, std::span<unsigned char const, 18446744073709551615ul>, int, int, SalLayoutFlags, SalLayoutGlyphs const*) at vcl/source/outdev/text.cxx:750:9 > #22 in ScOutputData::LayoutStringsImpl(bool, RowInfo*, short, int, unsigned long, std::optional<short>&, std::optional<short>&, short, std::__debug::vector<std::unique_ptr<ScPatternAttr, std::default_delete<ScPatternAttr>>, std::allocator<std::unique_ptr<ScPatternAttr, std::default_delete<ScPatternAttr>>>>&, ScPatternAttr const*&, SfxItemSet const*&, SvtScriptType&, ScDrawStringsVars&, bool&, long, long, bool, bool&, vcl::PDFExtOutDevData*, long, std::__debug::vector<double, std::allocator<double>>&) at sc/source/ui/view/output2.cxx:2248:28 > #23 in ScOutputData::LayoutStrings(bool) at sc/source/ui/view/output2.cxx:1565:17 > #24 in ScOutputData::DrawStrings(bool) at sc/source/ui/view/output2.cxx:1487:5 > #25 in ScPrintFunc::DrawToDev(ScDocument&, OutputDevice*, double, tools::Rectangle const&, ScViewData&, bool) at sc/source/ui/view/printfun.cxx:604:17 > #26 in ScDocShell::Draw(OutputDevice*, JobSetup const&, unsigned short, bool) at sc/source/ui/docshell/docsh4.cxx:2656:9 > #27 in SfxObjectShell::DoDraw_Impl(OutputDevice*, Point const&, Fraction const&, Fraction const&, JobSetup const&, unsigned short, bool) at sfx2/source/doc/objembed.cxx:204:5 > #28 in SfxObjectShell::DoDraw(OutputDevice*, Point const&, Size const&, JobSetup const&, unsigned short, bool) at sfx2/source/doc/objembed.cxx:151:9 > #29 in SfxObjectShell::CreatePreview_Impl(bool, bool, VirtualDevice*, GDIMetaFile*) const at sfx2/source/doc/objcont.cxx:201:40 > #30 in SfxObjectShell::GetPreviewBitmap() const at sfx2/source/doc/objcont.cxx:113:9 > #31 in SfxObjectShell::WriteThumbnail(bool, com::sun::star::uno::Reference<com::sun::star::io::XStream> const&) at sfx2/source/doc/objstor.cxx:4157:29 > #32 in SfxObjectShell::GenerateAndStoreThumbnail(bool, com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&) at sfx2/source/doc/objstor.cxx:4112:33 > #33 in SfxObjectShell::SaveTo_Impl(SfxMedium&, SfxItemSet const*) at sfx2/source/doc/objstor.cxx:1839:19 > #34 in SfxObjectShell::PreDoSaveAs_Impl(rtl::OUString const&, rtl::OUString const&, SfxItemSet const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/objstor.cxx:3421:39 > #35 in SfxObjectShell::CommonSaveAs_Impl(INetURLObject const&, rtl::OUString const&, SfxItemSet&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/objstor.cxx:3212:9 > #36 in SfxObjectShell::APISaveAs_Impl(std::basic_string_view<char16_t, std::char_traits<char16_t>>, SfxItemSet&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/objserv.cxx:323:19 > #37 in SfxBaseModel::impl_store(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, bool) at sfx2/source/doc/sfxbasemodel.cxx:3253:42 > #38 in SfxBaseModel::storeToURL(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/sfxbasemodel.cxx:1834:13 > #39 in UnoApiTest::saveWithParams(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at test/source/unoapi_test.cxx:194:16 > #40 in UnoApiTest::save(rtl::OUString const&, char const*) at test/source/unoapi_test.cxx:178:5 > #41 in UnoApiTest::saveAndReload(rtl::OUString const&, char const*) at test/source/unoapi_test.cxx:199:5 > #42 in PivotChartTest::testRoundtrip() at chart2/qa/extras/PivotChartTest.cxx:354:5 Change-Id: I6bb42532fce1291b4208108ab1898b94dda02e68 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191043 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]> (cherry picked from commit a8133d2) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191064 Reviewed-by: Xisco Fauli <[email protected]>
...presumably after 981d8be "freetype: upgrade to 2.14.1", causing e.g. CppunitTest_chart2_pivot_chart_test to fail with > workdir/UnpackedTarball/freetype/src/autofit/aflatin.c:3708:31: runtime error: signed integer overflow: 2161 - -9223372036854775808 cannot be represented in type 'FT_Pos' (aka 'long') > #0 in af_glyph_hints_apply_vertical_separation_adjustments at workdir/UnpackedTarball/freetype/src/autofit/aflatin.c:3708:31 > #1 in af_latin_hints_apply at workdir/UnpackedTarball/freetype/src/autofit/aflatin.c:5054:9 > #2 in af_loader_load_glyph at workdir/UnpackedTarball/freetype/src/autofit/afloader.c:411:17 > #3 in af_autofitter_load_glyph at workdir/UnpackedTarball/freetype/src/autofit/afmodule.c:498:13 > #4 in FT_Load_Glyph at workdir/UnpackedTarball/freetype/src/base/ftobjs.c:1055:19 > #5 at <null> (/lib64/libcairo.so.2 +0x9be4b) > #6 at <null> (/lib64/libcairo.so.2 +0xa0df1) > #7 at <null> (/lib64/libcairo.so.2 +0x528b6) > #8 at <null> (/lib64/libcairo.so.2 +0x57184) > #9 at <null> (/lib64/libcairo.so.2 +0x179f6) > #10 at <null> (/lib64/libcairo.so.2 +0x1a5f7) > #11 at <null> (/lib64/libcairo.so.2 +0x27459) > #12 at <null> (/lib64/libcairo.so.2 +0x701c8) > #13 at <null> (/lib64/libcairo.so.2 +0x22a8b) > #14 in cairo_show_glyphs at <null> (/lib64/libcairo.so.2 +0x78a7d) > #15 in CairoTextRender::ImplDrawTextLayout(_cairo*, Color const&, GenericSalLayout const&, CairoCommon*, bool) at vcl/unx/generic/gdi/cairotextrender.cxx:517:9 > #16 in CairoTextRender::DrawTextLayout(GenericSalLayout const&, SalGraphics const&) at vcl/unx/generic/gdi/cairotextrender.cxx:292:5 > #17 in SvpSalGraphics::DrawTextLayout(GenericSalLayout const&) at vcl/headless/svptext.cxx:74:23 > #18 in GenericSalLayout::DrawText(SalGraphics&) const at vcl/source/gdi/CommonSalLayout.cxx:314:18 > #19 in OutputDevice::ImplDrawTextDirect(SalLayout&, bool) at vcl/source/outdev/text.cxx:311:16 > #20 in OutputDevice::ImplDrawText(SalLayout&) at vcl/source/outdev/text.cxx:464:9 > #21 in OutputDevice::DrawTextArray(Point const&, rtl::OUString const&, std::span<double const, 18446744073709551615ul>, std::span<unsigned char const, 18446744073709551615ul>, int, int, SalLayoutFlags, SalLayoutGlyphs const*) at vcl/source/outdev/text.cxx:750:9 > #22 in ScOutputData::LayoutStringsImpl(bool, RowInfo*, short, int, unsigned long, std::optional<short>&, std::optional<short>&, short, std::__debug::vector<std::unique_ptr<ScPatternAttr, std::default_delete<ScPatternAttr>>, std::allocator<std::unique_ptr<ScPatternAttr, std::default_delete<ScPatternAttr>>>>&, ScPatternAttr const*&, SfxItemSet const*&, SvtScriptType&, ScDrawStringsVars&, bool&, long, long, bool, bool&, vcl::PDFExtOutDevData*, long, std::__debug::vector<double, std::allocator<double>>&) at sc/source/ui/view/output2.cxx:2248:28 > #23 in ScOutputData::LayoutStrings(bool) at sc/source/ui/view/output2.cxx:1565:17 > #24 in ScOutputData::DrawStrings(bool) at sc/source/ui/view/output2.cxx:1487:5 > #25 in ScPrintFunc::DrawToDev(ScDocument&, OutputDevice*, double, tools::Rectangle const&, ScViewData&, bool) at sc/source/ui/view/printfun.cxx:604:17 > #26 in ScDocShell::Draw(OutputDevice*, JobSetup const&, unsigned short, bool) at sc/source/ui/docshell/docsh4.cxx:2656:9 > #27 in SfxObjectShell::DoDraw_Impl(OutputDevice*, Point const&, Fraction const&, Fraction const&, JobSetup const&, unsigned short, bool) at sfx2/source/doc/objembed.cxx:204:5 > #28 in SfxObjectShell::DoDraw(OutputDevice*, Point const&, Size const&, JobSetup const&, unsigned short, bool) at sfx2/source/doc/objembed.cxx:151:9 > #29 in SfxObjectShell::CreatePreview_Impl(bool, bool, VirtualDevice*, GDIMetaFile*) const at sfx2/source/doc/objcont.cxx:201:40 > #30 in SfxObjectShell::GetPreviewBitmap() const at sfx2/source/doc/objcont.cxx:113:9 > #31 in SfxObjectShell::WriteThumbnail(bool, com::sun::star::uno::Reference<com::sun::star::io::XStream> const&) at sfx2/source/doc/objstor.cxx:4157:29 > #32 in SfxObjectShell::GenerateAndStoreThumbnail(bool, com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&) at sfx2/source/doc/objstor.cxx:4112:33 > #33 in SfxObjectShell::SaveTo_Impl(SfxMedium&, SfxItemSet const*) at sfx2/source/doc/objstor.cxx:1839:19 > #34 in SfxObjectShell::PreDoSaveAs_Impl(rtl::OUString const&, rtl::OUString const&, SfxItemSet const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/objstor.cxx:3421:39 > #35 in SfxObjectShell::CommonSaveAs_Impl(INetURLObject const&, rtl::OUString const&, SfxItemSet&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/objstor.cxx:3212:9 > #36 in SfxObjectShell::APISaveAs_Impl(std::basic_string_view<char16_t, std::char_traits<char16_t>>, SfxItemSet&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/objserv.cxx:323:19 > #37 in SfxBaseModel::impl_store(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, bool) at sfx2/source/doc/sfxbasemodel.cxx:3253:42 > #38 in SfxBaseModel::storeToURL(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/sfxbasemodel.cxx:1834:13 > #39 in UnoApiTest::saveWithParams(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at test/source/unoapi_test.cxx:194:16 > #40 in UnoApiTest::save(rtl::OUString const&, char const*) at test/source/unoapi_test.cxx:178:5 > #41 in UnoApiTest::saveAndReload(rtl::OUString const&, char const*) at test/source/unoapi_test.cxx:199:5 > #42 in PivotChartTest::testRoundtrip() at chart2/qa/extras/PivotChartTest.cxx:354:5 Change-Id: I6bb42532fce1291b4208108ab1898b94dda02e68 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191043 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]> (cherry picked from commit a8133d2) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191064 Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit fb9337d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191096
coolforkit-ns: /home/mk/core/vcl/source/app/dbggui.cxx:36: void ImplDbgTestSolarMutex(bool):
Assertion `ImplGetSVData()->mpDefInst->GetYieldMutex()->IsCurrentThread() && "SolarMutex not
owned!"' failed.
Seen with this call stack:
#0 0x00007f71b2b7ee96 in __GI___assert_fail (
assertion=0x7f71aa2c4de0 "ImplGetSVData()->mpDefInst->GetYieldMutex()->IsCurrentThread() && \"SolarMutex not owned!\"", file=0x7f71aa2c4db8 "/home/mk/core/vcl/source/app/dbggui.cxx", line=36,
function=0x7f71aa2c4d90 "void ImplDbgTestSolarMutex(bool)") at ./assert/assert.c:103
#1 0x00007f71a952e69b in ImplDbgTestSolarMutex (owned=true) at /home/mk/core/vcl/source/app/dbggui.cxx:36
#2 0x00007f71ab311ee0 in DbgTestSolarMutex (owned=true) at /home/mk/core/tools/source/debug/debug.cxx:54
#3 0x00007f719ae4156d in SwModify::Add (this=0x55ace7ff8ec0, rDepend=...)
at /home/mk/core/sw/source/core/attr/calbck.cxx:172
#4 0x00007f719b42e062 in SwContentNode::SwContentNode (this=0x55ace8021f50, rWhere=..., nNdType=SwNodeType::Text, pColl=0x55ace7ff8ec0) at /home/mk/core/sw/source/core/docnode/node.cxx:1082
#5 0x00007f719ba84bee in SwTextNode::SwTextNode (this=0x55ace8021f50, rWhere=..., pTextColl=0x55ace7ff8ec0, pAutoAttr=0x0) at /home/mk/core/sw/source/core/txtnode/ndtxt.cxx:219
#6 0x00007f719ba84661 in SwNodes::MakeTextNode (this=0x55ace83b0ee0, rWhere=..., pColl=0x55ace7ff8ec0, bNewFrames=true) at /home/mk/core/sw/source/core/txtnode/ndtxt.cxx:133
#7 0x00007f719b442347 in SwNodes::MakeTextSection (this=0x55ace83b0ee0, rWhere=..., eSttNdTyp=SwNormalStartNode, pColl=0x55ace7ff8ec0) at /home/mk/core/sw/source/core/docnode/nodes.cxx:1953
#8 0x00007f719b18c9a2 in SwRangeRedline::MoveToSection (this=0x55ace8302bd0) at /home/mk/core/sw/source/core/doc/docredln.cxx:1962
#9 0x00007f719b18b8c8 in SwRangeRedline::ShowOriginal (this=0x55ace8302bd0, nLoop=0, nMyPos=3) at /home/mk/core/sw/source/core/doc/docredln.cxx:1772
#10 0x00007f719c650b17 in (anonymous namespace)::HideNewerShowOlder::Hide (pRedline=0x55ace8302bd0, rTable=...) at /home/mk/core/sw/source/uibase/uno/loktxdoc.cxx:934
#11 0x00007f719c650668 in (anonymous namespace)::HideNewerShowOlder::HideNewerShowOlder (this=0x7ffea7e20b60, limit=..., rTable=...) at /home/mk/core/sw/source/uibase/uno/loktxdoc.cxx:885
#12 0x00007f719c651152 in (anonymous namespace)::GetDocStructureTrackChanges (rJsonWriter=..., pDocShell=0x55ace7d72d00, filterArguments=...) at /home/mk/core/sw/source/uibase/uno/loktxdoc.cxx:997
#13 0x00007f719c651cc3 in (anonymous namespace)::GetDocStructure (rJsonWriter=..., pDocShell=0x55ace7d72d00, rArguments=...) at /home/mk/core/sw/source/uibase/uno/loktxdoc.cxx:1077
#14 0x00007f719c6524a4 in SwXTextDocument::getCommandValues (this=0x55ace836de60, rJsonWriter=..., rCommand=...) at /home/mk/core/sw/source/uibase/uno/loktxdoc.cxx:1162
#15 0x00007f71b272492f in lo_extractDocumentStructureRequest (pFilePath=0x55ace4085040 "file:///tmp/user/docs/IvJPNWKKqE4D3jXV/works.docx", pFilter=0x55ace7b2a450 "trackchanges,contextLen:100") at /home/mk/core/desktop/source/lib/init.cxx:3352
#16 0x000055accb8ae888 in lok::Office::extractDocumentStructureRequest (pFilter=<optimized out>, pFilePath=<optimized out>, this=0x55acd7c16bd0) at /home/mk/core/include/LibreOfficeKit/LibreOfficeKit.hxx:1301
#17 ChildSession::_handleInput (this=0x55ace78ead30, buffer=<optimized out>, length=<optimized out>) at kit/ChildSession.cpp:371
#18 0x000055accb95f62c in Session::handleMessage (this=0x55ace78ead30, data=...) at common/Session.cpp:326
#19 0x000055accb901e25 in Document::forwardToChild (this=0x55ace7a662b0, prefix=..., payload=...) at kit/Kit.cpp:2283
#20 0x000055accb902a8e in Document::drainQueue (this=0x55ace7a662b0) at /usr/include/c++/13/string_view:146
#21 0x000055accb9036cd in KitSocketPoll::drainQueue (this=0x55ace7a8c880) at kit/Kit.cpp:2961
#22 KitSocketPoll::kitPoll (this=0x55ace7a8c880, timeoutMicroS=<optimized out>) at kit/Kit.cpp:3034
#23 0x00007f71a99ac661 in SvpSalInstance::ImplYield (this=0x55acd7c35700, bWait=true, bHandleAllCurrentEvents=false) at /home/mk/core/vcl/headless/svpinst.cxx:463
#24 0x00007f71a99ac938 in SvpSalInstance::DoYield (this=0x55acd7c35700, bWait=true, bHandleAllCurrentEvents=false) at /home/mk/core/vcl/headless/svpinst.cxx:504
#25 0x00007f71a95f88d9 in ImplYield (i_bWait=true, i_bAllEvents=false) at /home/mk/core/vcl/source/app/svapp.cxx:389
#26 0x00007f71a95f9794 in Application::Yield () at /home/mk/core/vcl/source/app/svapp.cxx:492
#27 0x00007f71a95f855a in Application::Execute () at /home/mk/core/vcl/source/app/svapp.cxx:364
#28 0x00007f71b26602a7 in desktop::Desktop::Main (this=0x7ffea7e23f30) at /home/mk/core/desktop/source/app/app.cxx:1680
#29 0x00007f71a96249f1 in ImplSVMain () at /home/mk/core/vcl/source/app/svmain.cxx:228
#30 0x00007f71a9624ad6 in SVMain () at /home/mk/core/vcl/source/app/svmain.cxx:246
#31 0x00007f71b26d300e in soffice_main () at /home/mk/core/desktop/source/app/sofficemain.cxx:121
#32 0x00007f71b2743c40 in lo_runLoop (pPollCallback=0x55accb904070 <pollCallback(void*, int)>, pWakeCallback=0x55accb8e6ab0 <wakeCallback(void*)>, pData=0x55ace7a8c880) at /home/mk/core/desktop/source/lib/init.cxx:7873
#33 0x000055accb90c3af in lok::Office::runLoop (pData=0x55ace7a8c880, pWakeCallback=0x55accb8e6ab0 <wakeCallback(void*)>, pPollCallback=0x55accb904070 <pollCallback(void*, int)>, this=0x55acd7c16bd0) at /home/mk/core/include/LibreOfficeKit/LibreOfficeKit.hxx:1156
#34 lokit_main (childRoot=..., jailId=..., configId=..., sysTemplate=..., loTemplate=..., noCapabilities=<optimized out>, noSeccomp=<optimized out>, useMountNamespaces=<optimized out>, queryVersion=<optimized out>, displayVersion=<optimized out>, sysTemplateIncomplete=<optimized out>, numericIdentifier=<optimized out>) at kit/Kit.cpp:3926
#35 0x000055accb8c7ea9 in operator() (__closure=<optimized out>) at kit/ForKit.cpp:556
#36 std::__invoke_impl<void, createLibreOfficeKit(const std::string&, const std::string&, const std::string&, const std::string&, bool, bool)::<lambda()>&> (__f=...) at /usr/include/c++/13/bits/invoke.h:61
#37 std::__invoke_r<void, createLibreOfficeKit(const std::string&, const std::string&, const std::string&, const std::string&, bool, bool)::<lambda()>&> (__fn=...) at /usr/include/c++/13/bits/invoke.h:111
#38 std::_Function_handler<void(), createLibreOfficeKit(const std::string&, const std::string&, const std::string&, const std::string&, bool, bool)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/13/bits/std_function.h:290
#39 0x000055accb8cb1c2 in std::function<void ()>::operator()() const (this=0x7ffea7e24e90) at /usr/include/c++/13/bits/std_function.h:591
#40 forkKit(const std::function<void()> &, const std::string &, const std::function<void(int)> &) (childFunc=..., childProcessName=..., parentFunc=...) at kit/ForKit.cpp:499
#41 0x000055accb8cc6ef in createLibreOfficeKit (childRoot=..., sysTemplate=..., loTemplate=..., useMountNamespaces=<optimized out>, queryVersion=<optimized out>, configId=...) at kit/ForKit.cpp:576
#42 0x000055accb8d1578 in forkit_main (argc=<optimized out>, argv=<optimized out>) at kit/ForKit.cpp:1042
#43 0x00007f71b2b6ed90 in __libc_start_call_main (main=main@entry=0x55accb8835a0 <main(int, char**)>, argc=argc@entry=10, argv=argv@entry=0x7ffea7e25e58) at ../sysdeps/nptl/libc_start_call_main.h:58
#44 0x00007f71b2b6ee40 in __libc_start_main_impl (main=0x55accb8835a0 <main(int, char**)>, argc=10, argv=0x7ffea7e25e58, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffea7e25e48) at ../csu/libc-start.c:392
#45 0x000055accb884845 in _start ()
Change-Id: Ib7e8f93b094db925b6bb60134d23aeb325a10f54
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191016
Reviewed-by: Miklos Vajna <[email protected]>
Tested-by: Jenkins CollaboraOffice <[email protected]>
...presumably after 981d8be "freetype: upgrade to 2.14.1", causing e.g. CppunitTest_chart2_pivot_chart_test to fail with > workdir/UnpackedTarball/freetype/src/autofit/aflatin.c:3708:31: runtime error: signed integer overflow: 2161 - -9223372036854775808 cannot be represented in type 'FT_Pos' (aka 'long') > #0 in af_glyph_hints_apply_vertical_separation_adjustments at workdir/UnpackedTarball/freetype/src/autofit/aflatin.c:3708:31 > #1 in af_latin_hints_apply at workdir/UnpackedTarball/freetype/src/autofit/aflatin.c:5054:9 > #2 in af_loader_load_glyph at workdir/UnpackedTarball/freetype/src/autofit/afloader.c:411:17 > #3 in af_autofitter_load_glyph at workdir/UnpackedTarball/freetype/src/autofit/afmodule.c:498:13 > #4 in FT_Load_Glyph at workdir/UnpackedTarball/freetype/src/base/ftobjs.c:1055:19 > #5 at <null> (/lib64/libcairo.so.2 +0x9be4b) > #6 at <null> (/lib64/libcairo.so.2 +0xa0df1) > #7 at <null> (/lib64/libcairo.so.2 +0x528b6) > #8 at <null> (/lib64/libcairo.so.2 +0x57184) > #9 at <null> (/lib64/libcairo.so.2 +0x179f6) > #10 at <null> (/lib64/libcairo.so.2 +0x1a5f7) > #11 at <null> (/lib64/libcairo.so.2 +0x27459) > #12 at <null> (/lib64/libcairo.so.2 +0x701c8) > #13 at <null> (/lib64/libcairo.so.2 +0x22a8b) > #14 in cairo_show_glyphs at <null> (/lib64/libcairo.so.2 +0x78a7d) > #15 in CairoTextRender::ImplDrawTextLayout(_cairo*, Color const&, GenericSalLayout const&, CairoCommon*, bool) at vcl/unx/generic/gdi/cairotextrender.cxx:517:9 > #16 in CairoTextRender::DrawTextLayout(GenericSalLayout const&, SalGraphics const&) at vcl/unx/generic/gdi/cairotextrender.cxx:292:5 > #17 in SvpSalGraphics::DrawTextLayout(GenericSalLayout const&) at vcl/headless/svptext.cxx:74:23 > #18 in GenericSalLayout::DrawText(SalGraphics&) const at vcl/source/gdi/CommonSalLayout.cxx:314:18 > #19 in OutputDevice::ImplDrawTextDirect(SalLayout&, bool) at vcl/source/outdev/text.cxx:311:16 > #20 in OutputDevice::ImplDrawText(SalLayout&) at vcl/source/outdev/text.cxx:464:9 > #21 in OutputDevice::DrawTextArray(Point const&, rtl::OUString const&, std::span<double const, 18446744073709551615ul>, std::span<unsigned char const, 18446744073709551615ul>, int, int, SalLayoutFlags, SalLayoutGlyphs const*) at vcl/source/outdev/text.cxx:750:9 > #22 in ScOutputData::LayoutStringsImpl(bool, RowInfo*, short, int, unsigned long, std::optional<short>&, std::optional<short>&, short, std::__debug::vector<std::unique_ptr<ScPatternAttr, std::default_delete<ScPatternAttr>>, std::allocator<std::unique_ptr<ScPatternAttr, std::default_delete<ScPatternAttr>>>>&, ScPatternAttr const*&, SfxItemSet const*&, SvtScriptType&, ScDrawStringsVars&, bool&, long, long, bool, bool&, vcl::PDFExtOutDevData*, long, std::__debug::vector<double, std::allocator<double>>&) at sc/source/ui/view/output2.cxx:2248:28 > #23 in ScOutputData::LayoutStrings(bool) at sc/source/ui/view/output2.cxx:1565:17 > #24 in ScOutputData::DrawStrings(bool) at sc/source/ui/view/output2.cxx:1487:5 > #25 in ScPrintFunc::DrawToDev(ScDocument&, OutputDevice*, double, tools::Rectangle const&, ScViewData&, bool) at sc/source/ui/view/printfun.cxx:604:17 > #26 in ScDocShell::Draw(OutputDevice*, JobSetup const&, unsigned short, bool) at sc/source/ui/docshell/docsh4.cxx:2656:9 > #27 in SfxObjectShell::DoDraw_Impl(OutputDevice*, Point const&, Fraction const&, Fraction const&, JobSetup const&, unsigned short, bool) at sfx2/source/doc/objembed.cxx:204:5 > #28 in SfxObjectShell::DoDraw(OutputDevice*, Point const&, Size const&, JobSetup const&, unsigned short, bool) at sfx2/source/doc/objembed.cxx:151:9 > #29 in SfxObjectShell::CreatePreview_Impl(bool, bool, VirtualDevice*, GDIMetaFile*) const at sfx2/source/doc/objcont.cxx:201:40 > #30 in SfxObjectShell::GetPreviewBitmap() const at sfx2/source/doc/objcont.cxx:113:9 > #31 in SfxObjectShell::WriteThumbnail(bool, com::sun::star::uno::Reference<com::sun::star::io::XStream> const&) at sfx2/source/doc/objstor.cxx:4157:29 > #32 in SfxObjectShell::GenerateAndStoreThumbnail(bool, com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&) at sfx2/source/doc/objstor.cxx:4112:33 > #33 in SfxObjectShell::SaveTo_Impl(SfxMedium&, SfxItemSet const*) at sfx2/source/doc/objstor.cxx:1839:19 > #34 in SfxObjectShell::PreDoSaveAs_Impl(rtl::OUString const&, rtl::OUString const&, SfxItemSet const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/objstor.cxx:3421:39 > #35 in SfxObjectShell::CommonSaveAs_Impl(INetURLObject const&, rtl::OUString const&, SfxItemSet&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/objstor.cxx:3212:9 > #36 in SfxObjectShell::APISaveAs_Impl(std::basic_string_view<char16_t, std::char_traits<char16_t>>, SfxItemSet&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/objserv.cxx:323:19 > #37 in SfxBaseModel::impl_store(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, bool) at sfx2/source/doc/sfxbasemodel.cxx:3253:42 > #38 in SfxBaseModel::storeToURL(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/sfxbasemodel.cxx:1834:13 > #39 in UnoApiTest::saveWithParams(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at test/source/unoapi_test.cxx:194:16 > #40 in UnoApiTest::save(rtl::OUString const&, char const*) at test/source/unoapi_test.cxx:178:5 > #41 in UnoApiTest::saveAndReload(rtl::OUString const&, char const*) at test/source/unoapi_test.cxx:199:5 > #42 in PivotChartTest::testRoundtrip() at chart2/qa/extras/PivotChartTest.cxx:354:5 Change-Id: I6bb42532fce1291b4208108ab1898b94dda02e68 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191043 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]> (cherry picked from commit a8133d2) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191064 Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit fb9337d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191096
After
commit 94442bd94e504b067efd0b992525b53fc660f114
Author: Michael Weghorn <[email protected]>
Date: Tue Aug 5 11:07:25 2025 +0200
tdf#163802 a11y: Fully initialize SpellDialog before showing
, triggering the spell check dialog in Impress
for an empty presentation would result in infinite
recursion e.g. with the gtk3 or gen VCL plugins
on Linux, because the initialization of the
svx::SpellDialogChildWindow triggers a message dialog
asking whether to start spell check from the beginning
(s. frame #252 in below backtrace).
For gtk3 and gen, that dialog triggers processing
of pending events, which triggers an update of the
child windows (s. frame #230), which triggers the logic to
create the spell check child window again (as it isn't
shown yet).
(For qt6, that problem wasn't seen, because synchronously
showing the message dialog doesn't trigger processing
of pending events.)
Fix the problem by detecting cases where a child
window is already in the process of being created,
and return early in that case.
Change SfxWorkWindow::CreateChildWin_Impl to return
a bool result indicating whether the child window
was created or not, and evaluate that in the callers.
Sample backtrace for the gtk3 VCL plugin:
#0 0x00007fffe94490c0 in memcmp@plt () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
#1 0x00007fffe955c206 in ??? () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
#2 0x00007fffe955c97f in ??? () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
#3 0x00007fffe955a4a3 in ??? () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
#4 0x00007fffe94db449 in ??? () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
#5 0x00007fffe6b6e484 in ??? () at /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
#6 0x00007fffe6b716e9 in ??? () at /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
#7 0x00007fffe6b71b6d in gdk_pixbuf_loader_close () at /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
#8 0x00007fffe5be2fe0 in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#9 0x00007fffe5be40b1 in gtk_image_set_from_file () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#10 0x00007fffe5be41fd in gtk_image_new_from_file () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#11 0x00007fffe6498cf9 in (anonymous namespace)::image_new_from_xgraphic (rIcon=uno::Reference to (unographic::Graphic *) 0x55555ef17750, bMirror=false) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:4973
#12 0x00007fffe6504ec8 in (anonymous namespace)::GtkInstanceToolbar::set_item_image (pItem=0x55555ef42d20, rIcon=uno::Reference to (unographic::Graphic *) 0x55555ef17750, bMirror=false)
at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:11838
#13 0x00007fffe64ffb31 in (anonymous namespace)::GtkInstanceToolbar::set_item_image (this=0x55555e956af0, rIdent="toggle", rIcon=uno::Reference to (unographic::Graphic *) 0x55555ef17750)
at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:12214
#14 0x00007ffff4137ba1 in sfx2::sidebar::TabBar::UpdateButtonIcons (this=0x5555597c0230) at /home/michi/development/git/libreoffice/sfx2/source/sidebar/TabBar.cxx:159
#15 0x00007ffff4137634 in sfx2::sidebar::TabBar::SetDecks (this=0x5555597c0230, rDecks=std::__debug::vector of length 8, capacity 8 = {...}) at /home/michi/development/git/libreoffice/sfx2/source/sidebar/TabBar.cxx:148
#16 0x00007ffff40b0f0b in sfx2::sidebar::SidebarController::UpdateConfigurations (this=0x555558960ae0) at /home/michi/development/git/libreoffice/sfx2/source/sidebar/SidebarController.cxx:604
#17 0x00007ffff40b0a49 in sfx2::sidebar::SidebarController::notifyContextChangeEvent (this=0x555558960ae0, rEvent=...) at /home/michi/development/git/libreoffice/sfx2/source/sidebar/SidebarController.cxx:371
#18 0x00007ffff4dcba91 in (anonymous namespace)::ContextChangeEventMultiplexer::BroadcastEventToSingleContainer (this=0x5555590d95c0, rEventObject=..., rxEventFocus=uno::Reference to (sd::DrawController *) 0x55555830b5e8)
at /home/michi/development/git/libreoffice/framework/source/services/ContextChangeEventMultiplexer.cxx:252
#19 0x00007ffff4dca942 in (anonymous namespace)::ContextChangeEventMultiplexer::broadcastContextChangeEvent (this=0x5555590d95c0, rEventObject=..., rxEventFocus=uno::Reference to (sd::DrawController *) 0x55555830b5e8)
at /home/michi/development/git/libreoffice/framework/source/services/ContextChangeEventMultiplexer.cxx:235
#20 0x00007ffff2948f8f in ContextChangeEventMultiplexer::NotifyContextChange (rxController=uno::Reference to (sd::DrawController *) 0x55555830b5e8, eContext=vcl::EnumContext::Context::DrawPage)
at /home/michi/development/git/libreoffice/svx/source/sidebar/ContextChangeEventMultiplexer.cxx:51
#21 0x00007ffff295e246 in svx::sidebar::SelectionChangeHandler::selectionChanged (this=0x55555edcd3f0) at /home/michi/development/git/libreoffice/svx/source/sidebar/SelectionChangeHandler.cxx:56
#22 0x00007fff9dc6b3cf in sd::DrawController::FireSelectionChangeListener (this=0x55555830b5c0) at /home/michi/development/git/libreoffice/sd/source/ui/unoidl/DrawController.cxx:396
#23 0x00007fff9dc6b2dc in sd::DrawController::SetSubController (this=0x55555830b5c0, rxSubController=empty uno::Reference) at /home/michi/development/git/libreoffice/sd/source/ui/unoidl/DrawController.cxx:99
#24 0x00007fff9d99a936 in sd::framework::BasicViewFactory::releaseResource (this=0x55555894ad50, rxView=rtl::Reference to 0x55555ef81a80)
at /home/michi/development/git/libreoffice/sd/source/ui/framework/factories/BasicViewFactory.cxx:219
#25 0x00007fff9d97161c in sd::framework::ConfigurationControllerResourceManager::DeactivateResource (this=0x55555894c0f0, rxResourceId=rtl::Reference to 0x55555edb5110, rxConfiguration=rtl::Reference to 0x55555894eb00)
at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx:203
#26 0x00007fff9d971fb4 in sd::framework::ConfigurationControllerResourceManager::DeactivateResources(std::__debug::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > > const&, rtl::Reference<sd::framework::Configuration> const&)::$_0::operator()(rtl::Reference<sd::framework::ResourceId> const&) const (this=0x7ffffffe7950, xResource=rtl::Reference to 0x55555edb5110)
at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx:90
#27 0x00007fff9d9712cb in std::for_each<std::reverse_iterator<__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<rtl::Reference<sd::framework::ResourceId> const*, std::__cxx1998::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > > >, std::__debug::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > >, std::random_access_iterator_tag> >, sd::framework::ConfigurationControllerResourceManager::DeactivateResources(std::__debug::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > > const&, rtl::Reference<sd::framework::Configuration> const&)::$_0>(std::reverse_iterator<__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<rtl::Reference<sd::framework::ResourceId> const*, std::__cxx1998::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > > >, std::__debug::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > >, std::random_access_iterator_tag> >, std::reverse_iterator<__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<rtl::Reference<sd::framework::ResourceId> const*, std::__cxx1998::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > > >, std::__debug::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > >, std::random_access_iterator_tag> >, sd::framework::ConfigurationControllerResourceManager::DeactivateResources(std::__debug::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > > const&, rtl::Reference<sd::framework::Configuration> const&)::$_0) (__first=..., __last=..., __f=...)
at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/stl_algo.h:3798
#28 0x00007fff9d971074 in sd::framework::ConfigurationControllerResourceManager::DeactivateResources
(this=0x55555894c0f0, rResources=std::__debug::vector of length 1, capacity 1 = {...}, rxConfiguration=rtl::Reference to 0x55555894eb00)
at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx:86
#29 0x00007fff9d978cae in sd::framework::ConfigurationUpdater::UpdateCore (this=0x55555894dd00, rClassifier=...) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:250
#30 0x00007fff9d97829c in sd::framework::ConfigurationUpdater::UpdateConfiguration (this=0x55555894dd00) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:161
#31 0x00007fff9d977d1b in sd::framework::ConfigurationUpdater::RequestUpdate (this=0x55555894dd00, rxRequestedConfiguration=rtl::Reference to 0x55555894cf50)
at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:108
#32 0x00007fff9d94c5b2 in sd::framework::ChangeRequestQueueProcessor::ProcessOneEvent (this=0x55555894eba0) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ChangeRequestQueueProcessor.cxx:163
#33 0x00007fff9d94c6fe in sd::framework::ChangeRequestQueueProcessor::ProcessUntilEmpty (this=0x55555894eba0) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ChangeRequestQueueProcessor.cxx:175
#34 0x00007fff9d95e8ef in sd::framework::ConfigurationController::RequestSynchronousUpdate (this=0x55555894a210) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationController.cxx:167
#35 0x00007fff9d9c69d8 in sd::framework::FrameworkHelper::RequestSynchronousUpdate (this=0x555558959cb0) at /home/michi/development/git/libreoffice/sd/source/ui/framework/tools/FrameworkHelper.cxx:643
#36 0x00007fff9dd53f6c in SdOutliner::SetViewMode (this=0x55555ee0e070, ePageKind=PageKind::Standard) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1652
#37 0x00007fff9dd55071 in SdOutliner::SetObject (this=0x55555ee0e070, rPosition=...) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1851
#38 0x00007fff9dd4e830 in SdOutliner::EndOfSearch (this=0x55555ee0e070) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1418
#39 0x00007fff9dd4f9e2 in SdOutliner::ProvideNextTextObject (this=0x55555ee0e070) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1399
#40 0x00007fff9dd4e68b in SdOutliner::SpellNextDocument (this=0x55555ee0e070) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:393
#41 0x00007fff9dd4fbc0 in SdOutliner::GetNextSpellSentence (this=0x55555ee0e070) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:436
#42 0x00007fff9d8f4ee0 in sd::SpellDialogChildWindow::GetNextWrongSentence (this=0x55555e56afa0) at /home/michi/development/git/libreoffice/sd/source/ui/dlg/SpellDialogChildWindow.cxx:72
#43 0x00007fff9480ddaa in svx::SpellDialog::GetNextSentence_Impl (this=0x55555eca57c0, pGuard=0x0, bUseSavedSentence=false, bRecheck=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:1050
#44 0x00007fff9480caa4 in svx::SpellDialog::SpellContinue_Impl (this=0x55555eca57c0, pGuard=0x0, bUseSavedSentence=false, bIgnoreCurrentError=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:402
#45 0x00007fff9480f0dd in svx::SpellDialog::Initialize (this=0x55555eca57c0) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:432
#46 0x00007fff9485d131 in (anonymous namespace)::AbstractSpellDialog_Impl::Initialize (this=0x55555edb1bc0) at /home/michi/development/git/libreoffice/cui/source/factory/dlgfact.cxx:452
#47 0x00007ffff27ef522 in svx::SpellDialogChildWindow::Initialize (this=0x55555e56afa0) at /home/michi/development/git/libreoffice/svx/source/dialog/SpellDialogChildWindow.cxx:49
#48 0x00007ffff3aa0d49 in SfxChildWindow::CreateChildWindow (nId=10243, pParent=0x5555589410f0, pBindings=0x555556a7ef20, rInfo=...) at /home/michi/development/git/libreoffice/sfx2/source/appl/childwin.cxx:244
#49 0x00007ffff3b3be5d in SfxWorkWindow::CreateChildWin_Impl (this=0x7fff980287c0, pCW=0x5555598d22b0, bSetFocus=false) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1350
#50 0x00007ffff3b3bbc6 in SfxWorkWindow::UpdateChildWindows_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1299
#51 0x00007ffff3b3b205 in SfxWorkWindow::UpdateObjectBars_Impl2 (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1247
#52 0x00007ffff3b3a831 in SfxWorkWindow::UpdateObjectBars_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1095
#53 0x00007ffff3ba83b3 in SfxDispatcher::Update_Impl (this=0x555556877340, bForce=true) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:1124
#54 0x00007ffff3bfebbe in DispatcherUpdate_Impl (pArg=0x555556877340) at /home/michi/development/git/libreoffice/sfx2/source/control/shell.cxx:681
#55 0x00007ffff0889f71 in Link<void*, void>::Call (this=0x55555e3c7c40, data=0x555556877340) at include/tools/link.hxx:105
#56 0x00007ffff08df2c8 in svtools::AsynchronLink::HandleCall_PostUserEvent (this=0x55555e3c7c40) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:66
#57 0x00007ffff08df21d in svtools::AsynchronLink::LinkStubHandleCall_PostUserEvent (instance=0x55555e3c7c40, data=0x0) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:58
#58 0x00007fffee4622d1 in Link<void*, void>::Call (this=0x55555e86e7e8, data=0x0) at include/tools/link.hxx:105
#59 0x00007fffee45dbf1 in ImplHandleUserEvent (pSVEvent=0x55555e86e7e0) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2312
#60 0x00007fffee45ab1f in ImplWindowFrameProc (_pWindow=0x555556a70090, nEvent=SalEvent::UserEvent, pEvent=0x55555e86e7e0) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2869
#61 0x00007fffef031fec in SalFrame::CallCallback (this=0x5555569484e0, nEvent=SalEvent::UserEvent, pEvent=0x55555e86e7e0) at vcl/inc/salframe.hxx:310
#62 0x00007fffef0584df in SalGenericDisplay::ProcessEvent (this=0x5555569f26e0, aEvent=...) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:66
#63 0x00007fffeea32ced in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7ffffffebc20) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
#64 0x00007fffeea32bbb in SalUserEventList::DispatchUserEvents (this=0x5555569f26e0, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
#65 0x00007fffef058435 in SalGenericDisplay::DispatchInternalEvent (this=0x5555569f26e0, bHandleAllCurrentEvent=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:51
#66 0x00007fffe647995f in call_userEventFn (data=0x5555555b3760) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkdata.cxx:825
#67 0x00007fffe9d04385 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#68 0x00007fffe9d065b7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#69 0x00007fffe9d0701f in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#70 0x00007fffe652062a in main_loop_run (pLoop=0x55555edb57d0) at vcl/inc/unx/gtk/gtkdata.hxx:59
#71 0x00007fffe64964ad in (anonymous namespace)::DialogRunner::run (this=0x55555ed86530) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:6768
#72 0x00007fffe6491af0 in (anonymous namespace)::GtkInstanceDialog::run (this=0x55555ed863d0) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:10190
#73 0x00007fff9dd55d03 in SdOutliner::ShowWrapAroundDialog (this=0x55555ed78a80) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1526
#74 0x00007fff9dd4e88f in SdOutliner::EndOfSearch (this=0x55555ed78a80) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1432
#75 0x00007fff9dd4f9e2 in SdOutliner::ProvideNextTextObject (this=0x55555ed78a80) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1399
#76 0x00007fff9dd4e68b in SdOutliner::SpellNextDocument (this=0x55555ed78a80) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:393
#77 0x00007fff9dd4fbc0 in SdOutliner::GetNextSpellSentence (this=0x55555ed78a80) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:436
#78 0x00007fff9d8f4ee0 in sd::SpellDialogChildWindow::GetNextWrongSentence (this=0x55555eaeead0) at /home/michi/development/git/libreoffice/sd/source/ui/dlg/SpellDialogChildWindow.cxx:72
#79 0x00007fff9480ddaa in svx::SpellDialog::GetNextSentence_Impl (this=0x55555eb6ef60, pGuard=0x0, bUseSavedSentence=false, bRecheck=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:1050
#80 0x00007fff9480caa4 in svx::SpellDialog::SpellContinue_Impl (this=0x55555eb6ef60, pGuard=0x0, bUseSavedSentence=false, bIgnoreCurrentError=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:402
#81 0x00007fff9480f0dd in svx::SpellDialog::Initialize (this=0x55555eb6ef60) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:432
#82 0x00007fff9485d131 in (anonymous namespace)::AbstractSpellDialog_Impl::Initialize (this=0x5555599c5060) at /home/michi/development/git/libreoffice/cui/source/factory/dlgfact.cxx:452
#83 0x00007ffff27ef522 in svx::SpellDialogChildWindow::Initialize (this=0x55555eaeead0) at /home/michi/development/git/libreoffice/svx/source/dialog/SpellDialogChildWindow.cxx:49
#84 0x00007ffff3aa0d49 in SfxChildWindow::CreateChildWindow (nId=10243, pParent=0x5555589410f0, pBindings=0x555556a7ef20, rInfo=...) at /home/michi/development/git/libreoffice/sfx2/source/appl/childwin.cxx:244
#85 0x00007ffff3b3be5d in SfxWorkWindow::CreateChildWin_Impl (this=0x7fff980287c0, pCW=0x5555598d22b0, bSetFocus=false) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1350
#86 0x00007ffff3b3bbc6 in SfxWorkWindow::UpdateChildWindows_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1299
#87 0x00007ffff3b3b205 in SfxWorkWindow::UpdateObjectBars_Impl2 (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1247
#88 0x00007ffff3b3a831 in SfxWorkWindow::UpdateObjectBars_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1095
#89 0x00007ffff3ba83b3 in SfxDispatcher::Update_Impl (this=0x555556877340, bForce=true) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:1124
#90 0x00007ffff3bfebbe in DispatcherUpdate_Impl (pArg=0x555556877340) at /home/michi/development/git/libreoffice/sfx2/source/control/shell.cxx:681
#91 0x00007ffff0889f71 in Link<void*, void>::Call (this=0x55555e38cad0, data=0x555556877340) at include/tools/link.hxx:105
#92 0x00007ffff08df2c8 in svtools::AsynchronLink::HandleCall_PostUserEvent (this=0x55555e38cad0) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:66
#93 0x00007ffff08df21d in svtools::AsynchronLink::LinkStubHandleCall_PostUserEvent (instance=0x55555e38cad0, data=0x0) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:58
#94 0x00007fffee4622d1 in Link<void*, void>::Call (this=0x55555e780b88, data=0x0) at include/tools/link.hxx:105
#95 0x00007fffee45dbf1 in ImplHandleUserEvent (pSVEvent=0x55555e780b80) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2312
#96 0x00007fffee45ab1f in ImplWindowFrameProc (_pWindow=0x555556a70090, nEvent=SalEvent::UserEvent, pEvent=0x55555e780b80) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2869
#97 0x00007fffef031fec in SalFrame::CallCallback (this=0x5555569484e0, nEvent=SalEvent::UserEvent, pEvent=0x55555e780b80) at vcl/inc/salframe.hxx:310
#98 0x00007fffef0584df in SalGenericDisplay::ProcessEvent (this=0x5555569f26e0, aEvent=...) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:66
#99 0x00007fffeea32ced in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7ffffffee430) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
#100 0x00007fffeea32bbb in SalUserEventList::DispatchUserEvents (this=0x5555569f26e0, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
#101 0x00007fffef058435 in SalGenericDisplay::DispatchInternalEvent (this=0x5555569f26e0, bHandleAllCurrentEvent=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:51
#102 0x00007fffe647995f in call_userEventFn (data=0x5555555b3760) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkdata.cxx:825
#103 0x00007fffe9d04385 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#104 0x00007fffe9d065b7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#105 0x00007fffe9d0701f in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#106 0x00007fffe652062a in main_loop_run (pLoop=0x55555eb90ac0) at vcl/inc/unx/gtk/gtkdata.hxx:59
#107 0x00007fffe64964ad in (anonymous namespace)::DialogRunner::run (this=0x55555eb76cc0) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:6768
#108 0x00007fffe6491af0 in (anonymous namespace)::GtkInstanceDialog::run (this=0x55555eb76b60) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:10190
#109 0x00007fff9dd55d03 in SdOutliner::ShowWrapAroundDialog (this=0x55555eb6a760) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1526
#110 0x00007fff9dd4e88f in SdOutliner::EndOfSearch (this=0x55555eb6a760) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1432
#111 0x00007fff9dd4f9e2 in SdOutliner::ProvideNextTextObject (this=0x55555eb6a760) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1399
#112 0x00007fff9dd4e68b in SdOutliner::SpellNextDocument (this=0x55555eb6a760) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:393
#113 0x00007fff9dd4fbc0 in SdOutliner::GetNextSpellSentence (this=0x55555eb6a760) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:436
#114 0x00007fff9d8f4ee0 in sd::SpellDialogChildWindow::GetNextWrongSentence (this=0x55555e92cf20) at /home/michi/development/git/libreoffice/sd/source/ui/dlg/SpellDialogChildWindow.cxx:72
#115 0x00007fff9480ddaa in svx::SpellDialog::GetNextSentence_Impl (this=0x55555e7bc0e0, pGuard=0x0, bUseSavedSentence=false, bRecheck=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:1050
#116 0x00007fff9480caa4 in svx::SpellDialog::SpellContinue_Impl (this=0x55555e7bc0e0, pGuard=0x0, bUseSavedSentence=false, bIgnoreCurrentError=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:402
#117 0x00007fff9480f0dd in svx::SpellDialog::Initialize (this=0x55555e7bc0e0) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:432
#118 0x00007fff9485d131 in (anonymous namespace)::AbstractSpellDialog_Impl::Initialize (this=0x55555e75e580) at /home/michi/development/git/libreoffice/cui/source/factory/dlgfact.cxx:452
#119 0x00007ffff27ef522 in svx::SpellDialogChildWindow::Initialize (this=0x55555e92cf20) at /home/michi/development/git/libreoffice/svx/source/dialog/SpellDialogChildWindow.cxx:49
#120 0x00007ffff3aa0d49 in SfxChildWindow::CreateChildWindow (nId=10243, pParent=0x5555589410f0, pBindings=0x555556a7ef20, rInfo=...) at /home/michi/development/git/libreoffice/sfx2/source/appl/childwin.cxx:244
#121 0x00007ffff3b3be5d in SfxWorkWindow::CreateChildWin_Impl (this=0x7fff980287c0, pCW=0x5555598d22b0, bSetFocus=false) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1350
#122 0x00007ffff3b3bbc6 in SfxWorkWindow::UpdateChildWindows_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1299
#123 0x00007ffff3b3b205 in SfxWorkWindow::UpdateObjectBars_Impl2 (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1247
#124 0x00007ffff3b3a831 in SfxWorkWindow::UpdateObjectBars_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1095
#125 0x00007ffff3ba83b3 in SfxDispatcher::Update_Impl (this=0x555556877340, bForce=true) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:1124
#126 0x00007ffff3bfebbe in DispatcherUpdate_Impl (pArg=0x555556877340) at /home/michi/development/git/libreoffice/sfx2/source/control/shell.cxx:681
#127 0x00007ffff0889f71 in Link<void*, void>::Call (this=0x55555a823ba0, data=0x555556877340) at include/tools/link.hxx:105
#128 0x00007ffff08df2c8 in svtools::AsynchronLink::HandleCall_PostUserEvent (this=0x55555a823ba0) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:66
#129 0x00007ffff08df21d in svtools::AsynchronLink::LinkStubHandleCall_PostUserEvent (instance=0x55555a823ba0, data=0x0) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:58
#130 0x00007fffee4622d1 in Link<void*, void>::Call (this=0x55555e6ff308, data=0x0) at include/tools/link.hxx:105
#131 0x00007fffee45dbf1 in ImplHandleUserEvent (pSVEvent=0x55555e6ff300) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2312
#132 0x00007fffee45ab1f in ImplWindowFrameProc (_pWindow=0x555556a70090, nEvent=SalEvent::UserEvent, pEvent=0x55555e6ff300) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2869
#133 0x00007fffef031fec in SalFrame::CallCallback (this=0x5555569484e0, nEvent=SalEvent::UserEvent, pEvent=0x55555e6ff300) at vcl/inc/salframe.hxx:310
#134 0x00007fffef0584df in SalGenericDisplay::ProcessEvent (this=0x5555569f26e0, aEvent=...) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:66
#135 0x00007fffeea32ced in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7fffffff0c40) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
#136 0x00007fffeea32bbb in SalUserEventList::DispatchUserEvents (this=0x5555569f26e0, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
#137 0x00007fffef058435 in SalGenericDisplay::DispatchInternalEvent (this=0x5555569f26e0, bHandleAllCurrentEvent=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:51
#138 0x00007fffe647995f in call_userEventFn (data=0x5555555b3760) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkdata.cxx:825
#139 0x00007fffe9d04385 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#140 0x00007fffe9d065b7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#141 0x00007fffe9d0701f in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#142 0x00007fffe652062a in main_loop_run (pLoop=0x55555e92fb70) at vcl/inc/unx/gtk/gtkdata.hxx:59
#143 0x00007fffe64964ad in (anonymous namespace)::DialogRunner::run (this=0x55555e950a20) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:6768
#144 0x00007fffe6491af0 in (anonymous namespace)::GtkInstanceDialog::run (this=0x55555e9508c0) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:10190
#145 0x00007fff9dd55d03 in SdOutliner::ShowWrapAroundDialog (this=0x55555e8e0e30) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1526
#146 0x00007fff9dd4e88f in SdOutliner::EndOfSearch (this=0x55555e8e0e30) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1432
#147 0x00007fff9dd4f9e2 in SdOutliner::ProvideNextTextObject (this=0x55555e8e0e30) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1399
#148 0x00007fff9dd4e68b in SdOutliner::SpellNextDocument (this=0x55555e8e0e30) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:393
#149 0x00007fff9dd4fbc0 in SdOutliner::GetNextSpellSentence (this=0x55555e8e0e30) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:436
#150 0x00007fff9d8f4ee0 in sd::SpellDialogChildWindow::GetNextWrongSentence (this=0x55555e8f0390) at /home/michi/development/git/libreoffice/sd/source/ui/dlg/SpellDialogChildWindow.cxx:72
#151 0x00007fff9480ddaa in svx::SpellDialog::GetNextSentence_Impl (this=0x55555e9c6ac0, pGuard=0x0, bUseSavedSentence=false, bRecheck=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:1050
#152 0x00007fff9480caa4 in svx::SpellDialog::SpellContinue_Impl (this=0x55555e9c6ac0, pGuard=0x0, bUseSavedSentence=false, bIgnoreCurrentError=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:402
#153 0x00007fff9480f0dd in svx::SpellDialog::Initialize (this=0x55555e9c6ac0) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:432
#154 0x00007fff9485d131 in (anonymous namespace)::AbstractSpellDialog_Impl::Initialize (this=0x55555e319180) at /home/michi/development/git/libreoffice/cui/source/factory/dlgfact.cxx:452
#155 0x00007ffff27ef522 in svx::SpellDialogChildWindow::Initialize (this=0x55555e8f0390) at /home/michi/development/git/libreoffice/svx/source/dialog/SpellDialogChildWindow.cxx:49
#156 0x00007ffff3aa0d49 in SfxChildWindow::CreateChildWindow (nId=10243, pParent=0x5555589410f0, pBindings=0x555556a7ef20, rInfo=...) at /home/michi/development/git/libreoffice/sfx2/source/appl/childwin.cxx:244
#157 0x00007ffff3b3be5d in SfxWorkWindow::CreateChildWin_Impl (this=0x7fff980287c0, pCW=0x5555598d22b0, bSetFocus=false) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1350
#158 0x00007ffff3b3bbc6 in SfxWorkWindow::UpdateChildWindows_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1299
#159 0x00007ffff3b3b205 in SfxWorkWindow::UpdateObjectBars_Impl2 (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1247
#160 0x00007ffff3b3a831 in SfxWorkWindow::UpdateObjectBars_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1095
#161 0x00007ffff3ba83b3 in SfxDispatcher::Update_Impl (this=0x555556877340, bForce=true) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:1124
#162 0x00007ffff3bfebbe in DispatcherUpdate_Impl (pArg=0x555556877340) at /home/michi/development/git/libreoffice/sfx2/source/control/shell.cxx:681
#163 0x00007ffff0889f71 in Link<void*, void>::Call (this=0x55555e3f61c0, data=0x555556877340) at include/tools/link.hxx:105
#164 0x00007ffff08df2c8 in svtools::AsynchronLink::HandleCall_PostUserEvent (this=0x55555e3f61c0) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:66
#165 0x00007ffff08df21d in svtools::AsynchronLink::LinkStubHandleCall_PostUserEvent (instance=0x55555e3f61c0, data=0x0) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:58
#166 0x00007fffee4622d1 in Link<void*, void>::Call (this=0x55555e58c6e8, data=0x0) at include/tools/link.hxx:105
#167 0x00007fffee45dbf1 in ImplHandleUserEvent (pSVEvent=0x55555e58c6e0) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2312
#168 0x00007fffee45ab1f in ImplWindowFrameProc (_pWindow=0x555556a70090, nEvent=SalEvent::UserEvent, pEvent=0x55555e58c6e0) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2869
#169 0x00007fffef031fec in SalFrame::CallCallback (this=0x5555569484e0, nEvent=SalEvent::UserEvent, pEvent=0x55555e58c6e0) at vcl/inc/salframe.hxx:310
#170 0x00007fffef0584df in SalGenericDisplay::ProcessEvent (this=0x5555569f26e0, aEvent=...) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:66
#171 0x00007fffeea32ced in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7fffffff3450) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
#172 0x00007fffeea32bbb in SalUserEventList::DispatchUserEvents (this=0x5555569f26e0, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
#173 0x00007fffef058435 in SalGenericDisplay::DispatchInternalEvent (this=0x5555569f26e0, bHandleAllCurrentEvent=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:51
#174 0x00007fffe647995f in call_userEventFn (data=0x5555555b3760) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkdata.cxx:825
#175 0x00007fffe9d04385 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#176 0x00007fffe9d065b7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#177 0x00007fffe9d0701f in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#178 0x00007fffe652062a in main_loop_run (pLoop=0x55555e8ec500) at vcl/inc/unx/gtk/gtkdata.hxx:59
#179 0x00007fffe64964ad in (anonymous namespace)::DialogRunner::run (this=0x55555e867400) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:6768
#180 0x00007fffe6491af0 in (anonymous namespace)::GtkInstanceDialog::run (this=0x55555e8672a0) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:10190
#181 0x00007fff9dd55d03 in SdOutliner::ShowWrapAroundDialog (this=0x55555e859950) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1526
#182 0x00007fff9dd4e88f in SdOutliner::EndOfSearch (this=0x55555e859950) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1432
#183 0x00007fff9dd4f9e2 in SdOutliner::ProvideNextTextObject (this=0x55555e859950) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1399
#184 0x00007fff9dd4e68b in SdOutliner::SpellNextDocument (this=0x55555e859950) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:393
#185 0x00007fff9dd4fbc0 in SdOutliner::GetNextSpellSentence (this=0x55555e859950) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:436
#186 0x00007fff9d8f4ee0 in sd::SpellDialogChildWindow::GetNextWrongSentence (this=0x55555e7623d0) at /home/michi/development/git/libreoffice/sd/source/ui/dlg/SpellDialogChildWindow.cxx:72
#187 0x00007fff9480ddaa in svx::SpellDialog::GetNextSentence_Impl (this=0x55555e4fc700, pGuard=0x0, bUseSavedSentence=false, bRecheck=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:1050
#188 0x00007fff9480caa4 in svx::SpellDialog::SpellContinue_Impl (this=0x55555e4fc700, pGuard=0x0, bUseSavedSentence=false, bIgnoreCurrentError=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:402
#189 0x00007fff9480f0dd in svx::SpellDialog::Initialize (this=0x55555e4fc700) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:432
#190 0x00007fff9485d131 in (anonymous namespace)::AbstractSpellDialog_Impl::Initialize (this=0x555558f1e9c0) at /home/michi/development/git/libreoffice/cui/source/factory/dlgfact.cxx:452
#191 0x00007ffff27ef522 in svx::SpellDialogChildWindow::Initialize (this=0x55555e7623d0) at /home/michi/development/git/libreoffice/svx/source/dialog/SpellDialogChildWindow.cxx:49
#192 0x00007ffff3aa0d49 in SfxChildWindow::CreateChildWindow (nId=10243, pParent=0x5555589410f0, pBindings=0x555556a7ef20, rInfo=...) at /home/michi/development/git/libreoffice/sfx2/source/appl/childwin.cxx:244
#193 0x00007ffff3b3be5d in SfxWorkWindow::CreateChildWin_Impl (this=0x7fff980287c0, pCW=0x5555598d22b0, bSetFocus=false) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1350
#194 0x00007ffff3b3bbc6 in SfxWorkWindow::UpdateChildWindows_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1299
#195 0x00007ffff3b3b205 in SfxWorkWindow::UpdateObjectBars_Impl2 (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1247
#196 0x00007ffff3b3a831 in SfxWorkWindow::UpdateObjectBars_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1095
#197 0x00007ffff3ba83b3 in SfxDispatcher::Update_Impl (this=0x555556877340, bForce=true) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:1124
#198 0x00007ffff3bfebbe in DispatcherUpdate_Impl (pArg=0x555556877340) at /home/michi/development/git/libreoffice/sfx2/source/control/shell.cxx:681
#199 0x00007ffff0889f71 in Link<void*, void>::Call (this=0x55555e45d520, data=0x555556877340) at include/tools/link.hxx:105
#200 0x00007ffff08df2c8 in svtools::AsynchronLink::HandleCall_PostUserEvent (this=0x55555e45d520) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:66
#201 0x00007ffff08df21d in svtools::AsynchronLink::LinkStubHandleCall_PostUserEvent (instance=0x55555e45d520, data=0x0) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:58
#202 0x00007fffee4622d1 in Link<void*, void>::Call (this=0x555559999828, data=0x0) at include/tools/link.hxx:105
#203 0x00007fffee45dbf1 in ImplHandleUserEvent (pSVEvent=0x555559999820) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2312
#204 0x00007fffee45ab1f in ImplWindowFrameProc (_pWindow=0x555556a70090, nEvent=SalEvent::UserEvent, pEvent=0x555559999820) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2869
#205 0x00007fffef031fec in SalFrame::CallCallback (this=0x5555569484e0, nEvent=SalEvent::UserEvent, pEvent=0x555559999820) at vcl/inc/salframe.hxx:310
#206 0x00007fffef0584df in SalGenericDisplay::ProcessEvent (this=0x5555569f26e0, aEvent=...) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:66
#207 0x00007fffeea32ced in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7fffffff5c60) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
#208 0x00007fffeea32bbb in SalUserEventList::DispatchUserEvents (this=0x5555569f26e0, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
#209 0x00007fffef058435 in SalGenericDisplay::DispatchInternalEvent (this=0x5555569f26e0, bHandleAllCurrentEvent=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:51
#210 0x00007fffe647995f in call_userEventFn (data=0x5555555b3760) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkdata.cxx:825
#211 0x00007fffe9d04385 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#212 0x00007fffe9d065b7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#213 0x00007fffe9d0701f in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#214 0x00007fffe652062a in main_loop_run (pLoop=0x55555e75b650) at vcl/inc/unx/gtk/gtkdata.hxx:59
#215 0x00007fffe64964ad in (anonymous namespace)::DialogRunner::run (this=0x55555e6e17e0) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:6768
#216 0x00007fffe6491af0 in (anonymous namespace)::GtkInstanceDialog::run (this=0x55555e6e1680) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:10190
#217 0x00007fff9dd55d03 in SdOutliner::ShowWrapAroundDialog (this=0x55555e6be710) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1526
#218 0x00007fff9dd4e88f in SdOutliner::EndOfSearch (this=0x55555e6be710) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1432
#219 0x00007fff9dd4f9e2 in SdOutliner::ProvideNextTextObject (this=0x55555e6be710) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1399
#220 0x00007fff9dd4e68b in SdOutliner::SpellNextDocument (this=0x55555e6be710) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:393
#221 0x00007fff9dd4fbc0 in SdOutliner::GetNextSpellSentence (this=0x55555e6be710) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:436
#222 0x00007fff9d8f4ee0 in sd::SpellDialogChildWindow::GetNextWrongSentence (this=0x555558b3fbc0) at /home/michi/development/git/libreoffice/sd/source/ui/dlg/SpellDialogChildWindow.cxx:72
#223 0x00007fff9480ddaa in svx::SpellDialog::GetNextSentence_Impl (this=0x55555e586600, pGuard=0x0, bUseSavedSentence=false, bRecheck=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:1050
#224 0x00007fff9480caa4 in svx::SpellDialog::SpellContinue_Impl (this=0x55555e586600, pGuard=0x0, bUseSavedSentence=false, bIgnoreCurrentError=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:402
#225 0x00007fff9480f0dd in svx::SpellDialog::Initialize (this=0x55555e586600) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:432
#226 0x00007fff9485d131 in (anonymous namespace)::AbstractSpellDialog_Impl::Initialize (this=0x55555e52b360) at /home/michi/development/git/libreoffice/cui/source/factory/dlgfact.cxx:452
#227 0x00007ffff27ef522 in svx::SpellDialogChildWindow::Initialize (this=0x555558b3fbc0) at /home/michi/development/git/libreoffice/svx/source/dialog/SpellDialogChildWindow.cxx:49
#228 0x00007ffff3aa0d49 in SfxChildWindow::CreateChildWindow (nId=10243, pParent=0x5555589410f0, pBindings=0x555556a7ef20, rInfo=...) at /home/michi/development/git/libreoffice/sfx2/source/appl/childwin.cxx:244
#229 0x00007ffff3b3be5d in SfxWorkWindow::CreateChildWin_Impl (this=0x7fff980287c0, pCW=0x5555598d22b0, bSetFocus=false) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1350
#230 0x00007ffff3b3bbc6 in SfxWorkWindow::UpdateChildWindows_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1299
#231 0x00007ffff3b3b205 in SfxWorkWindow::UpdateObjectBars_Impl2 (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1247
#232 0x00007ffff3b3a831 in SfxWorkWindow::UpdateObjectBars_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1095
#233 0x00007ffff3ba83b3 in SfxDispatcher::Update_Impl (this=0x555556877340, bForce=true) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:1124
#234 0x00007ffff3bfebbe in DispatcherUpdate_Impl (pArg=0x555556877340) at /home/michi/development/git/libreoffice/sfx2/source/control/shell.cxx:681
#235 0x00007ffff0889f71 in Link<void*, void>::Call (this=0x55555e50f300, data=0x555556877340) at include/tools/link.hxx:105
#236 0x00007ffff08df2c8 in svtools::AsynchronLink::HandleCall_PostUserEvent (this=0x55555e50f300) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:66
#237 0x00007ffff08df21d in svtools::AsynchronLink::LinkStubHandleCall_PostUserEvent (instance=0x55555e50f300, data=0x0) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:58
#238 0x00007fffee4622d1 in Link<void*, void>::Call (this=0x555559c0e478, data=0x0) at include/tools/link.hxx:105
#239 0x00007fffee45dbf1 in ImplHandleUserEvent (pSVEvent=0x555559c0e470) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2312
#240 0x00007fffee45ab1f in ImplWindowFrameProc (_pWindow=0x555556a70090, nEvent=SalEvent::UserEvent, pEvent=0x555559c0e470) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2869
#241 0x00007fffef031fec in SalFrame::CallCallback (this=0x5555569484e0, nEvent=SalEvent::UserEvent, pEvent=0x555559c0e470) at vcl/inc/salframe.hxx:310
#242 0x00007fffef0584df in SalGenericDisplay::ProcessEvent (this=0x5555569f26e0, aEvent=...) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:66
#243 0x00007fffeea32ced in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7fffffff8470) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
#244 0x00007fffeea32bbb in SalUserEventList::DispatchUserEvents (this=0x5555569f26e0, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
#245 0x00007fffef058435 in SalGenericDisplay::DispatchInternalEvent (this=0x5555569f26e0, bHandleAllCurrentEvent=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:51
#246 0x00007fffe647995f in call_userEventFn (data=0x5555555b3760) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkdata.cxx:825
#247 0x00007fffe9d04385 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#248 0x00007fffe9d065b7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#249 0x00007fffe9d0701f in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#250 0x00007fffe652062a in main_loop_run (pLoop=0x55555e56d830) at vcl/inc/unx/gtk/gtkdata.hxx:59
#251 0x00007fffe64964ad in (anonymous namespace)::DialogRunner::run (this=0x555558b52070) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:6768
#252 0x00007fffe6491af0 in (anonymous namespace)::GtkInstanceDialog::run (this=0x555558b51f10) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:10190
#253 0x00007fff9dd55d03 in SdOutliner::ShowWrapAroundDialog (this=0x555559646c20) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1526
#254 0x00007fff9dd4e88f in SdOutliner::EndOfSearch (this=0x555559646c20) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1432
#255 0x00007fff9dd4f9e2 in SdOutliner::ProvideNextTextObject (this=0x555559646c20) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1399
#256 0x00007fff9dd4e68b in SdOutliner::SpellNextDocument (this=0x555559646c20) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:393
#257 0x00007fff9dd4fbc0 in SdOutliner::GetNextSpellSentence (this=0x555559646c20) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:436
#258 0x00007fff9d8f4ee0 in sd::SpellDialogChildWindow::GetNextWrongSentence (this=0x55555e44ba10) at /home/michi/development/git/libreoffice/sd/source/ui/dlg/SpellDialogChildWindow.cxx:72
#259 0x00007fff9480ddaa in svx::SpellDialog::GetNextSentence_Impl (this=0x55555e445f10, pGuard=0x0, bUseSavedSentence=false, bRecheck=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:1050
#260 0x00007fff9480caa4 in svx::SpellDialog::SpellContinue_Impl (this=0x55555e445f10, pGuard=0x0, bUseSavedSentence=false, bIgnoreCurrentError=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:402
#261 0x00007fff9480f0dd in svx::SpellDialog::Initialize (this=0x55555e445f10) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:432
#262 0x00007fff9485d131 in (anonymous namespace)::AbstractSpellDialog_Impl::Initialize (this=0x55555e3212b0) at /home/michi/development/git/libreoffice/cui/source/factory/dlgfact.cxx:452
#263 0x00007ffff27ef522 in svx::SpellDialogChildWindow::Initialize (this=0x55555e44ba10) at /home/michi/development/git/libreoffice/svx/source/dialog/SpellDialogChildWindow.cxx:49
#264 0x00007ffff3aa0d49 in SfxChildWindow::CreateChildWindow (nId=10243, pParent=0x5555589410f0, pBindings=0x555556a7ef20, rInfo=...) at /home/michi/development/git/libreoffice/sfx2/source/appl/childwin.cxx:244
#265 0x00007ffff3b3be5d in SfxWorkWindow::CreateChildWin_Impl (this=0x7fff980287c0, pCW=0x5555598d22b0, bSetFocus=true) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1350
#266 0x00007ffff3b3e0f3 in SfxWorkWindow::ToggleChildWindow_Impl (this=0x7fff980287c0, nId=10243, bSetFocus=true) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1835
#267 0x00007ffff42110c9 in SfxViewFrame::ToggleChildWindow (this=0x555556819530, nId=10243) at /home/michi/development/git/libreoffice/sfx2/source/view/viewfrm.cxx:3703
#268 0x00007fff9de38d3c in sd::DrawViewShell::Execute (this=0x555556b4b610, rReq=...) at /home/michi/development/git/libreoffice/sd/source/ui/view/drviews7.cxx:1976
#269 0x00007fff9de64075 in SfxStubDrawViewShellExecute (pShell=0x555556b4b610, rReq=...) at workdir/SdiTarget/sd/sdi/sdslots.hxx:1575
#270 0x00007ffff3ba6bfe in SfxDispatcher::Call_Impl (this=0x555556877340, rShell=..., rSlot=..., rReq=..., bRecord=true) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:256
#271 0x00007ffff3bab4a6 in SfxDispatcher::Execute_ (this=0x555556877340, rShell=..., rSlot=..., rReq=..., eCallMode=SfxCallMode::RECORD) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:755
#272 0x00007ffff3b9302e in SfxBindings::Execute_Impl (this=0x555556a7ef20, aReq=..., pSlot=0x7fff9df8d038 <aDrawViewShellSlots_Impl+10728>, pShell=0x555556b4b610)
at /home/michi/development/git/libreoffice/sfx2/source/control/bindings.cxx:1045
#273 0x00007ffff3c720cd in SfxDispatchController_Impl::dispatch (this=0x55555915d2e0, aURL=..., aArgs=empty uno::Sequence, rListener=empty uno::Reference) at /home/michi/development/git/libreoffice/sfx2/source/control/unoctitm.cxx:736
#274 0x00007ffff3c70b84 in SfxOfficeDispatch::dispatch (this=0x55555915cfa0, aURL=..., aArgs=empty uno::Sequence) at /home/michi/development/git/libreoffice/sfx2/source/control/unoctitm.cxx:255
#275 0x00007ffff09d3792 in svt::(anonymous namespace)::AsyncAccelExec::impl_ts_asyncCallback (this=0x55555e321fc0) at /home/michi/development/git/libreoffice/svtools/source/misc/acceleratorexecute.cxx:509
#276 0x00007ffff09d34cd in svt::(anonymous namespace)::AsyncAccelExec::LinkStubimpl_ts_asyncCallback (instance=0x55555e321fc0, data=0x0) at /home/michi/development/git/libreoffice/svtools/source/misc/acceleratorexecute.cxx:501
#277 0x00007fffee18f511 in Link<LinkParamNone*, void>::Call (this=0x55555e322060, data=0x0) at include/tools/link.hxx:105
#278 0x00007fffeea21eea in vcl::EventPoster::DoEvent_Impl (this=0x55555e322058) at /home/michi/development/git/libreoffice/vcl/source/helper/evntpost.cxx:52
#279 0x00007fffeea21e9d in vcl::EventPoster::LinkStubDoEvent_Impl (instance=0x55555e322058, data=0x0) at /home/michi/development/git/libreoffice/vcl/source/helper/evntpost.cxx:48
#280 0x00007fffee4622d1 in Link<void*, void>::Call (this=0x55555e3148c8, data=0x0) at include/tools/link.hxx:105
#281 0x00007fffee45dbf1 in ImplHandleUserEvent (pSVEvent=0x55555e3148c0) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2312
#282 0x00007fffee45ab1f in ImplWindowFrameProc (_pWindow=0x555556a70090, nEvent=SalEvent::UserEvent, pEvent=0x55555e3148c0) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2869
#283 0x00007fffef031fec in SalFrame::CallCallback (this=0x5555569484e0, nEvent=SalEvent::UserEvent, pEvent=0x55555e3148c0) at vcl/inc/salframe.hxx:310
#284 0x00007fffef0584df in SalGenericDisplay::ProcessEvent (this=0x5555569f26e0, aEvent=...) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:66
#285 0x00007fffeea32ced in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7fffffffb850) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
#286 0x00007fffeea32bbb in SalUserEventList::DispatchUserEvents (this=0x5555569f26e0, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
#287 0x00007fffef058435 in SalGenericDisplay::DispatchInternalEvent (this=0x5555569f26e0, bHandleAllCurrentEvent=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:51
#288 0x00007fffe647995f in call_userEventFn (data=0x5555555b3760) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkdata.cxx:825
#289 0x00007fffe9d04385 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#290 0x00007fffe9d065b7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#291 0x00007fffe9d06d20 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#292 0x00007fffe64785dc in GtkSalData::Yield (this=0x5555555b3760, bWait=true, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkdata.cxx:403
#293 0x00007fffe647d613 in GtkInstance::DoYield (this=0x5555555b3610, bWait=true, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:440
#294 0x00007fffeeafec46 in ImplYield (i_bWait=true, i_bAllEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:389
#295 0x00007fffeeafe55f in Application::Yield () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:492
#296 0x00007fffeeafe340 in Application::Execute () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:364
#297 0x00007ffff7b21d05 in desktop::Desktop::Main (this=0x7fffffffd590) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1682
#298 0x00007fffeeb2b356 in ImplSVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:230
#299 0x00007fffeeb2ce79 in SVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:248
#300 0x00007ffff7b9ba3a in soffice_main () at /home/michi/development/git/libreoffice/desktop/source/app/sofficemain.cxx:122
#301 0x00005555555559fd in sal_main () at /home/michi/development/git/libreoffice/desktop/source/app/main.c:51
#302 0x00005555555559d7 in main (argc=2, argv=0x7fffffffd798) at /home/michi/development/git/libreoffice/desktop/source/app/main.c:49
Change-Id: Ic2e12a1ef163bb4ece04d631c92cc926bcbd0d5e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191950
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <[email protected]>
When the TreeView has special checkboxes enabled,
block signals while calling QStandardItem::setCheckable
for the item in the first column. This prevents triggering
the QAbstractItemModel::dataChanged signal which would trigger
weld::TreeView::signal_toggled from
QtInstanceTreeView::handleDataChanged for the newly
inserted row.
Since the row is new, there is no logical change
from a previous value from the weld API perspective.
This fixes a crash otherwise seen with upcoming
commit
Change-Id: I6262b0e9d235f9efc6cde81614d42ba28025989d
Author: Michael Weghorn <[email protected]>
Date: Mon Oct 6 11:28:33 2025 +0200
tdf#130857 qt weld: Support Writer "Caption" dialog
when triggering the then newly supported dialog.
Backtrace:
Thread 1 received signal SIGSEGV, Segmentation fault.
rtl::OUString::isEmpty (this=0x18) at include/rtl/ustring.hxx:839
839 return pData->length == 0;
(rr) bt
#0 rtl::OUString::isEmpty (this=0x18) at include/rtl/ustring.hxx:839
#1 0x00007fd750a9fb07 in SwCaptionOptPage::UpdateEntry (this=0x55d1ea326dc0, nSelEntry=0) at /home/michi/development/git/libreoffice/sw/source/ui/config/optload.cxx:1235
#2 0x00007fd750aa4e42 in SwCaptionOptPage::ToggleEntryHdl (this=0x55d1ea326dc0, rRowCol={...}) at /home/michi/development/git/libreoffice/sw/source/ui/config/optload.cxx:1344
#3 0x00007fd750a9ce4d in SwCaptionOptPage::LinkStubToggleEntryHdl (instance=0x55d1ea326dc0, data={...}) at /home/michi/development/git/libreoffice/sw/source/ui/config/optload.cxx:1342
#4 0x00007fd78ef17411 in Link<std::pair<weld::TreeIter const&, int> const&, void>::Call (this=0x55d1ea332d70, data={...}) at include/tools/link.hxx:105
#5 0x00007fd78ef112f1 in weld::TreeView::signal_toggled (this=0x55d1ea332d00, rIterCol={...}) at include/vcl/weld.hxx:1011
#6 0x00007fd78eef8507 in QtInstanceTreeView::handleDataChanged (this=0x55d1ea332b50, rTopLeft=..., rBottomRight=..., rRoles=...) at vcl/qt6/../qt5/QtInstanceTreeView.cxx:1214
#7 0x00007fd78ef17f4a in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>, QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void, void (QtInstanceTreeView::*)(QModelIndex const&, QModelIndex const&, QList<int> const&)>::call(void (QtInstanceTreeView::*)(QModelIndex const&, QModelIndex const&, QList<int> const&), QtInstanceTreeView*, void**)::{lambda()#1}::operator()() const (this=0x7ffe16a0ef90)
at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:127
#8 0x00007fd78ef17eb9 in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>, QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void, void (QtInstanceTreeView::*)(QModelIndex const&, QModelIndex const&, QList<int> const&)>::call(void (QtInstanceTreeView::*)(QModelIndex const&, QModelIndex const&, QList<int> const&), QtInstanceTreeView*, void**)::{lambda()#1}>(void**, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>, QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void, void (QtInstanceTreeView::*)(QModelIndex const&, QModelIndex const&, QList<int> const&)>::call(void (QtInstanceTreeView::*)(QModelIndex const&, QModelIndex const&, QList<int> const&), QtInstanceTreeView*, void**)::{lambda()#1}&&) (args=0x7ffe16a0f360, fn=...)
at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:65
#9 0x00007fd78ef17e83 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>, QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void, void (QtInstanceTreeView::*)(QModelIndex const&, QModelIndex const&, QList<int> const&)>::call
(f=(void (QtInstanceTreeView::*)(QtInstanceTreeView * const, const QModelIndex &, const QModelIndex &, const QList<int> &)) 0x7fd78eef83b0 <QtInstanceTreeView::handleDataChanged(QModelIndex const&, QModelIndex const&, QList<int> const&)>, o=0x55d1ea332b50, arg=0x7ffe16a0f360) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:126
#10 0x00007fd78ef17dfd in QtPrivate::FunctionPointer<void (QtInstanceTreeView::*)(QModelIndex const&, QModelIndex const&, QList<int> const&)>::call<QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void>
(f=(void (QtInstanceTreeView::*)(QtInstanceTreeView * const, const QModelIndex &, const QModelIndex &, const QList<int> &)) 0x7fd78eef83b0 <QtInstanceTreeView::handleDataChanged(QModelIndex const&, QModelIndex const&, QList<int> const&)>, o=0x55d1ea332b50, arg=0x7ffe16a0f360) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:174
#11 0x00007fd78ef17d26 in QtPrivate::QCallableObject<void (QtInstanceTreeView::*)(QModelIndex const&, QModelIndex const&, QList<int> const&), QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void>::impl
(which=1, this_=0x55d1ea270ae0, r=0x55d1ea332b50, a=0x7ffe16a0f360, ret=0x0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:545
#12 0x00007fd78dce95e2 in QtPrivate::QSlotObjectBase::call (this=0x55d1ea270ae0, r=0x55d1ea332b50, a=0x7ffe16a0f360) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#13 0x00007fd78df1400f in doActivate<false> (sender=0x55d1ea25a160, signal_index=3, argv=0x7ffe16a0f360) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4342
#14 0x00007fd78df0a353 in QMetaObject::activate (sender=0x55d1ea25a160, m=0x7fd78e85ee68 <QAbstractItemModel::staticMetaObject>, local_signal_index=0, argv=0x7ffe16a0f360)
at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4402
#15 0x00007fd78e36b5ce in QMetaObject::activate<void, QModelIndex, QModelIndex, QList<int> > (sender=0x55d1ea25a160, mo=0x7fd78e85ee68 <QAbstractItemModel::staticMetaObject>, local_signal_index=0, ret=0x0, args=..., args=..., args=...)
at qtbase/src/corelib/kernel/qobjectdefs.h:319
#16 0x00007fd78e3667f0 in QAbstractItemModel::dataChanged (this=0x55d1ea25a160, _t1=..., _t2=..., _t3=...) at qtbase/src/corelib/Core_autogen/include/moc_qabstractitemmodel.cpp:658
#17 0x00007fd78e3f83c4 in QSortFilterProxyModelPrivate::_q_sourceDataChanged (this=0x55d1e2894d60, source_top_left=..., source_bottom_right=..., roles=...)
at /home/michi/development/git/qt5/qtbase/src/corelib/itemmodels/qsortfilterproxymodel.cpp:1528
#18 0x00007fd78e43c83e in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>, QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void, void (QSortFilterProxyModelPrivate::*)(QModelIndex const&, QModelIndex const&, QList<int> const&)>::call(void (QSortFilterProxyModelPrivate::*)(QModelIndex const&, QModelIndex const&, QList<int> const&), QSortFilterProxyModelPrivate*, void**)::{lambda()#1}::operator()() const
(this=0x7ffe16a0f8a0) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:127
#19 0x00007fd78e43c79d in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>, QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void, void (QSortFilterProxyModelPrivate::*)(QModelIndex const&, QModelIndex const&, QList<int> const&)>::call(void (QSortFilterProxyModelPrivate::*)(QModelIndex const&, QModelIndex const&, QList<int> const&), QSortFilterProxyModelPrivate*, void**)::{lambda()#1}>(void**, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>, QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void, void (QSortFilterProxyModelPrivate::*)(QModelIndex const&, QModelIndex const&, QList<int> const&)>::call(void (QSortFilterProxyModelPrivate::*)(QModelIndex const&, QModelIndex const&, QList<int> const&), QSortFilterProxyModelPrivate*, void**)::{lambda()#1}&&)
(args=0x7ffe16a0fc80, fn=...) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:65
#20 0x00007fd78e43c757 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>, QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void, void (QSortFilterProxyModelPrivate::*)(QModelIndex const&, QModelIndex const&, QList<int> const&)>::call
(f=(void (QSortFilterProxyModelPrivate::*)(QSortFilterProxyModelPrivate * const, const QModelIndex &, const QModelIndex &, const QList<int> &)) 0x7fd78e3f74a0 <QSortFilterProxyModelPrivate::_q_sourceDataChanged(QModelIndex const&, QModelIndex const&, QList<int> const&)>, o=0x55d1e2894d60, arg=0x7ffe16a0fc80) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:126
#21 0x00007fd78e43c6c1 in QtPrivate::FunctionPointer<void (QSortFilterProxyModelPrivate::*)(QModelIndex const&, QModelIndex const&, QList<int> const&)>::call<QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void>
(f=(void (QSortFilterProxyModelPrivate::*)(QSortFilterProxyModelPrivate * const, const QModelIndex &, const QModelIndex &, const QList<int> &)) 0x7fd78e3f74a0 <QSortFilterProxyModelPrivate::_q_sourceDataChanged(QModelIndex const&, QModelIndex const&, QList<int> const&)>, o=0x55d1e2894d60, arg=0x7ffe16a0fc80) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:174
#22 0x00007fd78e43c5f0 in QtPrivate::QPrivateSlotObject<void (QSortFilterProxyModelPrivate::*)(QModelIndex const&, QModelIndex const&, QList<int> const&), QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void>::impl (which=1, this_=0x55d1ea25a960, r=0x55d1ea25a160, a=0x7ffe16a0fc80, ret=0x0) at qtbase/src/corelib/kernel/qobject_p.h:272
#23 0x00007fd78dce95e2 in QtPrivate::QSlotObjectBase::call (this=0x55d1ea25a960, r=0x55d1ea25a160, a=0x7ffe16a0fc80) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#24 0x00007fd78df1400f in doActivate<false> (sender=0x55d1ea259540, signal_index=3, argv=0x7ffe16a0fc80) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4342
#25 0x00007fd78df0a353 in QMetaObject::activate (sender=0x55d1ea259540, m=0x7fd78e85ee68 <QAbstractItemModel::staticMetaObject>, local_signal_index=0, argv=0x7ffe16a0fc80)
at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4402
#26 0x00007fd78e36b5ce in QMetaObject::activate<void, QModelIndex, QModelIndex, QList<int> > (sender=0x55d1ea259540, mo=0x7fd78e85ee68 <QAbstractItemModel::staticMetaObject>, local_signal_index=0, ret=0x0, args=..., args=..., args=...)
at qtbase/src/corelib/kernel/qobjectdefs.h:319
#27 0x00007fd78e3667f0 in QAbstractItemModel::dataChanged (this=0x55d1ea259540, _t1=..., _t2=..., _t3=...) at qtbase/src/corelib/Core_autogen/include/moc_qabstractitemmodel.cpp:658
#28 0x00007fd78d23d7cd in QStandardItemModelPrivate::itemChanged (this=0x55d1ea259fb0, item=0x55d1ea28adf0, roles=...) at /home/michi/development/git/qt5/qtbase/src/gui/itemmodels/qstandarditemmodel.cpp:568
#29 0x00007fd78d240701 in QStandardItem::setData (this=0x55d1ea28adf0, value=..., role=10) at /home/michi/development/git/qt5/qtbase/src/gui/itemmodels/qstandarditemmodel.cpp:909
#30 0x00007fd78d240ccd in QStandardItem::setCheckable (this=0x55d1ea28adf0, checkable=true) at /home/michi/development/git/qt5/qtbase/src/gui/itemmodels/qstandarditemmodel.cpp:1345
#31 0x00007fd78ef0387f in QtInstanceTreeView::insert(weld::TreeIter const*, int, rtl::OUString const*, rtl::OUString const*, rtl::OUString const*, VirtualDevice*, bool, weld::TreeIter*)::$_0::operator()() const (this=0x55d1ea28a600)
at vcl/qt6/../qt5/QtInstanceTreeView.cxx:88
#32 0x00007fd78ef03355 in std::__invoke_impl<void, QtInstanceTreeView::insert(weld::TreeIter const*, int, rtl::OUString const*, rtl::OUString const*, rtl::OUString const*, VirtualDevice*, bool, weld::TreeIter*)::$_0&>(std::__invoke_other, QtInstanceTreeView::insert(weld::TreeIter const*, int, rtl::OUString const*, rtl::OUString const*, rtl::OUString const*, VirtualDevice*, bool, weld::TreeIter*)::$_0&) (__f=...)
at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/invoke.h:63
#33 0x00007fd78ef03315 in std::__invoke_r<void, QtInstanceTreeView::insert(weld::TreeIter const*, int, rtl::OUString const*, rtl::OUString const*, rtl::OUString const*, VirtualDevice*, bool, weld::TreeIter*)::$_0&>(QtInstanceTreeView::insert(weld::TreeIter const*, int, rtl::OUString const*, rtl::OUString const*, rtl::OUString const*, VirtualDevice*, bool, weld::TreeIter*)::$_0&) (__fn=...)
at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/invoke.h:113
#34 0x00007fd78ef031fd in std::_Function_handler<void(), QtInstanceTreeView::insert(weld::TreeIter const*, int, rtl::OUString const*, rtl::OUString const*, rtl::OUString const*, VirtualDevice*, bool, weld::TreeIter*)::$_0>::_M_invoke
(__functor=...) at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/std_function.h:292
#35 0x00007fd78ee2adde in std::function<void()>::operator() (this=0x7ffe16a10278) at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/std_function.h:593
#36 0x00007fd78ee2200f in QtInstance::RunInMainThread (this=0x55d1e1053a60, func=...) at vcl/qt6/../qt5/QtInstance.cxx:205
#37 0x00007fd78eef9580 in QtInstanceTreeView::insert (this=0x55d1ea332b50, pParent=0x0, nPos=0, pStr=0x0, pId=0x0, pIconName=0x0, pImageSurface=0x0, bChildrenOnDemand=false, pRet=0x0) at vcl/qt6/../qt5/QtInstanceTreeView.cxx:62
#38 0x00007fd78eef9735 in virtual thunk to QtInstanceTreeView::insert(weld::TreeIter const*, int, rtl::OUString const*, rtl::OUString const*, rtl::OUString const*, VirtualDevice*, bool, weld::TreeIter*) ()
at /home/michi/development/git/libreoffice/instdir/program/libvclplug_qt6lo.so
#39 0x00007fd750a91799 in weld::TreeView::insert (this=0x55d1ea332d00, nRow=-1, pRet=0x0) at include/vcl/weld.hxx:1053
#40 0x00007fd750a90c92 in weld::TreeView::append (this=0x55d1ea332d00, pRet=0x0) at include/vcl/weld.hxx:1056
#41 0x00007fd750a9e2e9 in SwCaptionOptPage::Reset (this=0x55d1ea326dc0, rSet=0x7ffe16a10990) at /home/michi/development/git/libreoffice/sw/source/ui/config/optload.cxx:1096
#42 0x00007fd79c8bdd00 in SfxSingleTabDialogController::SetTabPage (this=0x7ffe16a10938, xTabPage=std::unique_ptr<SfxTabPage> = {...}) at /home/michi/development/git/libreoffice/sfx2/source/dialog/basedlgs.cxx:273
#43 0x00007fd750a99f2d in SwCaptionOptDlg::SwCaptionOptDlg (this=0x7ffe16a10938, pParent=0x55d1e7e35f78, rSet=SfxItemSet of pool 0x55d1e2a38060 with parent 0x0 and Which ranges: [(1, 160), (1000, 1252), (4021, 4078)])
at /home/michi/development/git/libreoffice/sw/source/ui/config/optload.cxx:854
#44 0x00007fd750c21914 in SwCaptionDialog::CaptionHdl (this=0x7fd77c003ea0) at /home/michi/development/git/libreoffice/sw/source/ui/frmdlg/cption.cxx:374
#45 0x00007fd750c2006d in SwCaptionDialog::LinkStubCaptionHdl (instance=0x7fd77c003ea0, data=...) at /home/michi/development/git/libreoffice/sw/source/ui/frmdlg/cption.cxx:371
#46 0x00007fd7976aa801 in Link<weld::Button&, void>::Call (this=0x55d1e7e35748, data=...) at include/tools/link.hxx:105
#47 0x00007fd79768582c in weld::Button::signal_clicked (this=0x55d1e7e35740) at include/vcl/weld.hxx:1563
[...]
Change-Id: I7ced40096c5d8cf840db3a185688017e0fdae692
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191954
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <[email protected]>
in headless vclplug too. Same deadlock can happen in that mode as seen originally as: commit d193d65 Date: Thu Sep 8 17:30:38 2022 +0200 tdf#151894 Pre-init NSSpellCHecker to avoid SolarMutex deadlock current example bts are main on thread 1, vcl launched to run on its event loop on 'lo_startmain' side thread. (lldb) thread backtrace 1 * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP * frame #0: 0x00000001966f489c libsystem_kernel.dylib`__psynch_mutexwait + 8 frame #1: 0x0000000196730e58 libsystem_pthread.dylib`_pthread_mutex_firstfit_lock_wait + 84 frame #2: 0x000000019672e840 libsystem_pthread.dylib`_pthread_mutex_firstfit_lock_slow + 220 frame #3: 0x0000000105ad554c libuno_sal.dylib.3`osl_acquireMutex(pMutex=<unavailable>) at mutex.cxx:99:20 frame #4: 0x000000015a6e8370 libmergedlo.dylib`SvpSalYieldMutex::doAcquire(unsigned int) [inlined] osl::Mutex::acquire(this=0x00000001497e7ec8) at mutex.hxx:63:20 frame #5: 0x000000015a6e8368 libmergedlo.dylib`SvpSalYieldMutex::doAcquire(this=0x00000001497e7ec0, nLockCount=1) at svpinst.cxx:357:18 frame #6: 0x000000015952fda8 libmergedlo.dylib`doc_saveAs(_LibreOfficeKitDocument*, char const*, char const*, char const*) [inlined] comphelper::SolarMutex::acquire(this=0x00000001497e7ec0, nLockCount=1) at solarmutex.hxx:86:5 frame #7: 0x000000015952fd98 libmergedlo.dylib`doc_saveAs(_LibreOfficeKitDocument*, char const*, char const*, char const*) [inlined] osl::Guard<comphelper::SolarMutex>::Guard(this=<unavailable>, t=0x00000001497e7ec0) at mutex.hxx:144:17 frame #8: 0x000000015952fd98 libmergedlo.dylib`doc_saveAs(_LibreOfficeKitDocument*, char const*, char const*, char const*) [inlined] SolarMutexGuard::SolarMutexGuard(this=<unavailable>) at svapp.hxx:1344:11 frame #9: 0x000000015952fd90 libmergedlo.dylib`doc_saveAs(_LibreOfficeKitDocument*, char const*, char const*, char const*) [inlined] SolarMutexGuard::SolarMutexGuard(this=<unavailable>) at svapp.hxx:1344:78 frame #10: 0x000000015952fd90 libmergedlo.dylib`doc_saveAs(pThis=0x000060000124a9a0, sUrl="/tmp/ErrareHumanumEst.fodg", pFormat="fodg", pFilterOptions="{\"DecomposePDF\":{\"type\":\"boolean\",\"value\":\"true\"}}") at init.cxx:3698:21 ... frame #32: 0x0000000102965334 main + 228 (lldb) thread backtrace 11 thread #11, name = 'lo_startmain' frame #0: 0x00000001966f53cc libsystem_kernel.dylib`__psynch_cvwait + 8 frame #1: 0x00000001967340e0 libsystem_pthread.dylib`_pthread_cond_wait + 984 frame #2: 0x0000000197ddefd0 Foundation`-[NSOperation waitUntilFinished] + 488 frame #3: 0x00000001967e28f8 CoreFoundation`_CFXNotificationPost + 804 frame #4: 0x0000000197d9c680 Foundation`-[NSNotificationCenter postNotificationName:object:userInfo:] + 88 frame #5: 0x000000019a737554 AppKit`-[NSMenu insertItem:atIndex:] + 892 frame #6: 0x000000019a8f1e00 AppKit`-[NSApplication(NSServicesMenuPrivate) _fillSpellCheckerPopupButton:] + 1380 frame #7: 0x000000019a8f1550 AppKit`-[NSSpellChecker _fillSpellCheckerPopupButton:] + 76 frame #8: 0x000000019a8f0688 AppKit`-[NSSpellChecker init] + 248 frame #9: 0x000000019a8f0580 AppKit`__36+[NSSpellChecker sharedSpellChecker]_block_invoke + 20 frame #10: 0x000000019659585c libdispatch.dylib`_dispatch_client_callout + 16 frame #11: 0x000000019657ea28 libdispatch.dylib`_dispatch_once_callout + 32 frame #12: 0x000000019a8f0568 AppKit`+[NSSpellChecker sharedSpellChecker] + 140 frame #13: 0x0000000158dbb054 libmergedlo.dylib`MacSpellChecker::getLocales(this=0x00006000006fc500) at macspellimp.mm:118:42 frame #14: 0x0000000158da1e94 libmergedlo.dylib`LngSvcMgr::GetAvailableSpellSvcs_Impl(this=0x000000014966e020) at lngsvcmgr.cxx:975:63 frame #15: 0x0000000158da46f8 libmergedlo.dylib`LngSvcMgr::getAvailableServices(this=0x000000014966e020, rServiceName=0x000000015c044600, rLocale=0x000000016e3ae1d0) at lngsvcmgr.cxx:1369:9 frame #16: 0x0000000158d9c434 libmergedlo.dylib`LngSvcMgr::UpdateAll(this=0x000000014966e020) at lngsvcmgr.cxx:655:46 frame #17: 0x0000000158d9bd38 libmergedlo.dylib`LngSvcMgr::LngSvcMgr(this=0x000000014966e020) at lngsvcmgr.cxx:414:5 frame #18: 0x0000000158da7a70 libmergedlo.dylib`::linguistic_LngSvcMgr_get_implementation(com::sun::star::uno::XComponentContext *, const com::sun::star::uno::Sequence<com::sun::star::uno::Any> &) [inlined] LngSvcMgr::LngSvcMgr(this=0x000000014966e020) at lngsvcmgr.cxx:402:1 frame #19: 0x0000000158da7a6c libmergedlo.dylib`linguistic_LngSvcMgr_get_implementation((null)=<unavailable>, (null)=<unavailable>) at lngsvcmgr.cxx:1816:30 frame #20: 0x000000012dc30ee0 libuno_cppuhelpergcc3.dylib.3`cppuhelper::ServiceManager::Data::Implementation::doCreateInstance(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) [inlined] std::__1::__function::__value_func<com::sun::star::uno::XInterface* (com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)>::operator()[abi:ne190102](this=0x0000000149747c90, __args=0x000000016e3ae310, __args=0x000000016e3ae308) const at function.h:430:12 frame #21: 0x000000012dc30ec4 libuno_cppuhelpergcc3.dylib.3`cppuhelper::ServiceManager::Data::Implementation::doCreateInstance(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) [inlined] std::__1::function<com::sun::star::uno::XInterface* (com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)>::operator()(this= Function = linguistic_LngSvcMgr_get_implementation , __arg=0x0000600000cc86b8, __arg=0x000000016e3ae308) const at function.h:989:10 frame #22: 0x000000012dc30ec4 libuno_cppuhelpergcc3.dylib.3`cppuhelper::ServiceManager::Data::Implementation::doCreateInstance(this=0x0000000149747c18, context=0x000000015c487110) at servicemanager.cxx:701:13 frame #23: 0x000000012dc30d4c libuno_cppuhelpergcc3.dylib.3`cppuhelper::ServiceManager::Data::Implementation::createInstance(this=0x0000000149747c18, context=0x000000015c487110, singletonRequest=false) at servicemanager.cxx:666:30 frame #24: 0x000000012dc34ed8 libuno_cppuhelpergcc3.dylib.3`non-virtual thunk to cppuhelper::ServiceManager::createInstanceWithContext(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) [inlined] cppuhelper::ServiceManager::createInstanceWithContext(this=<unavailable>, aServiceSpecifier=<unavailable>, Context=0x000000015c487110) at servicemanager.cxx:1002:36 frame #25: 0x000000012dc34eb4 libuno_cppuhelpergcc3.dylib.3`non-virtual thunk to cppuhelper::ServiceManager::createInstanceWithContext(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) at servicemanager.cxx:0 frame #26: 0x00000001588b29c8 libmergedlo.dylib`com::sun::star::linguistic2::LinguServiceManager::create(the_context=0x000000015c487110) at LinguServiceManager.hpp:38:129 frame #27: 0x00000001588b3444 libmergedlo.dylib`(anonymous namespace)::SpellDummy_Impl::GetSpell_Impl() [inlined] GetLngSvcMgr_Impl() at unolingu.cxx:60:52 frame #28: 0x00000001588b3438 libmergedlo.dylib`(anonymous namespace)::SpellDummy_Impl::GetSpell_Impl(this=0x0000600002df4300) at unolingu.cxx:216:61 frame #29: 0x00000001588b3314 libmergedlo.dylib`non-virtual thunk to (anonymous namespace)::SpellDummy_Impl::isValid(rtl::OUString const&, short, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) [inlined] (anonymous namespace)::SpellDummy_Impl::isValid(this=<unavailable>, rWord=<unavailable>, nLanguage=<unavailable>, rProperties=<unavailable>) at unolingu.cxx:248:5 frame #30: 0x00000001588b3310 libmergedlo.dylib`non-virtual thunk to (anonymous namespace)::SpellDummy_Impl::isValid(rtl::OUString const&, short, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at unolingu.cxx:0 frame #31: 0x00000001588405ec libmergedlo.dylib`ImpEditEngine::DoOnlineSpelling(this=0x0000000149859800, pThisNodeOnly=<unavailable>, bSpellAtCursorPos=<unavailable>, bInterruptible=<unavailable>) at impedit4.cxx:2480:37 frame #32: 0x0000000134059498 libsdlo.dylib`SdDrawDocument::SpellObject(this=0x000000014961cb20, pObj=0x0000000149646150) at drawdoc4.cxx:885:16 frame #33: 0x00000001340591b0 libsdlo.dylib`SdDrawDocument::OnlineSpellingHdl(this=0x000000014961cb20, (null)=<unavailable>) at drawdoc4.cxx:823:17 frame #34: 0x000000015a52b9b0 libmergedlo.dylib`Scheduler::CallbackTaskScheduling() at scheduler.cxx:584:20 frame #35: 0x000000015a6e7bf8 libmergedlo.dylib`SvpSalInstance::CheckTimeout(bool) [inlined] SalTimer::CallCallback(this=<unavailable>) at saltimer.hxx:53:13 frame #36: 0x000000015a6e7bec libmergedlo.dylib`SvpSalInstance::CheckTimeout(this=<unavailable>, bExecuteTimers=true) at svpinst.cxx:167:53 frame #37: 0x000000015a6e863c libmergedlo.dylib`SvpSalInstance::ImplYield(this=0x00006000008c50e0, bWait=true, bHandleAllCurrentEvents=false) at svpinst.cxx:430:17 frame #38: 0x000000015a6e8950 libmergedlo.dylib`SvpSalInstance::DoYield(this=0x00006000008c50e0, bWait=true, bHandleAllCurrentEvents=false) at svpinst.cxx:504:21 frame #39: 0x000000015a53d920 libmergedlo.dylib`ImplYield(i_bWait=true, i_bAllEvents=false) at svapp.cxx:389:48 frame #40: 0x000000015a53d328 libmergedlo.dylib`Application::Yield() at svapp.cxx:492:5 [artificial] frame #41: 0x000000015a53d210 libmergedlo.dylib`Application::Execute() at svapp.cxx:364:13 frame #42: 0x00000001594ffeb4 libmergedlo.dylib`desktop::Desktop::Main(this=0x000000016e3aeed0) at app.cxx:1680:13 frame #43: 0x000000015a5475d0 libmergedlo.dylib`ImplSVMain() at svmain.cxx:228:35 frame #44: 0xffffffffffffffff libmergedlo.dylib`SVMain() frame #45: 0x000000015951e5e4 libmergedlo.dylib`soffice_main at sofficemain.cxx:121:12 frame #46: 0x00000001595669bc libmergedlo.dylib`lo_startmain((null)=<unavailable>) at init.cxx:7860:5 frame #47: 0x0000000105ae59d8 libuno_sal.dylib.3`osl_thread_start_Impl(pData=0x00006000005cb330) at thread.cxx:240:9 frame #48: 0x0000000196733c0c libsystem_pthread.dylib`_pthread_start + 136 Change-Id: I8d25ed364f131434ce4f738604ddcf3f586cf6d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192052 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Miklos Vajna <[email protected]>
in headless vclplug too. Same deadlock can happen in that mode as seen originally as: commit d193d65 Date: Thu Sep 8 17:30:38 2022 +0200 tdf#151894 Pre-init NSSpellCHecker to avoid SolarMutex deadlock current example bts are main on thread 1, vcl launched to run on its event loop on 'lo_startmain' side thread. (lldb) thread backtrace 1 * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP * frame #0: 0x00000001966f489c libsystem_kernel.dylib`__psynch_mutexwait + 8 frame #1: 0x0000000196730e58 libsystem_pthread.dylib`_pthread_mutex_firstfit_lock_wait + 84 frame #2: 0x000000019672e840 libsystem_pthread.dylib`_pthread_mutex_firstfit_lock_slow + 220 frame #3: 0x0000000105ad554c libuno_sal.dylib.3`osl_acquireMutex(pMutex=<unavailable>) at mutex.cxx:99:20 frame #4: 0x000000015a6e8370 libmergedlo.dylib`SvpSalYieldMutex::doAcquire(unsigned int) [inlined] osl::Mutex::acquire(this=0x00000001497e7ec8) at mutex.hxx:63:20 frame #5: 0x000000015a6e8368 libmergedlo.dylib`SvpSalYieldMutex::doAcquire(this=0x00000001497e7ec0, nLockCount=1) at svpinst.cxx:357:18 frame #6: 0x000000015952fda8 libmergedlo.dylib`doc_saveAs(_LibreOfficeKitDocument*, char const*, char const*, char const*) [inlined] comphelper::SolarMutex::acquire(this=0x00000001497e7ec0, nLockCount=1) at solarmutex.hxx:86:5 frame #7: 0x000000015952fd98 libmergedlo.dylib`doc_saveAs(_LibreOfficeKitDocument*, char const*, char const*, char const*) [inlined] osl::Guard<comphelper::SolarMutex>::Guard(this=<unavailable>, t=0x00000001497e7ec0) at mutex.hxx:144:17 frame #8: 0x000000015952fd98 libmergedlo.dylib`doc_saveAs(_LibreOfficeKitDocument*, char const*, char const*, char const*) [inlined] SolarMutexGuard::SolarMutexGuard(this=<unavailable>) at svapp.hxx:1344:11 frame #9: 0x000000015952fd90 libmergedlo.dylib`doc_saveAs(_LibreOfficeKitDocument*, char const*, char const*, char const*) [inlined] SolarMutexGuard::SolarMutexGuard(this=<unavailable>) at svapp.hxx:1344:78 frame #10: 0x000000015952fd90 libmergedlo.dylib`doc_saveAs(pThis=0x000060000124a9a0, sUrl="/tmp/ErrareHumanumEst.fodg", pFormat="fodg", pFilterOptions="{\"DecomposePDF\":{\"type\":\"boolean\",\"value\":\"true\"}}") at init.cxx:3698:21 ... frame #32: 0x0000000102965334 main + 228 (lldb) thread backtrace 11 thread #11, name = 'lo_startmain' frame #0: 0x00000001966f53cc libsystem_kernel.dylib`__psynch_cvwait + 8 frame #1: 0x00000001967340e0 libsystem_pthread.dylib`_pthread_cond_wait + 984 frame #2: 0x0000000197ddefd0 Foundation`-[NSOperation waitUntilFinished] + 488 frame #3: 0x00000001967e28f8 CoreFoundation`_CFXNotificationPost + 804 frame #4: 0x0000000197d9c680 Foundation`-[NSNotificationCenter postNotificationName:object:userInfo:] + 88 frame #5: 0x000000019a737554 AppKit`-[NSMenu insertItem:atIndex:] + 892 frame #6: 0x000000019a8f1e00 AppKit`-[NSApplication(NSServicesMenuPrivate) _fillSpellCheckerPopupButton:] + 1380 frame #7: 0x000000019a8f1550 AppKit`-[NSSpellChecker _fillSpellCheckerPopupButton:] + 76 frame #8: 0x000000019a8f0688 AppKit`-[NSSpellChecker init] + 248 frame #9: 0x000000019a8f0580 AppKit`__36+[NSSpellChecker sharedSpellChecker]_block_invoke + 20 frame #10: 0x000000019659585c libdispatch.dylib`_dispatch_client_callout + 16 frame #11: 0x000000019657ea28 libdispatch.dylib`_dispatch_once_callout + 32 frame #12: 0x000000019a8f0568 AppKit`+[NSSpellChecker sharedSpellChecker] + 140 frame #13: 0x0000000158dbb054 libmergedlo.dylib`MacSpellChecker::getLocales(this=0x00006000006fc500) at macspellimp.mm:118:42 frame #14: 0x0000000158da1e94 libmergedlo.dylib`LngSvcMgr::GetAvailableSpellSvcs_Impl(this=0x000000014966e020) at lngsvcmgr.cxx:975:63 frame #15: 0x0000000158da46f8 libmergedlo.dylib`LngSvcMgr::getAvailableServices(this=0x000000014966e020, rServiceName=0x000000015c044600, rLocale=0x000000016e3ae1d0) at lngsvcmgr.cxx:1369:9 frame #16: 0x0000000158d9c434 libmergedlo.dylib`LngSvcMgr::UpdateAll(this=0x000000014966e020) at lngsvcmgr.cxx:655:46 frame #17: 0x0000000158d9bd38 libmergedlo.dylib`LngSvcMgr::LngSvcMgr(this=0x000000014966e020) at lngsvcmgr.cxx:414:5 frame #18: 0x0000000158da7a70 libmergedlo.dylib`::linguistic_LngSvcMgr_get_implementation(com::sun::star::uno::XComponentContext *, const com::sun::star::uno::Sequence<com::sun::star::uno::Any> &) [inlined] LngSvcMgr::LngSvcMgr(this=0x000000014966e020) at lngsvcmgr.cxx:402:1 frame #19: 0x0000000158da7a6c libmergedlo.dylib`linguistic_LngSvcMgr_get_implementation((null)=<unavailable>, (null)=<unavailable>) at lngsvcmgr.cxx:1816:30 frame #20: 0x000000012dc30ee0 libuno_cppuhelpergcc3.dylib.3`cppuhelper::ServiceManager::Data::Implementation::doCreateInstance(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) [inlined] std::__1::__function::__value_func<com::sun::star::uno::XInterface* (com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)>::operator()[abi:ne190102](this=0x0000000149747c90, __args=0x000000016e3ae310, __args=0x000000016e3ae308) const at function.h:430:12 frame #21: 0x000000012dc30ec4 libuno_cppuhelpergcc3.dylib.3`cppuhelper::ServiceManager::Data::Implementation::doCreateInstance(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) [inlined] std::__1::function<com::sun::star::uno::XInterface* (com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)>::operator()(this= Function = linguistic_LngSvcMgr_get_implementation , __arg=0x0000600000cc86b8, __arg=0x000000016e3ae308) const at function.h:989:10 frame #22: 0x000000012dc30ec4 libuno_cppuhelpergcc3.dylib.3`cppuhelper::ServiceManager::Data::Implementation::doCreateInstance(this=0x0000000149747c18, context=0x000000015c487110) at servicemanager.cxx:701:13 frame #23: 0x000000012dc30d4c libuno_cppuhelpergcc3.dylib.3`cppuhelper::ServiceManager::Data::Implementation::createInstance(this=0x0000000149747c18, context=0x000000015c487110, singletonRequest=false) at servicemanager.cxx:666:30 frame #24: 0x000000012dc34ed8 libuno_cppuhelpergcc3.dylib.3`non-virtual thunk to cppuhelper::ServiceManager::createInstanceWithContext(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) [inlined] cppuhelper::ServiceManager::createInstanceWithContext(this=<unavailable>, aServiceSpecifier=<unavailable>, Context=0x000000015c487110) at servicemanager.cxx:1002:36 frame #25: 0x000000012dc34eb4 libuno_cppuhelpergcc3.dylib.3`non-virtual thunk to cppuhelper::ServiceManager::createInstanceWithContext(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) at servicemanager.cxx:0 frame #26: 0x00000001588b29c8 libmergedlo.dylib`com::sun::star::linguistic2::LinguServiceManager::create(the_context=0x000000015c487110) at LinguServiceManager.hpp:38:129 frame #27: 0x00000001588b3444 libmergedlo.dylib`(anonymous namespace)::SpellDummy_Impl::GetSpell_Impl() [inlined] GetLngSvcMgr_Impl() at unolingu.cxx:60:52 frame #28: 0x00000001588b3438 libmergedlo.dylib`(anonymous namespace)::SpellDummy_Impl::GetSpell_Impl(this=0x0000600002df4300) at unolingu.cxx:216:61 frame #29: 0x00000001588b3314 libmergedlo.dylib`non-virtual thunk to (anonymous namespace)::SpellDummy_Impl::isValid(rtl::OUString const&, short, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) [inlined] (anonymous namespace)::SpellDummy_Impl::isValid(this=<unavailable>, rWord=<unavailable>, nLanguage=<unavailable>, rProperties=<unavailable>) at unolingu.cxx:248:5 frame #30: 0x00000001588b3310 libmergedlo.dylib`non-virtual thunk to (anonymous namespace)::SpellDummy_Impl::isValid(rtl::OUString const&, short, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at unolingu.cxx:0 frame #31: 0x00000001588405ec libmergedlo.dylib`ImpEditEngine::DoOnlineSpelling(this=0x0000000149859800, pThisNodeOnly=<unavailable>, bSpellAtCursorPos=<unavailable>, bInterruptible=<unavailable>) at impedit4.cxx:2480:37 frame #32: 0x0000000134059498 libsdlo.dylib`SdDrawDocument::SpellObject(this=0x000000014961cb20, pObj=0x0000000149646150) at drawdoc4.cxx:885:16 frame #33: 0x00000001340591b0 libsdlo.dylib`SdDrawDocument::OnlineSpellingHdl(this=0x000000014961cb20, (null)=<unavailable>) at drawdoc4.cxx:823:17 frame #34: 0x000000015a52b9b0 libmergedlo.dylib`Scheduler::CallbackTaskScheduling() at scheduler.cxx:584:20 frame #35: 0x000000015a6e7bf8 libmergedlo.dylib`SvpSalInstance::CheckTimeout(bool) [inlined] SalTimer::CallCallback(this=<unavailable>) at saltimer.hxx:53:13 frame #36: 0x000000015a6e7bec libmergedlo.dylib`SvpSalInstance::CheckTimeout(this=<unavailable>, bExecuteTimers=true) at svpinst.cxx:167:53 frame #37: 0x000000015a6e863c libmergedlo.dylib`SvpSalInstance::ImplYield(this=0x00006000008c50e0, bWait=true, bHandleAllCurrentEvents=false) at svpinst.cxx:430:17 frame #38: 0x000000015a6e8950 libmergedlo.dylib`SvpSalInstance::DoYield(this=0x00006000008c50e0, bWait=true, bHandleAllCurrentEvents=false) at svpinst.cxx:504:21 frame #39: 0x000000015a53d920 libmergedlo.dylib`ImplYield(i_bWait=true, i_bAllEvents=false) at svapp.cxx:389:48 frame #40: 0x000000015a53d328 libmergedlo.dylib`Application::Yield() at svapp.cxx:492:5 [artificial] frame #41: 0x000000015a53d210 libmergedlo.dylib`Application::Execute() at svapp.cxx:364:13 frame #42: 0x00000001594ffeb4 libmergedlo.dylib`desktop::Desktop::Main(this=0x000000016e3aeed0) at app.cxx:1680:13 frame #43: 0x000000015a5475d0 libmergedlo.dylib`ImplSVMain() at svmain.cxx:228:35 frame #44: 0xffffffffffffffff libmergedlo.dylib`SVMain() frame #45: 0x000000015951e5e4 libmergedlo.dylib`soffice_main at sofficemain.cxx:121:12 frame #46: 0x00000001595669bc libmergedlo.dylib`lo_startmain((null)=<unavailable>) at init.cxx:7860:5 frame #47: 0x0000000105ae59d8 libuno_sal.dylib.3`osl_thread_start_Impl(pData=0x00006000005cb330) at thread.cxx:240:9 frame #48: 0x0000000196733c0c libsystem_pthread.dylib`_pthread_start + 136 Change-Id: I8d25ed364f131434ce4f738604ddcf3f586cf6d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192060 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]>
in headless vclplug too. Same deadlock can happen in that mode as seen originally as: commit d193d65 Date: Thu Sep 8 17:30:38 2022 +0200 tdf#151894 Pre-init NSSpellCHecker to avoid SolarMutex deadlock current example bts are main on thread 1, vcl launched to run on its event loop on 'lo_startmain' side thread. (lldb) thread backtrace 1 * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP * frame #0: 0x00000001966f489c libsystem_kernel.dylib`__psynch_mutexwait + 8 frame #1: 0x0000000196730e58 libsystem_pthread.dylib`_pthread_mutex_firstfit_lock_wait + 84 frame #2: 0x000000019672e840 libsystem_pthread.dylib`_pthread_mutex_firstfit_lock_slow + 220 frame #3: 0x0000000105ad554c libuno_sal.dylib.3`osl_acquireMutex(pMutex=<unavailable>) at mutex.cxx:99:20 frame #4: 0x000000015a6e8370 libmergedlo.dylib`SvpSalYieldMutex::doAcquire(unsigned int) [inlined] osl::Mutex::acquire(this=0x00000001497e7ec8) at mutex.hxx:63:20 frame #5: 0x000000015a6e8368 libmergedlo.dylib`SvpSalYieldMutex::doAcquire(this=0x00000001497e7ec0, nLockCount=1) at svpinst.cxx:357:18 frame #6: 0x000000015952fda8 libmergedlo.dylib`doc_saveAs(_LibreOfficeKitDocument*, char const*, char const*, char const*) [inlined] comphelper::SolarMutex::acquire(this=0x00000001497e7ec0, nLockCount=1) at solarmutex.hxx:86:5 frame #7: 0x000000015952fd98 libmergedlo.dylib`doc_saveAs(_LibreOfficeKitDocument*, char const*, char const*, char const*) [inlined] osl::Guard<comphelper::SolarMutex>::Guard(this=<unavailable>, t=0x00000001497e7ec0) at mutex.hxx:144:17 frame #8: 0x000000015952fd98 libmergedlo.dylib`doc_saveAs(_LibreOfficeKitDocument*, char const*, char const*, char const*) [inlined] SolarMutexGuard::SolarMutexGuard(this=<unavailable>) at svapp.hxx:1344:11 frame #9: 0x000000015952fd90 libmergedlo.dylib`doc_saveAs(_LibreOfficeKitDocument*, char const*, char const*, char const*) [inlined] SolarMutexGuard::SolarMutexGuard(this=<unavailable>) at svapp.hxx:1344:78 frame #10: 0x000000015952fd90 libmergedlo.dylib`doc_saveAs(pThis=0x000060000124a9a0, sUrl="/tmp/ErrareHumanumEst.fodg", pFormat="fodg", pFilterOptions="{\"DecomposePDF\":{\"type\":\"boolean\",\"value\":\"true\"}}") at init.cxx:3698:21 ... frame #32: 0x0000000102965334 main + 228 (lldb) thread backtrace 11 thread #11, name = 'lo_startmain' frame #0: 0x00000001966f53cc libsystem_kernel.dylib`__psynch_cvwait + 8 frame #1: 0x00000001967340e0 libsystem_pthread.dylib`_pthread_cond_wait + 984 frame #2: 0x0000000197ddefd0 Foundation`-[NSOperation waitUntilFinished] + 488 frame #3: 0x00000001967e28f8 CoreFoundation`_CFXNotificationPost + 804 frame #4: 0x0000000197d9c680 Foundation`-[NSNotificationCenter postNotificationName:object:userInfo:] + 88 frame #5: 0x000000019a737554 AppKit`-[NSMenu insertItem:atIndex:] + 892 frame #6: 0x000000019a8f1e00 AppKit`-[NSApplication(NSServicesMenuPrivate) _fillSpellCheckerPopupButton:] + 1380 frame #7: 0x000000019a8f1550 AppKit`-[NSSpellChecker _fillSpellCheckerPopupButton:] + 76 frame #8: 0x000000019a8f0688 AppKit`-[NSSpellChecker init] + 248 frame #9: 0x000000019a8f0580 AppKit`__36+[NSSpellChecker sharedSpellChecker]_block_invoke + 20 frame #10: 0x000000019659585c libdispatch.dylib`_dispatch_client_callout + 16 frame #11: 0x000000019657ea28 libdispatch.dylib`_dispatch_once_callout + 32 frame #12: 0x000000019a8f0568 AppKit`+[NSSpellChecker sharedSpellChecker] + 140 frame #13: 0x0000000158dbb054 libmergedlo.dylib`MacSpellChecker::getLocales(this=0x00006000006fc500) at macspellimp.mm:118:42 frame #14: 0x0000000158da1e94 libmergedlo.dylib`LngSvcMgr::GetAvailableSpellSvcs_Impl(this=0x000000014966e020) at lngsvcmgr.cxx:975:63 frame #15: 0x0000000158da46f8 libmergedlo.dylib`LngSvcMgr::getAvailableServices(this=0x000000014966e020, rServiceName=0x000000015c044600, rLocale=0x000000016e3ae1d0) at lngsvcmgr.cxx:1369:9 frame #16: 0x0000000158d9c434 libmergedlo.dylib`LngSvcMgr::UpdateAll(this=0x000000014966e020) at lngsvcmgr.cxx:655:46 frame #17: 0x0000000158d9bd38 libmergedlo.dylib`LngSvcMgr::LngSvcMgr(this=0x000000014966e020) at lngsvcmgr.cxx:414:5 frame #18: 0x0000000158da7a70 libmergedlo.dylib`::linguistic_LngSvcMgr_get_implementation(com::sun::star::uno::XComponentContext *, const com::sun::star::uno::Sequence<com::sun::star::uno::Any> &) [inlined] LngSvcMgr::LngSvcMgr(this=0x000000014966e020) at lngsvcmgr.cxx:402:1 frame #19: 0x0000000158da7a6c libmergedlo.dylib`linguistic_LngSvcMgr_get_implementation((null)=<unavailable>, (null)=<unavailable>) at lngsvcmgr.cxx:1816:30 frame #20: 0x000000012dc30ee0 libuno_cppuhelpergcc3.dylib.3`cppuhelper::ServiceManager::Data::Implementation::doCreateInstance(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) [inlined] std::__1::__function::__value_func<com::sun::star::uno::XInterface* (com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)>::operator()[abi:ne190102](this=0x0000000149747c90, __args=0x000000016e3ae310, __args=0x000000016e3ae308) const at function.h:430:12 frame #21: 0x000000012dc30ec4 libuno_cppuhelpergcc3.dylib.3`cppuhelper::ServiceManager::Data::Implementation::doCreateInstance(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) [inlined] std::__1::function<com::sun::star::uno::XInterface* (com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)>::operator()(this= Function = linguistic_LngSvcMgr_get_implementation , __arg=0x0000600000cc86b8, __arg=0x000000016e3ae308) const at function.h:989:10 frame #22: 0x000000012dc30ec4 libuno_cppuhelpergcc3.dylib.3`cppuhelper::ServiceManager::Data::Implementation::doCreateInstance(this=0x0000000149747c18, context=0x000000015c487110) at servicemanager.cxx:701:13 frame #23: 0x000000012dc30d4c libuno_cppuhelpergcc3.dylib.3`cppuhelper::ServiceManager::Data::Implementation::createInstance(this=0x0000000149747c18, context=0x000000015c487110, singletonRequest=false) at servicemanager.cxx:666:30 frame #24: 0x000000012dc34ed8 libuno_cppuhelpergcc3.dylib.3`non-virtual thunk to cppuhelper::ServiceManager::createInstanceWithContext(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) [inlined] cppuhelper::ServiceManager::createInstanceWithContext(this=<unavailable>, aServiceSpecifier=<unavailable>, Context=0x000000015c487110) at servicemanager.cxx:1002:36 frame #25: 0x000000012dc34eb4 libuno_cppuhelpergcc3.dylib.3`non-virtual thunk to cppuhelper::ServiceManager::createInstanceWithContext(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) at servicemanager.cxx:0 frame #26: 0x00000001588b29c8 libmergedlo.dylib`com::sun::star::linguistic2::LinguServiceManager::create(the_context=0x000000015c487110) at LinguServiceManager.hpp:38:129 frame #27: 0x00000001588b3444 libmergedlo.dylib`(anonymous namespace)::SpellDummy_Impl::GetSpell_Impl() [inlined] GetLngSvcMgr_Impl() at unolingu.cxx:60:52 frame #28: 0x00000001588b3438 libmergedlo.dylib`(anonymous namespace)::SpellDummy_Impl::GetSpell_Impl(this=0x0000600002df4300) at unolingu.cxx:216:61 frame #29: 0x00000001588b3314 libmergedlo.dylib`non-virtual thunk to (anonymous namespace)::SpellDummy_Impl::isValid(rtl::OUString const&, short, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) [inlined] (anonymous namespace)::SpellDummy_Impl::isValid(this=<unavailable>, rWord=<unavailable>, nLanguage=<unavailable>, rProperties=<unavailable>) at unolingu.cxx:248:5 frame #30: 0x00000001588b3310 libmergedlo.dylib`non-virtual thunk to (anonymous namespace)::SpellDummy_Impl::isValid(rtl::OUString const&, short, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at unolingu.cxx:0 frame #31: 0x00000001588405ec libmergedlo.dylib`ImpEditEngine::DoOnlineSpelling(this=0x0000000149859800, pThisNodeOnly=<unavailable>, bSpellAtCursorPos=<unavailable>, bInterruptible=<unavailable>) at impedit4.cxx:2480:37 frame #32: 0x0000000134059498 libsdlo.dylib`SdDrawDocument::SpellObject(this=0x000000014961cb20, pObj=0x0000000149646150) at drawdoc4.cxx:885:16 frame #33: 0x00000001340591b0 libsdlo.dylib`SdDrawDocument::OnlineSpellingHdl(this=0x000000014961cb20, (null)=<unavailable>) at drawdoc4.cxx:823:17 frame #34: 0x000000015a52b9b0 libmergedlo.dylib`Scheduler::CallbackTaskScheduling() at scheduler.cxx:584:20 frame #35: 0x000000015a6e7bf8 libmergedlo.dylib`SvpSalInstance::CheckTimeout(bool) [inlined] SalTimer::CallCallback(this=<unavailable>) at saltimer.hxx:53:13 frame #36: 0x000000015a6e7bec libmergedlo.dylib`SvpSalInstance::CheckTimeout(this=<unavailable>, bExecuteTimers=true) at svpinst.cxx:167:53 frame #37: 0x000000015a6e863c libmergedlo.dylib`SvpSalInstance::ImplYield(this=0x00006000008c50e0, bWait=true, bHandleAllCurrentEvents=false) at svpinst.cxx:430:17 frame #38: 0x000000015a6e8950 libmergedlo.dylib`SvpSalInstance::DoYield(this=0x00006000008c50e0, bWait=true, bHandleAllCurrentEvents=false) at svpinst.cxx:504:21 frame #39: 0x000000015a53d920 libmergedlo.dylib`ImplYield(i_bWait=true, i_bAllEvents=false) at svapp.cxx:389:48 frame #40: 0x000000015a53d328 libmergedlo.dylib`Application::Yield() at svapp.cxx:492:5 [artificial] frame #41: 0x000000015a53d210 libmergedlo.dylib`Application::Execute() at svapp.cxx:364:13 frame #42: 0x00000001594ffeb4 libmergedlo.dylib`desktop::Desktop::Main(this=0x000000016e3aeed0) at app.cxx:1680:13 frame #43: 0x000000015a5475d0 libmergedlo.dylib`ImplSVMain() at svmain.cxx:228:35 frame #44: 0xffffffffffffffff libmergedlo.dylib`SVMain() frame #45: 0x000000015951e5e4 libmergedlo.dylib`soffice_main at sofficemain.cxx:121:12 frame #46: 0x00000001595669bc libmergedlo.dylib`lo_startmain((null)=<unavailable>) at init.cxx:7860:5 frame #47: 0x0000000105ae59d8 libuno_sal.dylib.3`osl_thread_start_Impl(pData=0x00006000005cb330) at thread.cxx:240:9 frame #48: 0x0000000196733c0c libsystem_pthread.dylib`_pthread_start + 136 Change-Id: I8d25ed364f131434ce4f738604ddcf3f586cf6d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192052 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Miklos Vajna <[email protected]>
… change Open the bugdoc, change the "book" set variable field's value at the document start from 0 to 1, go to the end of the document, the page cross-reference field says "page 3", but once you click on it, you end up on page 2, which is not correct. This is a regression from commit 1dcd3f1 (sw: fix not needed invalidation of custom field on each keypress, 2021-05-19), where the old use-case was that typing in a LOK client resulted in repainting the custom fields in the footer on each keystroke, because typing a key changes the doc stats (one more character), but then by the time a repaint happens, we don't know anymore what field types needs updating, so we repaint all doc stat fields. So repainting those fields on every keystroke is certainly an overkill, but at the same time an automatic update of page cross-references on section visibility change is also a reasonable request. Fix this by separating the "update on idle after any cursor change" old use-case and the "close dialog and enter text edit/standard mode" new use-case. Doing this wider update of fields is enough to do in the second case, so we get page number updates and the typing performance is not back to poor. This works because the idle case goes via the vcl scheduler, but the explicit field update goes via this codepath: #23 0x00007ffff2f088b1 in SfxBindings::Update (this=0x4c14b20, nId=21185) at sfx2/source/control/bindings.cxx:357 #24 0x00007fffba614118 in SwWrtShell::Invalidate (this=0x4c5c980) at sw/source/uibase/wrtsh/select.cxx:66 #25 0x00007fffba615fb9 in SwWrtShell::EnterStdMode (this=0x4c5c980) at sw/source/uibase/wrtsh/select.cxx:595 #26 0x00007fff917e1af3 in SwFieldEditDlg::ImplDestroy (this=0x4c43a30) at sw/source/ui/fldui/fldedt.cxx:224 #27 0x00007fff917e1b50 in SwFieldEditDlg::~SwFieldEditDlg (this=0x4c43a30, __in_chrg=<optimized out>) at sw/source/ui/fldui/fldedt.cxx:229 Change-Id: I96f48f46f44a1d6d1bde5ede282cd1cf847a6164 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192680 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Caolán McNamara <[email protected]>
… change Open the bugdoc, change the "book" set variable field's value at the document start from 0 to 1, go to the end of the document, the page cross-reference field says "page 3", but once you click on it, you end up on page 2, which is not correct. This is a regression from commit 1dcd3f1 (sw: fix not needed invalidation of custom field on each keypress, 2021-05-19), where the old use-case was that typing in a LOK client resulted in repainting the custom fields in the footer on each keystroke, because typing a key changes the doc stats (one more character), but then by the time a repaint happens, we don't know anymore what field types needs updating, so we repaint all doc stat fields. So repainting those fields on every keystroke is certainly an overkill, but at the same time an automatic update of page cross-references on section visibility change is also a reasonable request. Fix this by separating the "update on idle after any cursor change" old use-case and the "close dialog and enter text edit/standard mode" new use-case. Doing this wider update of fields is enough to do in the second case, so we get page number updates and the typing performance is not back to poor. This works because the idle case goes via the vcl scheduler, but the explicit field update goes via this codepath: #23 0x00007ffff2f088b1 in SfxBindings::Update (this=0x4c14b20, nId=21185) at sfx2/source/control/bindings.cxx:357 #24 0x00007fffba614118 in SwWrtShell::Invalidate (this=0x4c5c980) at sw/source/uibase/wrtsh/select.cxx:66 #25 0x00007fffba615fb9 in SwWrtShell::EnterStdMode (this=0x4c5c980) at sw/source/uibase/wrtsh/select.cxx:595 #26 0x00007fff917e1af3 in SwFieldEditDlg::ImplDestroy (this=0x4c43a30) at sw/source/ui/fldui/fldedt.cxx:224 #27 0x00007fff917e1b50 in SwFieldEditDlg::~SwFieldEditDlg (this=0x4c43a30, __in_chrg=<optimized out>) at sw/source/ui/fldui/fldedt.cxx:229 Change-Id: I96f48f46f44a1d6d1bde5ede282cd1cf847a6164 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192700 Tested-by: Jenkins Reviewed-by: Miklos Vajna <[email protected]>
The BufferedDecompositionFlusher thread is waiting for the SolarMutex and has accumulated a bunch of rtl::References to Primitive2Ds in aRemoved[1|2] created from direct pointers to Primitive2Ds during the earlier phase. Thread 6 (Thread 0x7fd2e27fe6c0 (LWP 3729389)): #0 0x00007fd313d3012b in () at /lib/x86_64-linux-gnu/libc.so.6 #1 0x00007fd313d364da in pthread_mutex_lock () at /lib/x86_64-linux-gnu/libc.so.6 #2 0x00007fd3140a75f1 in osl_acquireMutex(oslMutex) (pMutex=0x556f87223470) at sal/osl/unx/mutex.cxx:93 nRet = 32723 #3 0x00007fd30e02be53 in osl::Mutex::acquire() (this=0x556f87223968) at include/osl/mutex.hxx:63 pInst = 0x556f87223830 __PRETTY_FUNCTION__ = "virtual void SvpSalYieldMutex::doAcquire(sal_uInt32)" #4 SvpSalYieldMutex::doAcquire(unsigned int) (this=0x556f87223960, nLockCount=1) at vcl/headless/svpinst.cxx:376 pInst = 0x556f87223830 __PRETTY_FUNCTION__ = "virtual void SvpSalYieldMutex::doAcquire(sal_uInt32)" #5 0x00007fd312bcd4fc in comphelper::SolarMutex::acquire(unsigned int) (this=<optimized out>, nLockCount=nLockCount@entry=1) at include/comphelper/solarmutex.hxx:86 __PRETTY_FUNCTION__ = "void comphelper::SolarMutex::acquire(sal_uInt32)" #6 0x00007fd312bcd6bd in osl::Guard<comphelper::SolarMutex>::Guard(comphelper::SolarMutex*) (this=<optimized out>, pT_=<optimized out>) at include/osl/mutex.hxx:137 #7 0x00007fd312bccd53 in drawinglayer::primitive2d::BufferedDecompositionFlusher::run() (this=0x7fd2d4159230) at drawinglayer/source/primitive2d/BufferedDecompositionFlusher.cxx:154 aGuard = {pT = 0x556f87223960} aNow = {__d = {__r = 64556205175663173}} aRemoved1 = std::__debug::vector of length 1155, capacity 2048 = The active thread 1 asserts that the reference count of a SimpleReferenceObject isn't zero during dtor. Thread 1 (Thread 0x7fd2e2fff6c0 (LWP 3726667)): #21 0x00007fd313c2760a in salhelper::SimpleReferenceObject::~SimpleReferenceObject() (this=this@entry=0x7fd2d62f51f0, __in_chrg=<optimized out>) at salhelper/source/simplereferenceobject.cxx:29 #22 0x00007fd312bcbc57 in drawinglayer::primitive2d::BasePrimitive2D::~BasePrimitive2D() (this=this@entry=0x7fd2d62f51f0, __in_chrg=<optimized out>) at drawinglayer/source/primitive2d/baseprimitive2d.cxx:34 #23 0x00007fd312bcc368 in drawinglayer::primitive2d::BufferedDecompositionPrimitive2D::~BufferedDecompositionPrimitive2D() (this=this@entry=0x7fd2d62f51f0, __in_chrg=<optimized out>) at drawinglayer/source/primitive2d/BufferedDecompositionPrimitive2D.cxx:69 #24 0x00007fd310300136 in drawinglayer::primitive2d::SdrGrafPrimitive2D::~SdrGrafPrimitive2D() (this=0x7fd2d62f51f0, __in_chrg=<optimized out>) at svx/inc/sdr/primitive2d/sdrgrafprimitive2d.hxx:29 #25 0x00007fd310300141 in drawinglayer::primitive2d::SdrGrafPrimitive2D::~SdrGrafPrimitive2D() (this=0x7fd2d62f51f0, __in_chrg=<optimized out>) at svx/inc/sdr/primitive2d/sdrgrafprimitive2d.hxx:29 #26 0x00007fd312bcc5d3 in salhelper::SimpleReferenceObject::release() (this=<optimized out>) at include/salhelper/simplereferenceobject.hxx:83 #27 0x00007fd312bd1e63 in rtl::Reference<drawinglayer::primitive2d::BasePrimitive2D>::~Reference() (this=0x7fd2d62f4b10, __in_chrg=<optimized out>) at include/rtl/ref.hxx:126 #28 std::destroy_at<rtl::Reference<drawinglayer::primitive2d::BasePrimitive2D> >(rtl::Reference<drawinglayer::primitive2d::BasePrimitive2D>*) (__location=0x7fd2d62f4b10) at /usr/include/c++/12/bits/stl_construct.h:88 #29 std::_Destroy<rtl::Reference<drawinglayer::primitive2d::BasePrimitive2D> >(rtl::Reference<drawinglayer::primitive2d::BasePrimitive2D>*) (__pointer=0x7fd2d62f4b10) at /usr/include/c++/12/bits/stl_construct.h:149 So, what if a BufferedDecompositionPrimitive2D was registered with BufferedDecompositionFlusher, so a direct pointer to it exists. On Thread 0 the BufferedDecompositionPrimitive2D ref count hits 0, dtoring starts. Meanwhile Thread 6 merrily spins its loop, creates a rtl::Reference from the BufferedDecompositionPrimitive2D, ref count goes back up to 1. BufferedDecompositionPrimitive2D::dtor gets around to unregistering itself from BufferedDecompositionFlusher, but that doesn't matter because the rtl::Reference to the primitive already exists in aRemoved, dtor hits assert that refcount isn't 0 Change-Id: Iac0a03bb7cbadf949ba1ac00d69cf15cc2505e18 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192674 Tested-by: Jenkins Tested-by: Caolán McNamara <[email protected]> Reviewed-by: Caolán McNamara <[email protected]>
don’t list Language Pack itself as LibreOffice installation to update