Bug 57979 - ODatabaseContext::dispose uses other services during shutdown
Summary: ODatabaseContext::dispose uses other services during shutdown
Status: RESOLVED WORKSFORME
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Base (show other bugs)
Version:
(earliest affected)
4.0.0.0.alpha0+ Master
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
: 101734 (view as bug list)
Depends on:
Blocks: Dev-related
  Show dependency treegraph
 
Reported: 2012-12-07 11:13 UTC by Stephan Bergmann
Modified: 2025-04-22 21:16 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stephan Bergmann 2012-12-07 11:13:31 UTC
At least reproducible with current Linux x86-64 --enable-dbugtil master build: "File - New - Database", "Finish", save, "Reports - Use Wizard to Create Report...", "Cancel", "File - Exit LibreOffice" reports

> warn:legacy.osl:9105:1:lo/core/dbaccess/source/core/dataaccess/ModelImpl.cxx:924: caught an exception!
> in function:static bool dbaccess::ODatabaseModelImpl::commitStorageIfWriteable_ignoreErrors(const com::sun::star::uno::Reference<com::sun::star::embed::XStorage>&)
> type: com.sun.star.uno.DeploymentException
> message: component context fails to supply service com.sun.star.io.TempFile of type com.sun.star.io.XTempFile
> context: N4cppu16ComponentContextE

on stderr, coming from

