Draw crashes when closing, as shown by crash report dialog at next launch, and Ubuntu Apport crash report. Steps: 1. Open Draw 2. Close Draw 3. Start LO again: crash reporter appears. Ubuntu 20.04 with GNOME 3.36.8 Version: 7.6.0.0.alpha0+ (X86_64) / LibreOffice Community Build ID: 002ae41bb6088002ba3ed0188ac822fb823a23f9 CPU threads: 8; OS: Linux 5.15; UI render: default; VCL: gtk3 Locale: en-AU (en_AU.UTF-8); UI: en-US Calc: threaded Backtrace unpacked from Apport crash file: Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007f58497fd0a0 in SalInstance::GetYieldMutex() () from /opt/libreofficedev7.6/program/libmergedlo.so (gdb) bt #0 0x00007f58497fd0a0 in SalInstance::GetYieldMutex() () at /opt/libreofficedev7.6/program/libmergedlo.so #1 0x00007f5848b6917e in accessibility::AccessibleShapeTreeInfo::~AccessibleShapeTreeInfo() () at /opt/libreofficedev7.6/program/libmergedlo.so #2 0x00007f5848b8e6b5 in accessibility::AccessibleShape::~AccessibleShape() () at /opt/libreofficedev7.6/program/libmergedlo.so #3 0x00007f5820d01a69 in () at /opt/libreofficedev7.6/program/../program/libsdlo.so #4 0x00007f5843984e7a in cppu::WeakComponentImplHelperBase::release() () at /opt/libreofficedev7.6/program/libuno_cppuhelpergcc3.so.3 #5 0x00007f583d49e3ce in () at /opt/libreofficedev7.6/program/libvclplug_gtk3lo.so #6 0x00007f583d461348 in () at /opt/libreofficedev7.6/program/libvclplug_gtk3lo.so #7 0x00007f5847ea99fe in () at /opt/libreofficedev7.6/program/libmergedlo.so #8 0x00007f5846b27fde in __cxa_finalize (d=0x7f584b242a80) at cxa_finalize.c:83 #9 0x00007f5847b153a3 in () at /opt/libreofficedev7.6/program/libmergedlo.so #10 0x00007ffccad62b80 in () #11 0x00007f584b9aef6b in _dl_fini () at dl-fini.c:138 No crash with a debug build, so no symbols. No crash in bisect repo linux-64-7.6 at same commit.
On pc Debian x86-64 with master sources updated today + gtk3 rendering, I don't reproduce this, perhaps already fixed with e4f5c7e3bf9a791ce777d1027aa17c93ad8f28a3 ? ( tdf#155186 crash Inserting tables and switching slides (gtk3) regression from commit 3b7db802731826b6cc3b55100470b0c61c1f2dfa Author: Noel Grandin <noel.grandin@collabora.co.uk> Date: Thu May 4 10:06:14 2023 +0200 tdf#105404 [API CHANGE] add index to accessiblity change event where something is forgetting to send events for some of the changes, so just ignore a bad indexhint here)
I don't think that's the fix, I'm still hitting it on the current head ba0bf0ab2c24d309e8a938cec26daa41eba9c8cf which looks like it has that patch? Here's my backtrace which looks similar. I got this (on Fedora 38 x86) starting with --impress and chosing the first template (beehive?) and then closing the window. (gdb) where #0 SalInstance::GetYieldMutex() (this=0x0) at /usr/include/c++/13/bits/unique_ptr.h:199 #1 0x00007ff5bd6ac626 in Application::GetSolarMutex() () at /discs/fast/core/vcl/source/app/svapp.cxx:481 #2 0x00007ff5bf57c17e in SolarMutexGuard::SolarMutexGuard() (this=<synthetic pointer>) at /discs/fast/core/include/vcl/svapp.hxx:1366 #3 accessibility::AccessibleShapeTreeInfo::~AccessibleShapeTreeInfo() (this=this@entry=0x2706e88, __in_chrg=<optimized out>) at /discs/fast/core/svx/source/accessibility/AccessibleShapeTreeInfo.cxx:77 #4 0x00007ff5bf57430e in accessibility::AccessibleShape::~AccessibleShape() (this=0x2706d80, __in_chrg=<optimized out>) at /discs/fast/core/svx/source/accessibility/AccessibleShape.cxx:118 #5 0x00007ff5bf574379 in accessibility::AccessibleShape::~AccessibleShape() (this=0x2706d80, __in_chrg=<optimized out>) at /discs/fast/core/svx/source/accessibility/AccessibleShape.cxx:118 #6 0x00007ff5a9ee703e in com::sun::star::uno::Reference<com::sun::star::uno::XInterface>::~Reference() (this=0x4e697c8, __in_chrg=<optimized out>) at /discs/fast/core/include/com/sun/star/uno/Reference.hxx:114 #7 std::_Destroy<com::sun::star::uno::Reference<com::sun::star::uno::XInterface> >(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>*) (__pointer=0x4e697c8) at /usr/include/c++/13/bits/stl_construct.h:151 #8 std::_Destroy_aux<false>::__destroy<com::sun::star::uno::Reference<com::sun::star::uno::XInterface>*>(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>*, com::sun::star::uno::Reference<com::sun::star::uno::XInterface>*) (__last=0x4e697e8, __first=0x4e697c8) at /usr/include/c++/13/bits/stl_construct.h:163 #9 std::_Destroy<com::sun::star::uno::Reference<com::sun::star::uno::XInterface>*>(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>*, com::sun::star::uno::Reference<com::sun::star::uno::XInterface>*) (__last=0x4e697e8, __first=<optimized out>) at /usr/include/c++/13/bits/stl_construct.h:196 #10 std::_Destroy<com::sun::star::uno::Reference<com::sun::star::uno::XInterface>*, com::sun::star::uno::Reference<com::sun::star::uno::XInterface> >(com::sun::star::uno::Reference<com::sun::star::uno::XInterface>*, com::sun::star::uno::Reference<com::sun::star::uno::XInterface>*, std::allocator<com::sun::star::uno::Reference<com::sun::star::uno::XInterface> >&) (__last=0x4e697e8, __first=<optimized out>) at /usr/include/c++/13/bits/alloc_traits.h:947 #11 std::vector<com::sun::star::uno::Reference<com::sun::star::uno::XInterface>, std::allocator<com::sun::star::uno::Reference<com::sun::star::uno::XInterface> > >::~vector() (this=0x2c7e0d0, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/stl_vector.h:730 #12 o3tl::sorted_vector<com::sun::star::uno::Reference<com::sun::star::uno::XInterface>, std::less<com::sun::star::uno::Reference<com::sun::star::uno::XInterface> >, o3tl::find_unique, true>::~sorted_vector() (this=0x2c7e0d0, __in_chrg=<optimized out>) at /discs/fast/core/include/o3tl/sorted_vector.hxx:39 #13 DocumentFocusListener::~DocumentFocusListener() (this=0x2c7e0a0, __in_chrg=<optimized out>) at /discs/fast/core/vcl/inc/unx/gtk/gtkdata.hxx:221 #14 DocumentFocusListener::~DocumentFocusListener() (this=0x2c7e0a0, __in_chrg=<optimized out>) at /discs/fast/core/vcl/inc/unx/gtk/gtkdata.hxx:221 #15 0x00007ff5c104c37e in com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>::~Reference() (this=0x25f9e80, __in_chrg=<optimized out>) at /discs/fast/core/include/com/sun/star/uno/Reference.hxx:114 #16 std::_Destroy<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> >(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*) (__pointer=0x25f9e80) at /usr/include/c++/13/bits/stl_construct.h:151 #17 std::_Destroy_aux<false>::__destroy<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*>(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*, com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*) (__last=0x25f9e88, __first=0x25f9e80) at /usr/include/c++/13/bits/stl_construct.h:163 #18 std::_Destroy<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*>(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*, com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*) (__last=0x25f9e88, __first=<optimized out>) at /usr/include/c++/13/bits/stl_construct.h:196 #19 std::_Destroy<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*, com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> >(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*, com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*, std::allocator<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> >&) (__last=0x25f9e88, __first=<optimized out>) at /usr/include/c++/13/bits/alloc_traits.h:947 #20 std::vector<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>, std::allocator<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> > >::~vector() (this=0x4e69620, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/stl_vector.h:730 #21 o3tl::cow_wrapper<std::vector<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>, std::allocator<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> > >, o3tl::ThreadSafeRefCountingPolicy>::impl_t::~impl_t() (this=0x4e69620, __in_chrg=<optimized out>) at /discs/fast/core/include/o3tl/cow_wrapper.hxx:176 #22 o3tl::cow_wrapper<std::vector<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>, std::allocator<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> > >, o3tl::ThreadSafeRefCountingPolicy>::release() (this=0x4e70610) at /discs/fast/core/include/o3tl/cow_wrapper.hxx:207 #23 o3tl::cow_wrapper<std::vector<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>, std::allocator<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> > >, o3tl::ThreadSafeRefCountingPolicy>::release() (this=0x4e70610) at /discs/fast/core/include/o3tl/cow_wrapper.hxx:203 #24 o3tl::cow_wrapper<std::vector<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>, std::allocator<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> > >, o3tl::ThreadSafeRefCountingPolicy>::~cow_wrapper() (this=0x4e70610, __in_chrg=<optimized out>) at /discs/fast/core/include/o3tl/cow_wrapper.hxx:271 #25 comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener>::~OInterfaceContainerHelper4() (this=0x4e70610, __in_chrg=<optimized out>) at /discs/fast/core/include/comphelper/interfacecontainer4.hxx:126 #26 std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >::~pair() (this=0x4e70608, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/stl_pair.h:187 #27 std::__new_allocator<std::__detail::_Hash_node<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, false> >::destroy<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> > >(std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >*) (__p=0x4e70608, this=0x7ff5c1184520 <(anonymous namespace)::gaClients>) at /usr/include/c++/13/bits/new_allocator.h:194 #28 std::allocator_traits<std::allocator<std::__detail::_Hash_node<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, false> > >::destroy<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> > >(std::allocator<std::__detail::_Hash_node<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, false> >&, std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >*) (__p=0x4e70608, __a=...) at /usr/include/c++/13/bits/alloc_traits.h:557 #29 std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, false> > >::_M_deallocate_node(std::__detail::_Hash_node<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, false>*) (this=0x7ff5c1184520 <(anonymous namespace)::gaClients>, __n=0x4e70600) at /usr/include/c++/13/bits/hashtable_policy.h:2020 #30 std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, false> > >::_M_deallocate_nodes(std::__detail::_Hash_node<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, false>*) (__n=0x0, this=0x7ff5c1184520 <(anonymous namespace)::gaClients>) at /usr/include/c++/13/bits/hashtable_policy.h:2042 #31 std::_Hashtable<unsigned int, std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, std::allocator<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> > >, std::__detail::_Select1st, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::clear() (this=0x7ff5c1184520 <(anonymous namespace)::gaClients>) at /usr/include/c++/13/bits/hashtable.h:2509 #32 std::_Hashtable<unsigned int, std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, std::allocator<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> > >, std::__detail::_Select1st, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::~_Hashtable() (this=0x7ff5c1184520 <(anonymous namespace)::gaClients>, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/hashtable.h:1593 #33 std::unordered_map<unsigned int, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener>, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> > > >::~unordered_map() (this=0x7ff5c1184520 <(anonymous namespace)::gaClients>, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/unordered_map.h:107 #34 0x00007ff5c1b4abfd in __cxa_finalize () at /lib64/libc.so.6 #35 0x00007ff5c1018c37 in __do_global_dtors_aux () at /discs/fast/core/instdir/program/libcomphelper.so #36 0x00007ffd9bc01ca0 in () #37 0x00007ff5c1e800f2 in _dl_call_fini (closure_map=0x7ff5c1a74540) at dl-call_fini.c:43
Noel: thought you might be interested in this one.
This bug disappears for me if I switch from gtk to Qt. It also disappears if run under valgrind. (Marking new since I seem to be the 2nd person)
Noel Grandin committed a patch related to this issue. It has been pushed to "master": https://git.libreoffice.org/core/commit/d309298d1f70f4ffbf699b1aa1b2bfe08be8c4ef tdf#155235 Draw crashes on close: SIGSEGV in SalInstance:GetYieldMutex() It will be available in 7.6.0. The patch should be included in the daily builds available at https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: https://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.
Verified the fix in : Version: 7.6.0.0.alpha1+ (X86_64) / LibreOffice Community Build ID: 99a88c9e55872214ce01d89447d18708e47e956b CPU threads: 8; OS: Linux 5.15; UI render: default; VCL: gtk3 Locale: en-AU (en_AU.UTF-8); UI: en-US Calc: threaded Thanks Noel!
I'm still seeing a crash on exit here, but it's moved to a different accessibility object, perhaps they need hitting with the same hammer: #0 SalInstance::GetYieldMutex() (this=0x0) at /usr/include/c++/13/bits/unique_ptr.h:199 #1 0x00007f97f78ae176 in Application::GetSolarMutex() () at /discs/fast/core/vcl/source/app/svapp.cxx:481 #2 0x00007f97e40e8b3e in SolarMutexGuard::SolarMutexGuard() (this=<synthetic pointer>) at /discs/fast/core/include/vcl/svapp.hxx:1365 #3 atk_object_wrapper_finalize(GObject*) (obj=0x3d947c0) at /discs/fast/core/vcl/unx/gtk3/a11y/atkwrapper.cxx:662 #4 0x00007f97f407ca53 in g_object_unref (_object=0x3d947c0) at ../gobject/gobject.c:3938 #5 g_object_unref (_object=0x3d947c0) at ../gobject/gobject.c:3802 #6 0x00007f97e40d97cb in AtkListener::~AtkListener() (this=0x3d8d180, __in_chrg=<optimized out>) at /discs/fast/core/vcl/unx/gtk3/a11y/atklistener.cxx:57 #7 0x00007f97e40d9839 in AtkListener::~AtkListener() (this=0x3d8d180, __in_chrg=<optimized out>) at /discs/fast/core/vcl/unx/gtk3/a11y/atklistener.cxx:58 #8 0x00007f97fb0cb40e in com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>::~Reference() (this=0x3e5bf48, __in_chrg=<optimized out>) at /discs/fast/core/include/com/sun/star/uno/Reference.hxx:114 #9 std::_Destroy<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> >(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*) (__pointer=0x3e5bf48) at /usr/include/c++/13/bits/stl_construct.h:151 #10 std::_Destroy_aux<false>::__destroy<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*>(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*, com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*) (__last=0x3e5bf50, __first=0x3e5bf48) at /usr/include/c++/13/bits/stl_construct.h:163 #11 std::_Destroy<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*>(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*, com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*) (__last=0x3e5bf50, __first=<optimized out>) at /usr/include/c++/13/bits/stl_construct.h:196 #12 std::_Destroy<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*, com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> >(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*, com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*, std::allocator<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> >&) (__last=0x3e5bf50, __first=<optimized out>) at /usr/include/c++/13/bits/alloc_traits.h:947 #13 std::vector<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>, std::allocator<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> > >::~vector() (this=0x4e35f60, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/stl_vector.h:732 #14 o3tl::cow_wrapper<std::vector<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>, std::allocator<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> > >, o3tl::ThreadSafeRefCountingPolicy>::impl_t::~impl_t() (this=0x4e35f60, __in_chrg=<optimized out>) at /discs/fast/core/include/o3tl/cow_wrapper.hxx:176 #15 o3tl::cow_wrapper<std::vector<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>, std::allocator<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> > >, o3tl::ThreadSafeRefCountingPolicy>::release() (this=0x27802d0) at /discs/fast/core/include/o3tl/cow_wrapper.hxx:207 #16 o3tl::cow_wrapper<std::vector<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>, std::allocator<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> > >, o3tl::ThreadSafeRefCountingPolicy>::release() (this=0x27802d0) at /discs/fast/core/include/o3tl/cow_wrapper.hxx:203 --Type <RET> for more, q to quit, c to continue without paging-- #17 o3tl::cow_wrapper<std::vector<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>, std::allocator<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> > >, o3tl::ThreadSafeRefCountingPolicy>::~cow_wrapper() (this=0x27802d0, __in_chrg=<optimized out>) at /discs/fast/core/include/o3tl/cow_wrapper.hxx:271 #18 comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener>::~OInterfaceContainerHelper4() (this=0x27802d0, __in_chrg=<optimized out>) at /discs/fast/core/include/comphelper/interfacecontainer4.hxx:126 #19 std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >::~pair() (this=0x27802c8, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/stl_pair.h:187 #20 std::__new_allocator<std::__detail::_Hash_node<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, false> >::destroy<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> > >(std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >*) (__p=0x27802c8, this=0x7f97fb203520 <(anonymous namespace)::gaClients>) at /usr/include/c++/13/bits/new_allocator.h:194 #21 std::allocator_traits<std::allocator<std::__detail::_Hash_node<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, false> > >::destroy<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> > >(std::allocator<std::__detail::_Hash_node<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, false> >&, std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >*) (__p=0x27802c8, __a=...) at /usr/include/c++/13/bits/alloc_traits.h:557 #22 std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, false> > >::_M_deallocate_node(std::__detail::_Hash_node<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, false>*) (this=0x7f97fb203520 <(anonymous namespace)::gaClients>, __n=0x27802c0) at /usr/include/c++/13/bits/hashtable_policy.h:2020 #23 std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, false> > >::_M_deallocate_nodes(std::__detail::_Hash_node<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, false>*) (__n=0x31eaac0, this=0x7f97fb203520 <(anonymous namespace)::gaClients>) at /usr/include/c++/13/bits/hashtable_policy.h:2042 #24 std::_Hashtable<unsigned int, std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, std::allocator<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> > >, std::__detail::_Select1st, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::clear() (this=0x7f97fb203520 <(anonymous namespace)::gaClients>) at /usr/include/c++/13/bits/hashtable.h:2509 #25 std::_Hashtable<unsigned int, std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, std::allocator<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> > >, std::__detail::_Select1st, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::~_Hashtable() (this=0x7f97fb203520 <(anonymous namespace)::gaClients>, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/hashtable.h:1593 #26 std::unordered_map<unsigned int, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener>, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> > > >::~unordered_map() (this=0x7f97fb203520 <(anonymous namespace)::gaClients>, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/unordered_map.h:109 #27 0x00007f97fbc89bfd in __cxa_finalize (d=0x7f97fb1f2840) at cxa_finalize.c:82 #28 0x00007f97fb097c77 in __do_global_dtors_aux () at /discs/fast/core/instdir/program/libcomphelper.so #29 0x00007ffde8aa3550 in () #30 0x00007f97fbfbf0f2 in _dl_call_fini (closure_map=0x7f97fb7fe540) at dl-call_fini.c:43
(In reply to Dave Gilbert from comment #7) > I'm still seeing a crash on exit here, but it's moved to a different > accessibility object, perhaps they need hitting with the same hammer: > Do you know what you're doing to trigger this?
(In reply to Noel Grandin from comment #8) > (In reply to Dave Gilbert from comment #7) > > I'm still seeing a crash on exit here, but it's moved to a different > > accessibility object, perhaps they need hitting with the same hammer: > > > > Do you know what you're doing to trigger this? Hmm it's not as easy as the old version. But this seems repeatable: soffice --impress chose the first 'beehive' template right click on the 1st slide in the thumbnails on the left, and duplicate close the window with alt-f4 (window manager close) Select 'dont save' *crash*
(In reply to Dave Gilbert from comment #9) > soffice --impress > chose the first 'beehive' template > right click on the 1st slide in the thumbnails on the left, and duplicate > close the window with alt-f4 (window manager close) > Select 'dont save' > *crash* Reproduced as well with a build from today, thanks for the steps. Version: 7.6.0.0.alpha1+ (X86_64) / LibreOffice Community Build ID: 261063e69e80193ad563e086c515fd6e22e48464 CPU threads: 8; OS: Linux 5.15; UI render: default; VCL: gtk3 Locale: en-AU (en_AU.UTF-8); UI: en-US Calc: threaded Even simpler steps: 1. Open impress 2. Pick Beehive template 3. Select slide 2 in slide picker 4. Close
Created attachment 187403 [details] bt with debug symbols On pc Debian x86-64 with master sources updated today, I could reproduce this by following Stephane's comment 10.
Here are the last messages on console: warn:vcl:23297:23297:vcl/unx/gtk3/a11y/atklistener.cxx:215: index hint out of range, ignoring warn:vcl:23297:23297:vcl/unx/gtk3/a11y/atklistener.cxx:215: index hint out of range, ignoring warn:sd:23297:23297:sd/source/ui/unoidl/DrawController.cxx:783: Calling disposed DrawController object. Throwing exception: warn:svl.items:23297:23297:svl/source/items/itempool.cxx:442: old secondary pool: EditEngineItemPool of pool: XOutdevItemPool must be empty. warn:vcl.schedule.deinit:23297:23297:vcl/source/app/scheduler.cxx:176: DeInit task: Timer a: 1 p: 1 drawinglayer ImpTimedRefDev destroy mpVirDev 180000ms (0x560ba6fadeb0) warn:vcl.schedule.deinit:23297:23297:vcl/source/app/scheduler.cxx:176: DeInit task: Timer a: 1 p: 1 graphic::Manager maSwapOutTimer 10000ms (0x7f7113774710) warn:vcl.schedule.deinit:23297:23297:vcl/source/app/scheduler.cxx:197: DeInit active tasks: 2 (ignored: 0)
Created attachment 187404 [details] bt with debug symbols (from throwing exception) From warn:sd:23297:23297:sd/source/ui/unoidl/DrawController.cxx:783: Calling disposed DrawController object. Throwing exception:
I tried this patch but no better: diff --git a/sd/source/ui/unoidl/DrawController.cxx b/sd/source/ui/unoidl/DrawController.cxx index 3dd4c4c65478..7b0271b25e70 100644 --- a/sd/source/ui/unoidl/DrawController.cxx +++ b/sd/source/ui/unoidl/DrawController.cxx @@ -151,10 +151,10 @@ void SAL_CALL DrawController::dispose() mpBase->GetViewShellManager()->Shutdown(); } - OPropertySetHelper::disposing(); - DisposeFrameworkControllers(); + OPropertySetHelper::disposing(); + SfxBaseController::dispose(); } since in the ctr OPropertySetHelper is initialized before FrameworkControllers and disposing or calling destructor should call the same but in reverse order.
Noel Grandin committed a patch related to this issue. It has been pushed to "master": https://git.libreoffice.org/core/commit/1ed765c818af2186e459c5ad0eff24dc39a20d34 tdf#155235 workaround gtk3 accessiblibility crashes on close It will be available in 7.6.0. The patch should be included in the daily builds available at https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: https://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.
(In reply to Stéphane Guillou (stragu) from comment #10) > Even simpler steps: > > 1. Open impress > 2. Pick Beehive template > 3. Select slide 2 in slide picker > 4. Close Can't reproduce anymore with the steps above and: Version: 7.6.0.0.alpha1+ (X86_64) / LibreOffice Community Build ID: f3aab159f1c1e00c25e6b4ca1e50813bc343f4f3 CPU threads: 8; OS: Linux 5.15; UI render: default; VCL: gtk3 Locale: en-AU (en_AU.UTF-8); UI: en-US Calc: threaded Thanks Julien. I'm still getting some exit crashes in other modules, but will report separately if I find a way to reproduce consistently.
*** Bug 155556 has been marked as a duplicate of this bug. ***