Hi there,
I was surprised to discover (when re-working gengal) that if you do
some drawinglayer operations then it is necessary to shut-down UNO by
disposing some UNO component - before exiting - to avoid some rather
nasty atexit / static cleanup SEGV :-) One of those things is triggered
by importing svgs into galleries using gengal.
I was wondering if there was some cppuhelper etc. place to publicise /
centralise this fact :-) it seems we do it in desktop/ and also now
gengal/. I append a trace of the clean shutdown path and the problematic
one.
Thoughts ?
Michael.
#1 0xb62775e7 in (anonymous namespace)::ImpTimedRefDev::~ImpTimedRefDev (this=0x89e6c28,
__in_chrg=<optimized out>)
at /data/opt/libreoffice/master/drawinglayer/source/primitive2d/textlayoutdevice.cxx:82
#2 0xb6277640 in (anonymous namespace)::ImpTimedRefDev::~ImpTimedRefDev (this=0x89e6c28,
__in_chrg=<optimized out>)
at /data/opt/libreoffice/master/drawinglayer/source/primitive2d/textlayoutdevice.cxx:84
#3 0xb6277565 in checked_delete<{anonymous}::ImpTimedRefDev> (x=<optimized out>)
at
/data/opt/libreoffice/master/workdir/unxlngi6.pro/UnpackedTarball/boost/boost/checked_delete.hpp:34
#4 boost::scoped_ptr<{anonymous}::ImpTimedRefDev>::~scoped_ptr(void) (this=<optimized out>,
__in_chrg=<optimized out>)
at
/data/opt/libreoffice/master/workdir/unxlngi6.pro/UnpackedTarball/boost/boost/smart_ptr/scoped_ptr.hpp:80
#5 0xb6277587 in reset (p=0x0, this=0xb6317efc)
at
/data/opt/libreoffice/master/workdir/unxlngi6.pro/UnpackedTarball/boost/boost/smart_ptr/scoped_ptr.hpp:86
#6 comphelper::scoped_disposing_ptr<{anonymous}::ImpTimedRefDev>::reset((anonymous
namespace)::ImpTimedRefDev *) (this=0xb6317ef8, p=0x0)
at /data/opt/libreoffice/master/solver/unxlngi6.pro/inc/comphelper/scoped_disposing_ptr.hxx:61
#7 0xb627874c in disposing (this=0x87bb870, rEvt=<optimized out>)
at /data/opt/libreoffice/master/solver/unxlngi6.pro/inc/comphelper/scoped_disposing_ptr.hxx:138
#8
comphelper::scoped_disposing_ptr<{anonymous}::ImpTimedRefDev>::TerminateListener::disposing(const
com::sun::star::lang::EventObject &) (
this=0x87bb870, rEvt=...) at
/data/opt/libreoffice/master/solver/unxlngi6.pro/inc/comphelper/scoped_disposing_ptr.hxx:122
#9 0xb7a309fc in cppu::OInterfaceContainerHelper::disposeAndClear (this=0x89e1058, rEvt=...)
at /data/opt/libreoffice/master/cppuhelper/source/interfacecontainer.cxx:316
#10 0xb7a30bf5 in cppu::OMultiTypeInterfaceContainerHelper::disposeAndClear (this=0x80bca48,
rEvt=...)
at /data/opt/libreoffice/master/cppuhelper/source/interfacecontainer.cxx:491
#11 0xb7a2e7d1 in cppu::WeakComponentImplHelperBase::dispose (this=0x80bca30) at
/data/opt/libreoffice/master/cppuhelper/source/implbase.cxx:267
#12 0xb7a1ae02 in cppu::WeakComponentImplHelper2<com::sun::star::uno::XComponentContext,
com::sun::star::container::XNameContainer>::dispose (
this=0x80bca30) at
/data/opt/libreoffice/master/solver/unxlngi6.pro/inc/cppuhelper/compbase2.hxx:66
#13 0xb7f37c2b in desktop::Desktop::DeInit (this=0xbfffed0c) at
/data/opt/libreoffice/master/desktop/source/app/app.cxx:673
vs.
Program received signal SIGSEGV, Segmentation fault.
0xb74b6d6c in hash_iterator_base (b=0x99999999, this=<optimized out>)
at
/data/opt/libreoffice/master/workdir/unxlngi6.pro/UnpackedTarball/boost/boost/unordered/detail/fwd.hpp:225
225 node_(b ? b->next_ : node_ptr()) {}
(gdb) bt
#0 0xb74b6d6c in hash_iterator_base (b=0x99999999, this=<optimized out>)
at
/data/opt/libreoffice/master/workdir/unxlngi6.pro/UnpackedTarball/boost/boost/unordered/detail/fwd.hpp:225
#1 begin (this=0x8a667c4) at
/data/opt/libreoffice/master/workdir/unxlngi6.pro/UnpackedTarball/boost/boost/unordered/detail/fwd.hpp:502
#2 begin (this=0x8a667c4) at
/data/opt/libreoffice/master/workdir/unxlngi6.pro/UnpackedTarball/boost/boost/unordered/unordered_map.hpp:253
#3 ServerFont::GarbageCollect (this=0x8a667c0, nMinLruIndex=-1449551463) at
/data/opt/libreoffice/master/vcl/generic/glyphs/glyphcache.cxx:399
#4 0xb74b6e84 in GlyphCache::GarbageCollect (this=0x890ed50) at
/data/opt/libreoffice/master/vcl/generic/glyphs/glyphcache.cxx:289
...
#11 0xb73ff9b0 in VirtualDevice::~VirtualDevice (this=0x876d5c0, __in_chrg=<optimized out>)
at /data/opt/libreoffice/master/vcl/source/gdi/virdev.cxx:202
#12 0xb5885593 in (anonymous namespace)::ImpTimedRefDev::~ImpTimedRefDev (this=0x88563d8,
__in_chrg=<optimized out>)
at /data/opt/libreoffice/master/drawinglayer/source/primitive2d/textlayoutdevice.cxx:82
#13 0xb58855da in (anonymous namespace)::ImpTimedRefDev::~ImpTimedRefDev (this=0x88563d8,
__in_chrg=<optimized out>)
at /data/opt/libreoffice/master/drawinglayer/source/primitive2d/textlayoutdevice.cxx:83
#14 0xb5885515 in checked_delete<{anonymous}::ImpTimedRefDev> (x=<optimized out>)
at
/data/opt/libreoffice/master/workdir/unxlngi6.pro/UnpackedTarball/boost/boost/checked_delete.hpp:34
...
#18 0xb5885fdc in
comphelper::scoped_disposing_ptr<{anonymous}::ImpTimedRefDev>::~scoped_disposing_ptr(void)
(this=0xb5924ef8,
__in_chrg=<optimized out>) at
/data/opt/libreoffice/master/solver/unxlngi6.pro/inc/comphelper/scoped_disposing_ptr.hxx:86
#19 0xb681d931 in __run_exit_handlers (status=0, listp=0xb6956304, run_list_atexit=true) at
exit.c:78
#20 0xb681d9bd in __GI_exit (status=0) at exit.c:100
--
michael.meeks@suse.com <><, Pseudo Engineer, itinerant idiot
Context
- shutting down UNO ... · Michael Meeks
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.