> #0  0x00007fffa3ba44e5 in dbaccess::ODatabaseModelImpl::commitStorageIfWriteable_ignoreErrors (_rxStorage=uno::Reference to {<com::sun::star::container::XNameAccess> = {<com::sun::star::container::XElementAccess> = {<com::sun::star::uno::XInterface> = {_vptr.XInterface = 0x7fffb42ded10}, <No data fields>}, <No data fields>}, <com::sun::star::lang::XComponent> = {<com::sun::star::uno::XInterface> = {_vptr.XInterface = 0x7fffb42def80}, <No data fields>}, <No data fields>}) at lo/core/dbaccess/source/core/dataaccess/ModelImpl.cxx:924
> #1  0x00007fffa3ba371a in dbaccess::ODatabaseModelImpl::commitRootStorage (this=0x4af4af0) at lo/core/dbaccess/source/core/dataaccess/ModelImpl.cxx:828
> #2  0x00007fffa3ba208c in dbaccess::ODatabaseModelImpl::dispose (this=0x4af4af0) at lo/core/dbaccess/source/core/dataaccess/ModelImpl.cxx:741
> #3  0x00007fffa3b16565 in dbaccess::ODatabaseContext::disposing (this=0x7fffb4866258) at lo/core/dbaccess/source/core/dataaccess/databasecontext.cxx:290
> #4  0x00007ffff70258ba in cppu::WeakComponentImplHelperBase::dispose (this=0x7fffb4866258) at lo/core/cppuhelper/source/implbase.cxx:268
> #5  0x00007fffa3b25a52 in cppu::WeakComponentImplHelper3<com::sun::star::lang::XServiceInfo, com::sun::star::sdb::XDatabaseContext, com::sun::star::lang::XUnoTunnel>::dispose (this=0x7fffb4866258) at lo/core/solver/unxlngx6/inc/cppuhelper/compbase3.hxx:66
> #6  0x00007ffff701e8b0 in cppu::OFactoryComponentHelper::dispose (this=0x7fffb459d018) at lo/core/cppuhelper/source/factory.cxx:514
> #7  0x00007ffff6fda888 in cppu::OComponentHelper::release (this=0x7fffb459d018) at lo/core/cppuhelper/source/component.cxx:91
> #8  0x00007ffff70234e8 in cppu::OFactoryComponentHelper::release (this=0x7fffb459d018) at lo/core/cppuhelper/source/factory.cxx:334
> #9  0x00007ffff6fd601b in com::sun::star::uno::Reference<com::sun::star::lang::XSingleComponentFactory>::~Reference (this=0x7386e0, __in_chrg=<optimized out>) at lo/core/solver/unxlngx6/inc/com/sun/star/uno/Reference.hxx:108
> #10 0x00007ffff6ff9ea9 in (anonymous namespace)::Implementation::~Implementation (this=0x7386d0, __in_chrg=<optimized out>) at lo/core/cppuhelper/source/defaultbootstrap.cxx:150
> #11 0x00007ffff6ff9f02 in boost::checked_delete<{anonymous}::Implementation>((anonymous namespace)::Implementation *) (x=0x7386d0) at lo/core/solver/unxlngx6/inc/external/boost/checked_delete.hpp:34
> #12 0x00007ffff7000cb8 in boost::detail::sp_counted_impl_p<{anonymous}::Implementation>::dispose(void) (this=0x7387e0) at lo/core/solver/unxlngx6/inc/external/boost/smart_ptr/detail/sp_counted_impl.hpp:78
> #13 0x00007ffff7001300 in boost::detail::sp_counted_base::release (this=0x7387e0) at lo/core/solver/unxlngx6/inc/external/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:145
> #14 0x00007ffff700138f in boost::detail::shared_count::~shared_count (this=0x738830, __in_chrg=<optimized out>) at lo/core/solver/unxlngx6/inc/external/boost/smart_ptr/detail/shared_count.hpp:217
> #15 0x00007ffff6fde03c in boost::shared_ptr<{anonymous}::Implementation>::~shared_ptr(void) (this=0x738828, __in_chrg=<optimized out>) at lo/core/solver/unxlngx6/inc/external/boost/smart_ptr/shared_ptr.hpp:168
> #16 0x00007ffff6fe0151 in std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> >::~pair(void) (this=0x738820, __in_chrg=<optimized out>) at /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/bits/stl_pair.h:88
> #17 0x00007ffff6ffea5e in std::_Rb_tree_node<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > >::~_Rb_tree_node(void) (this=0x738800, __in_chrg=<optimized out>) at /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/bits/stl_tree.h:130
> #18 0x00007ffff6ffea7c in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > > >::destroy<std::_Rb_tree_node<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > > >(std::_Rb_tree_node<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > > *) (this=0x7fffffffdcf0, __p=0x738800) at /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/ext/new_allocator.h:114
> #19 0x00007ffff6ffc5fb in std::_Rb_tree<rtl::OUString, std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> >, std::_Select1st<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > >, std::less<rtl::OUString>, std::allocator<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > > >::_M_destroy_node(std::_Rb_tree<rtl::OUString, std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> >, std::_Select1st<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > >, std::less<rtl::OUString>, std::allocator<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > > >::_Link_type) (this=0x7fffffffdcf0, __p=0x738800) at /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/bits/stl_tree.h:419
> #20 0x00007ffff6ff8a15 in std::_Rb_tree<rtl::OUString, std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> >, std::_Select1st<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > >, std::less<rtl::OUString>, std::allocator<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > > >::_M_erase(std::_Rb_tree<rtl::OUString, std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> >, std::_Select1st<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > >, std::less<rtl::OUString>, std::allocator<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > > >::_Link_type) (this=0x7fffffffdcf0, __x=0x738800) at /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/bits/stl_tree.h:1084
> #21 0x00007ffff6ff89f2 in std::_Rb_tree<rtl::OUString, std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> >, std::_Select1st<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > >, std::less<rtl::OUString>, std::allocator<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > > >::_M_erase(std::_Rb_tree<rtl::OUString, std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> >, std::_Select1st<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > >, std::less<rtl::OUString>, std::allocator<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > > >::_Link_type) (this=0x7fffffffdcf0, __x=0x7385e0) at /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/bits/stl_tree.h:1082
> #22 0x00007ffff6ff89f2 in std::_Rb_tree<rtl::OUString, std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> >, std::_Select1st<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > >, std::less<rtl::OUString>, std::allocator<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > > >::_M_erase(std::_Rb_tree<rtl::OUString, std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> >, std::_Select1st<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > >, std::less<rtl::OUString>, std::allocator<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > > >::_Link_type) (this=0x7fffffffdcf0, __x=0x6e52b0) at /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/bits/stl_tree.h:1082
> #23 0x00007ffff6ff89f2 in std::_Rb_tree<rtl::OUString, std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> >, std::_Select1st<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > >, std::less<rtl::OUString>, std::allocator<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > > >::_M_erase(std::_Rb_tree<rtl::OUString, std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> >, std::_Select1st<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > >, std::less<rtl::OUString>, std::allocator<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > > >::_Link_type) (this=0x7fffffffdcf0, __x=0x6db140) at /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/bits/stl_tree.h:1082
> #24 0x00007ffff6ff89f2 in std::_Rb_tree<rtl::OUString, std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> >, std::_Select1st<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > >, std::less<rtl::OUString>, std::allocator<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > > >::_M_erase(std::_Rb_tree<rtl::OUString, std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> >, std::_Select1st<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > >, std::less<rtl::OUString>, std::allocator<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > > >::_Link_type) (this=0x7fffffffdcf0, __x=0x6e8790) at /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/bits/stl_tree.h:1082
> #25 0x00007ffff6ff45e8 in std::_Rb_tree<rtl::OUString, std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> >, std::_Select1st<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > >, std::less<rtl::OUString>, std::allocator<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > > >::~_Rb_tree(void) (this=0x7fffffffdcf0, __in_chrg=<optimized out>) at /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/bits/stl_tree.h:646
> #26 0x00007ffff6fef3a8 in std::__cxx1998::map<rtl::OUString, boost::shared_ptr<{anonymous}::Implementation>, std::less<rtl::OUString>, std::allocator<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > > >::~map(void) (this=0x7fffffffdcf0, __in_chrg=<optimized out>) at /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/bits/stl_map.h:90
> #27 0x00007ffff6fef444 in std::__debug::map<rtl::OUString, boost::shared_ptr<{anonymous}::Implementation>, std::less<rtl::OUString>, std::allocator<std::pair<const rtl::OUString, boost::shared_ptr<{anonymous}::Implementation> > > >::~map(void) (this=0x7fffffffdcf0, __in_chrg=<optimized out>) at /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/debug/map.h:107
> #28 0x00007ffff6fe14aa in (anonymous namespace)::Data::~Data (this=0x7fffffffdcf0, __in_chrg=<optimized out>) at lo/core/cppuhelper/source/defaultbootstrap.cxx:229
> #29 0x00007ffff6fe5b5e in (anonymous namespace)::ServiceManager::disposing (this=0x7fffe6a02208) at lo/core/cppuhelper/source/defaultbootstrap.cxx:1369
> #30 0x00007ffff70258ba in cppu::WeakComponentImplHelperBase::dispose (this=0x7fffe6a02208) at lo/core/cppuhelper/source/implbase.cxx:268
> #31 0x00007ffff701b860 in cppu::WeakComponentImplHelper8<com::sun::star::lang::XServiceInfo, com::sun::star::lang::XMultiServiceFactory, com::sun::star::lang::XMultiComponentFactory, com::sun::star::container::XSet, com::sun::star::container::XContentEnumerationAccess, com::sun::star::beans::XPropertySet, com::sun::star::beans::XPropertySetInfo, com::sun::star::lang::XEventListener>::dispose (this=0x7fffe6a02208) at lo/core/solver/unxlngx6/inc/cppuhelper/compbase8.hxx:66
> #32 0x00007ffff6fc8e95 in cppu::try_dispose (xInstance=uno::Reference to {_vptr.XInterface = 0x7ffff7306308}) at lo/core/cppuhelper/source/component_context.cxx:276
> #33 0x00007ffff6fcb47a in cppu::ComponentContext::disposing (this=0x7fffe69dd858) at lo/core/cppuhelper/source/component_context.cxx:745
> #34 0x00007ffff70258ba in cppu::WeakComponentImplHelperBase::dispose (this=0x7fffe69dd858) at lo/core/cppuhelper/source/implbase.cxx:268
> #35 0x00007ffff6fda10e in cppu::WeakComponentImplHelper2<com::sun::star::uno::XComponentContext, com::sun::star::container::XNameContainer>::dispose (this=0x7fffe69dd858) at lo/core/solver/unxlngx6/inc/cppuhelper/compbase2.hxx:66
> #36 0x00007ffff7a89459 in desktop::Desktop::DeInit (this=0x7fffffffe430) at lo/core/desktop/source/app/app.cxx:627
> #37 0x00007ffff32f1f31 in DeInitVCL () at lo/core/vcl/source/app/svmain.cxx:494
> #38 0x00007ffff32f119b in ImplSVMain () at lo/core/vcl/source/app/svmain.cxx:186
> #39 0x00007ffff32f11f8 in SVMain () at lo/core/vcl/source/app/svmain.cxx:199
> #40 0x00007ffff7acdccb in soffice_main () at lo/core/desktop/source/app/sofficemain.cxx:74
> #41 0x0000000000400948 in sal_main () at lo/core/desktop/source/app/main.c:48
> #42 0x0000000000400929 in main (argc=1, argv=0x7fffffffe618) at lo/core/desktop/source/app/main.c:47

