Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


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


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.