As ODatabaseContext is a single-instance implementation (see use of cppu::createOneInstanceComponentFactory in dbaccess/soruce/misc/services.cxx), it is only disposed when the global service manager is disposed, but after the global service manager has cleaned its tables so that it no longer provides any services.

So either ODatabaseContext should not do substantial work during dispose (which is best not to do, anyway) or should be changed to destroy implementation(s) as soon as they are no longer referenced by client code (i.e., not use cppu::createOneInstanceComponentFactory).
Comment 1 Rich R 2014-08-14 18:57:54 UTC
I installed via apt, so not sure how to do that.  Should I try installing a downloaded version instead?
Comment 2 Rich R 2014-08-14 19:16:58 UTC Comment hidden (off-topic)
Comment 3 Rich R 2014-08-14 19:17:54 UTC Comment hidden (off-topic)
Comment 4 Alex Thurgood 2015-01-03 17:39:27 UTC Comment hidden (no-value)
Comment 5 QA Administrators 2016-01-17 20:04:45 UTC Comment hidden (obsolete)
Comment 6 Julien Nabet 2016-12-20 18:54:58 UTC
*** Bug 101734 has been marked as a duplicate of this bug. ***
Comment 7 Alex Thurgood 2016-12-21 11:23:16 UTC
So, confirming that this is still an issue with current master build
Comment 8 QA Administrators 2017-12-22 03:35:17 UTC Comment hidden (obsolete)
Comment 9 Julien Nabet 2018-01-27 22:33:38 UTC
Just to respond to QA Admin message, on pc Debian x86-64 with master sources updated today, I could reproduce this.

(now the file services.cxx is in dbaccess/source/core/misc)
Comment 10 QA Administrators 2019-01-28 03:42:21 UTC Comment hidden (obsolete)
Comment 11 QA Administrators 2021-01-28 04:17:45 UTC Comment hidden (obsolete)
Comment 12 Julien Nabet 2021-12-27 16:40:48 UTC
On pc Debian x86-64 with master sources updated today, I confirm I still got this:
warn:vcl.schedule.deinit:63545:63545:vcl/source/app/scheduler.cxx:177: DeInit task: Timer a: 1 p: 1 drawinglayer ImpTimedRefDev destroy mpVirDev 180000ms (0x438e530)
warn:vcl.schedule.deinit:63545:63545:vcl/source/app/scheduler.cxx:177: DeInit task: Timer a: 1 p: 1 graphic::Manager maSwapOutTimer 10000ms (0x7fbb152416c0)
warn:vcl.schedule.deinit:63545:63545:vcl/source/app/scheduler.cxx:198: DeInit active tasks: 2 (ignored: 0)
warn:dbaccess:63545:63545:dbaccess/source/core/dataaccess/ModelImpl.cxx:862: DBG_UNHANDLED_EXCEPTION in commitStorageIfWriteable_ignoreErrors exception: com.sun.star.uno.DeploymentException message: component context fails to supply service com.sun.star.io.TempFile of type com.sun.star.io.XTempFile /home/julien/lo/libreoffice/workdir/UnoApiHeadersTarget/udkapi/normal/com/sun/star/io/TempFile.hpp:46
warn:dbaccess:63545:63545:dbaccess/source/core/dataaccess/ModelImpl.cxx:923:  com.sun.star.uno.DeploymentException message: component context fails to supply service com.sun.star.security.DocumentDigitalSignatures of type com.sun.star.security.XDocumentDigitalSignatures /home/julien/lo/libreoffice/workdir/UnoApiHeadersTarget/offapi/normal/com/sun/star/security/DocumentDigitalSignatures.hpp:80
warn:dbaccess:63545:63545:dbaccess/source/core/dataaccess/ModelImpl.cxx:749: ODatabaseModelImpl::commitRootStorage: could not commit the storage!
warn:legacy.osl:63545:63545:dbaccess/source/core/dataaccess/databasecontext.cxx:495: ODatabaseContext::storeTransientProperties: a non-empty data source which I do not know?!
warn:unotools.config:63545:63545:unotools/source/config/configmgr.cxx:147: ConfigManager not empty
Comment 13 Julien Nabet 2021-12-27 16:47:39 UTC
find . -name services.cxx gives:
./reportdesign/source/core/api/services.cxx
./framework/qa/cppunit/services.cxx
./postprocess/qa/services.cxx

so nowhere to be seen in dbaccess.

git grep -n createOneInstanceComponentFactory gives:
cppuhelper/source/factory.cxx:954:Reference< lang::XSingleComponentFactory > SAL_CALL createOneInstanceComponentFactory(
cppuhelper/source/gcc3.map:401:        _ZN4cppu33createOneInstanceComponentFactoryEPFN3com3sun4star3uno9ReferenceINS3_10XInterfaceEEERKNS4_INS3_17XComponentContextEEEERKN3rtl8OUStringERKNS3_8SequenceISE_EEP16_rtl_ModuleCount;
include/cppuhelper/factory.hxx:163:createOneInstanceComponentFactory(

I thought first it could be removed but it seems to be a public API.
/** Creates a single service factory which holds the instance created only once.

    @param fptr function pointer for instantiating the object
    @param rImplementationName implementation name of service
    @param rServiceNames supported services
    @param pModCount a backwards-compatibility remainder of a removed library
           unloading feature; always set to null

    @see createSingleComponentFactory
*/
CPPUHELPER_DLLPUBLIC css::uno::Reference< css::lang::XSingleComponentFactory > SAL_CALL
createOneInstanceComponentFactory(
    ComponentFactoryFunc fptr,
    ::rtl::OUString const & rImplementationName,
    css::uno::Sequence< ::rtl::OUString > const & rServiceNames,
    rtl_ModuleCount * pModCount = NULL );

See https://opengrok.libreoffice.org/xref/core/cppuhelper/source/factory.cxx?r=2484de67&mo=30255&fi=954#954

I think tackling this one may help for some Base bugs.
Comment 14 Julien Nabet 2025-04-22 20:28:09 UTC
On pc Debian x86-64 with master sources updated today, I don't reproduce this anymore!

Stephan: would you have some time to give it a new try?
Comment 15 Stephan Bergmann 2025-04-22 21:16:20 UTC
(In reply to Julien Nabet from comment #14)
> Stephan: would you have some time to give it a new try?

Indeed, the call to dbaccess::ODatabaseModelImpl::commitStorageIfWriteable_ignoreErrors now happens at

> #0  dbaccess::ODatabaseModelImpl::commitStorageIfWriteable_ignoreErrors (this=0x7d2f8ed16990, _rxStorage=<error reading variable: Cannot access memory at address 0x1aaaaaaaaaaaa00>) at dbaccess/source/core/dataaccess/ModelImpl.cxx:836
> #1  0x00007bff53dd8452 in dbaccess::ODatabaseModelImpl::commitRootStorage (this=0x7d5f8ead7580) at dbaccess/source/core/dataaccess/ModelImpl.cxx:749
> #2  0x00007bff53de713d in dbaccess::ODatabaseModelImpl::dispose (this=0x7d5f8ead7580) at dbaccess/source/core/dataaccess/ModelImpl.cxx:667
> #3  0x00007bff53df00bf in dbaccess::ODatabaseModelImpl::release (this=0x7d5f8ead7580) at dbaccess/source/core/dataaccess/ModelImpl.cxx:1013
> #4  0x00007bff53af5a1d in rtl::Reference<dbaccess::ODatabaseModelImpl>::clear (this=0x7d5f8eada288) at include/rtl/ref.hxx:193
> #5  0x00007bff53acd9bb in dbaccess::ODatabaseDocument::disposing (this=0x7d5f8eada280) at dbaccess/source/core/dataaccess/databasedocument.cxx:1857
> #6  0x00007ffff013f4b4 in cppu::WeakComponentImplHelperBase::dispose (this=0x7d5f8eada298) at cppuhelper/source/implbase.cxx:104
> #7  0x00007bff53acdd6b in dbaccess::ODatabaseDocument::dispose (this=0x7d5f8eada280) at dbaccess/source/core/dataaccess/databasedocument.cxx:1867
> #8  0x00007bff53ac32a6 in dbaccess::ODatabaseDocument::close (this=0x7d5f8eada280, bDeliverOwnership=1 '\001') at dbaccess/source/core/dataaccess/databasedocument.cxx:1519
> #9  0x00007bff53aac75b in dbaccess::ODatabaseDocument::disconnectController (this=0x7d5f8eada280, _xController=uno::Reference to (dbaui::OApplicationController *) 0x7daf8ed25708) at dbaccess/source/core/dataaccess/databasedocument.cxx:859
> #10 0x00007bff4f94c6d0 in dbaui::OApplicationController::disposing (this=0x7daf8ed25680) at dbaccess/source/ui/app/AppController.cxx:381
> #11 0x00007ffff013f4b4 in cppu::WeakComponentImplHelperBase::dispose (this=0x7daf8ed25680) at cppuhelper/source/implbase.cxx:104
> #12 0x00007bff4ff055ef in cppu::PartialWeakComponentImplHelper<com::sun::star::frame::XDispatch, com::sun::star::frame::XDispatchProviderInterceptor, com::sun::star::util::XModifyListener, com::sun::star::frame::XFrameActionListener, com::sun::star::lang::XInitialization, com::sun::star::lang::XServiceInfo, com::sun::star::frame::XDispatchInformationProvider, com::sun::star::frame::XController2, com::sun::star::frame::XTitle, com::sun::star::frame::XTitleChangeBroadcaster, com::sun::star::awt::XUserInputInterception>::dispose (this=0x7daf8ed25680) at include/cppuhelper/compbase.hxx:90
> #13 0x00007bff4feeefc6 in dbaui::OGenericUnoController::dispose (this=0x7daf8ed25680) at dbaccess/source/ui/browser/genericcontroller.cxx:1152
> #14 0x00007fffeaf3e6a7 in (anonymous namespace)::XFrameImpl::setComponent (this=0x7d7f8ed75880, xComponentWindow=empty uno::Reference, xController=empty uno::Reference) at framework/source/services/frame.cxx:1497
> #15 0x00007fffeaf47b98 in (anonymous namespace)::XFrameImpl::close (this=0x7d7f8ed75880, bDeliverOwnership=0 '\000') at framework/source/services/frame.cxx:1708
> #16 0x00007fffeaee30a5 in framework::Desktop::impl_closeFrames (this=0x7d5f8ebbe880, bAllowUI=true) at framework/source/services/desktop.cxx:1693
> #17 0x00007fffeaee102d in framework::Desktop::terminate (this=0x7d5f8ebbe880) at framework/source/services/desktop.cxx:205
> #18 0x00007fffe3234ffd in SfxApplication::MiscExec_Impl (this=0x7cdf8ee45280, rReq=...) at sfx2/source/appl/appserv.cxx:426
> #19 0x00007fffe31c2e55 in SfxStubSfxApplicationMiscExec_Impl (pShell=0x7cdf8ee45280, rReq=...) at workdir/SdiTarget/sfx2/sdi/sfxslots.hxx:1299
> #20 0x00007fffe37380bf in SfxDispatcher::Call_Impl (this=0x7d8f8eb89930, rShell=..., rSlot=..., rReq=..., bRecord=true) at sfx2/source/control/dispatch.cxx:256
> #21 0x00007fffe374ef0a in SfxDispatcher::PostMsgHandler (this=0x7d8f8eb89930, pReq=std::unique_ptr<SfxRequest> = {...}) at sfx2/source/control/dispatch.cxx:997
> #22 0x00007fffe4c232e2 in SfxHintPoster::DoEvent_Impl (this=0x7c2f8fffd520, pPostedHint=0x7c2f90882b20) at sfx2/source/notify/hintpost.cxx:74
> #23 0x00007fffe4c22f9f in SfxHintPoster::LinkStubDoEvent_Impl (instance=0x7c2f8fffd520, data=0x7c2f90882b20) at sfx2/source/notify/hintpost.cxx:54
> #24 0x00007fffc1c05bdd in Link<void*, void>::Call (this=0x7c5f8f6d8cc8, data=0x7c2f90882b20) at include/tools/link.hxx:105
> #25 0x00007fffc1bf0556 in ImplHandleUserEvent (pSVEvent=0x7c5f8f6d8cc0) at vcl/source/window/winproc.cxx:2285
> #26 0x00007fffc1bde97b in ImplWindowFrameProc (_pWindow=0x7caf8eb50790, nEvent=SalEvent::UserEvent, pEvent=0x7c5f8f6d8cc0) at vcl/source/window/winproc.cxx:2849
> #27 0x00007fffc4ec1ba6 in SalFrame::CallCallback (this=0x7d8f8eb45d80, nEvent=SalEvent::UserEvent, pEvent=0x7c5f8f6d8cc0) at vcl/inc/salframe.hxx:310
> #28 0x00007fffc4f72e70 in SalGenericDisplay::ProcessEvent (this=0x7d8f8ea95480, aEvent=...) at vcl/unx/generic/app/gendisp.cxx:66
> #29 0x00007fffc3b3e477 in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7bff8d884720) at vcl/source/app/salusereventlist.cxx:119
> #30 0x00007fffc3b3de20 in SalUserEventList::DispatchUserEvents (this=0x7d8f8ea95480, bHandleAllCurrentEvents=false) at vcl/source/app/salusereventlist.cxx:120
> #31 0x00007fffc4f729cd in SalGenericDisplay::DispatchInternalEvent (this=0x7d8f8ea95480, bHandleAllCurrentEvent=false) at vcl/unx/generic/app/gendisp.cxx:51
> #32 0x00007bff7dc67a2f in call_userEventFn (data=0x7c7f8e9e2ea0) at vcl/unx/gtk3/gtkdata.cxx:827
> #33 0x00007fffe84f276d in g_idle_dispatch (source=0x7caf8ecc8aa0, callback=0x7bff7dc67638 <call_userEventFn(void*)>, user_data=0x7c7f8e9e2ea0) at ~/.cache/debuginfod_client/6827394d759bc44f207f57e7ab5f8e6b17e82c1c/source-2fe7652f-#usr#src#debug#glib2-2.84.1-1.fc42.x86_64#redhat-linux-build#..#glib#gmain.c:6284
> #34 0x00007fffe84ec040 in g_main_dispatch (context=0x7d0f8eb2be40) at ~/.cache/debuginfod_client/6827394d759bc44f207f57e7ab5f8e6b17e82c1c/source-2fe7652f-#usr#src#debug#glib2-2.84.1-1.fc42.x86_64#redhat-linux-build#..#glib#gmain.c:3398
> #35 g_main_context_dispatch_unlocked (context=0x7d0f8eb2be40) at ~/.cache/debuginfod_client/6827394d759bc44f207f57e7ab5f8e6b17e82c1c/source-2fe7652f-#usr#src#debug#glib2-2.84.1-1.fc42.x86_64#redhat-linux-build#..#glib#gmain.c:4249
> #36 0x00007fffe84f5128 in g_main_context_iterate_unlocked (context=context@entry=0x7d0f8eb2be40, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ~/.cache/debuginfod_client/6827394d759bc44f207f57e7ab5f8e6b17e82c1c/source-2fe7652f-#usr#src#debug#glib2-2.84.1-1.fc42.x86_64#redhat-linux-build#..#glib#gmain.c:4314
> #37 0x00007fffe84f52d3 in g_main_context_iteration (context=0x7d0f8eb2be40, may_block=1) at ~/.cache/debuginfod_client/6827394d759bc44f207f57e7ab5f8e6b17e82c1c/source-2fe7652f-#usr#src#debug#glib2-2.84.1-1.fc42.x86_64#redhat-linux-build#..#glib#gmain.c:4379
> #38 0x00007bff7dc63587 in GtkSalData::Yield (this=0x7c7f8e9e2ea0, bWait=true, bHandleAllCurrentEvents=false) at vcl/unx/gtk3/gtkdata.cxx:405
> #39 0x00007bff7dc784f2 in GtkInstance::DoYield (this=0x7d2f8e9e0900, bWait=true, bHandleAllCurrentEvents=false) at vcl/unx/gtk3/gtkinst.cxx:439
> #40 0x00007fffc3ed8842 in ImplYield (i_bWait=true, i_bAllEvents=false) at vcl/source/app/svapp.cxx:385
> #41 0x00007fffc3ed7041 in Application::Yield () at vcl/source/app/svapp.cxx:488
> #42 0x00007fffc3ed6874 in Application::Execute () at vcl/source/app/svapp.cxx:360
> #43 0x00007ffff6ef3a8a in desktop::Desktop::Main (this=0x7bff8d80c820) at desktop/source/app/app.cxx:1680
> #44 0x00007fffc3f6cc1a in ImplSVMain () at vcl/source/app/svmain.cxx:231
> #45 0x00007fffc3f749b5 in SVMain () at vcl/source/app/svmain.cxx:249
> #46 0x00007ffff70b6531 in soffice_main () at desktop/source/app/sofficemain.cxx:122
> #47 0x00005555556aa385 in sal_main () at desktop/source/app/main.c:51
> #48 0x00005555556aa353 in main (argc=1, argv=0x7fffffffd1e8) at desktop/source/app/main.c:49