[Libreoffice-commits] core.git: vcl/source

Stephan Bergmann sbergman at redhat.com
Thu Dec 14 06:54:50 UTC 2017


 vcl/source/app/svmain.cxx |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 099877b179c50a9b5f9f8be114886166944c7ff3
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Wed Dec 13 17:54:13 2017 +0100

    Move call to Scheduler::ImplDeInitScheduler in DeInitVCL back to orig. place
    
    Dec 13 16:18:27 <sberg> jmux, any reason
     fd0fff67798fea87217e65bb1561aa0d0e741c51 moved the call to
     Scheduler::ImplDeInitScheduler() in DeInitVCL (vcl/source/app/svmain.cxx) past
     the call to the pSVData->maDeInitHook?
    Dec 13 16:18:30 <IZBot> core - Assert active Tasks on scheduler de-init -
     http://cgit.freedesktop.org/libreoffice/core/commit/?id=fd0fff67798fea87217e65bb1561aa0d0e741c51
    Dec 13 16:20:06 <sberg> jmux, observing a crash in
     CppunitTest_dbaccess_firebird_test here when
     comphelper::geProcessServiceFactory wants to be used after it has been cleared,
     <https://paste.fedoraproject.org/paste/H8bVCcpNjSipm59Ih952nw>
    Dec 13 16:22:41 <jmux> sberg: no. That was still during the analysis with all
     those static tasks and cleanup problems.
    Dec 13 16:23:17 <sberg> jmux, I'll see what breaks if I move the call back to
     its original place, then
    
    The relevant backtraces from
    <https://paste.fedoraproject.org/paste/H8bVCcpNjSipm59Ih952nw>:
    
    > #0  0x00007fffee08c160 in comphelper::setProcessServiceFactory(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&) (xSMgr=...) at comphelper/source/processfactory/processfactory.cxx:55
    > #1  0x00007fffe8b120eb in (anonymous namespace)::Hook::deinitHook((anonymous namespace)::Hook*, LinkParamNone*) () at test/source/setupvcl.cxx:54
    > #2  0x00007fffe8b11f8d in (anonymous namespace)::Hook::LinkStubdeinitHook(void*, LinkParamNone*) (instance=0x0, data=0x0) at test/source/setupvcl.cxx:37
    > #3  0x00007fffe76a9cb1 in Link<LinkParamNone*, void>::Call(LinkParamNone*) const (this=0x7fffe8374418 <rtl::Static<ImplSVData, (anonymous namespace)::private_aImplSVData>::get()::instance+984>, data=0x0) at include/tools/link.hxx:84
    > #4  0x00007fffe79c5baf in DeInitVCL() () at vcl/source/app/svmain.cxx:517
    > #5  0x00007fffe8d1cc0a in (anonymous namespace)::Protector::~Protector() (this=0x6f6b50, __in_chrg=<optimized out>) at test/source/vclbootstrapprotector.cxx:34
    > #6  0x00007fffe8d1cc5e in (anonymous namespace)::Protector::~Protector() (this=0x6f6b50, __in_chrg=<optimized out>) at test/source/vclbootstrapprotector.cxx:43
    > #7  0x00007ffff7b962f3 in CppUnit::ProtectorChain::pop() (this=0x630e00) at ProtectorChain.cpp:56
    > #8  0x00007ffff7ba65d4 in CppUnit::TestResult::popProtector() (this=0x7fffffff2870) at TestResult.cpp:196
    > #9  0x0000000000408998 in (anonymous namespace)::ProtectedFixtureFunctor::run() const (this=0x7fffffff2840) at sal/cppunittester/cppunittester.cxx:328
    > #10 0x0000000000409484 in sal_main() () at sal/cppunittester/cppunittester.cxx:469
    > #11 0x000000000040900b in main(int, char**) (argc=23, argv=0x7fffffff2be8) at sal/cppunittester/cppunittester.cxx:376
    
    and
    
    > #0  0x00007fffee08c213 in comphelper::getProcessServiceFactory() () at comphelper/source/processfactory/processfactory.cxx:64
    > #1  0x00007fffee08c651 in comphelper::getProcessComponentContext() () at comphelper/source/processfactory/processfactory.cxx:96
    > #2  0x00007fffe79a7281 in setupPersonaHeaderFooter(WhichPersona, rtl::OUString&, BitmapEx&, boost::optional<Color>&) (eWhich=PERSONA_HEADER, rHeaderFooter=..., rHeaderFooterBitmap=..., rMenuBarTextColor=...) at vcl/source/app/settings.cxx:2135
    > #3  0x00007fffe79a7c96 in StyleSettings::GetPersonaHeader() const (this=0x15d7130) at vcl/source/app/settings.cxx:2214
    > #4  0x00007fffe757285f in MenuBarWindow::ApplySettings(OutputDevice&) (this=0x1644ee0, rRenderContext=...) at vcl/source/window/menubarwindow.cxx:1022
    > #5  0x00007fffe7488fdb in PaintHelper::DoPaint(vcl::Region const*) (this=0x7fffffff1720, pRegion=0x0) at vcl/source/window/paint.cxx:298
    > #6  0x00007fffe748a74e in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) (this=0x1644ee0, pRegion=0x0, nPaintFlags=(ImplPaintFlags::PaintAll | ImplPaintFlags::PaintAllChildren | ImplPaintFlags::PaintChildren | ImplPaintFlags::Erase)) at vcl/source/window/paint.cxx:606
    > #7  0x00007fffe748a0e5 in PaintHelper::~PaintHelper() (this=0x7fffffff1890, __in_chrg=<optimized out>) at vcl/source/window/paint.cxx:540
    > #8  0x00007fffe748a7a7 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) (this=0x1510d40, pRegion=0x0, nPaintFlags=ImplPaintFlags::PaintChildren) at vcl/source/window/paint.cxx:603
    > #9  0x00007fffe748a8ea in vcl::Window::ImplCallOverlapPaint() (this=0x1510d40) at vcl/source/window/paint.cxx:630
    > #10 0x00007fffe748aa34 in vcl::Window::ImplHandlePaintHdl(Timer*) (this=0x1510d40) at vcl/source/window/paint.cxx:651
    > #11 0x00007fffe748a929 in vcl::Window::LinkStubImplHandlePaintHdl(void*, Timer*) (instance=0x1510d40, data=0x1511940) at vcl/source/window/paint.cxx:634
    > #12 0x00007fffe79c7f33 in Link<Timer*, void>::Call(Timer*) const (this=0x1511960, data=0x1511940) at include/tools/link.hxx:84
    > #13 0x00007fffe79c7d97 in Timer::Invoke() (this=0x1511940) at vcl/source/app/timer.cxx:76
    > #14 0x00007fffe799a873 in Scheduler::ProcessTaskScheduling() () at vcl/source/app/scheduler.cxx:440
    > #15 0x00007fffe7999d95 in Scheduler::CallbackTaskScheduling() () at vcl/source/app/scheduler.cxx:263
    > #16 0x00007fffe7ad3bbb in SalTimer::CallCallback() (this=0x156fbc0) at vcl/inc/saltimer.hxx:55
    > #17 0x00007fffe7ad3209 in SvpSalInstance::CheckTimeout(bool) (this=0x730900, bExecuteTimers=true) at vcl/headless/svpinst.cxx:188
    > #18 0x00007fffe7ad35b8 in SvpSalInstance::DoYield(bool, bool) (this=0x730900, bWait=false, bHandleAllCurrentEvents=true) at vcl/headless/svpinst.cxx:272
    > #19 0x00007fffe79be4a1 in ImplYield(bool, bool) (i_bWait=false, i_bAllEvents=true) at vcl/source/app/svapp.cxx:469
    > #20 0x00007fffe79ba4c7 in Application::Reschedule(bool) (i_bAllEvents=true) at vcl/source/app/svapp.cxx:486
    > #21 0x00007fffe79ba4f9 in Scheduler::ProcessEventsToIdle() () at vcl/source/app/svapp.cxx:492
    > #22 0x00007fffe79991a9 in Scheduler::ImplDeInitScheduler() () at vcl/source/app/scheduler.cxx:114
    > #23 0x00007fffe79c5f80 in DeInitVCL() () at vcl/source/app/svmain.cxx:579
    > #24 0x00007fffe8d1cc0a in (anonymous namespace)::Protector::~Protector() (this=0x6f6b50, __in_chrg=<optimized out>) at test/source/vclbootstrapprotector.cxx:34
    > #25 0x00007fffe8d1cc5e in (anonymous namespace)::Protector::~Protector() (this=0x6f6b50, __in_chrg=<optimized out>) at test/source/vclbootstrapprotector.cxx:43
    > #26 0x00007ffff7b962f3 in CppUnit::ProtectorChain::pop() (this=0x630e00) at ProtectorChain.cpp:56
    > #27 0x00007ffff7ba65d4 in CppUnit::TestResult::popProtector() (this=0x7fffffff2870) at TestResult.cpp:196
    > #28 0x0000000000408998 in (anonymous namespace)::ProtectedFixtureFunctor::run() const (this=0x7fffffff2840) at sal/cppunittester/cppunittester.cxx:328
    > #29 0x0000000000409484 in sal_main() () at sal/cppunittester/cppunittester.cxx:469
    > #30 0x000000000040900b in main(int, char**) (argc=23, argv=0x7fffffff2be8) at sal/cppunittester/cppunittester.cxx:376
    
    Change-Id: I75ee6a7b663f6117f004877fc9ba5a3ed79d66e4
    Reviewed-on: https://gerrit.libreoffice.org/46415
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx
index 528e797c1abc..10d65ad2802c 100644
--- a/vcl/source/app/svmain.cxx
+++ b/vcl/source/app/svmain.cxx
@@ -469,6 +469,8 @@ void DeInitVCL()
         pSVData->mpSettingsConfigItem = nullptr;
     }
 
+    Scheduler::ImplDeInitScheduler();
+
     pSVData->maWinData.maMsgBoxImgList.clear();
     pSVData->maCtrlData.maCheckImgList.clear();
     pSVData->maCtrlData.maRadioImgList.clear();
@@ -576,8 +578,6 @@ void DeInitVCL()
     delete pSVData->maGDIData.mpScreenFontCache;
     pSVData->maGDIData.mpScreenFontCache = nullptr;
 
-    Scheduler::ImplDeInitScheduler();
-
     // destroy all Sal interfaces before destroying the instance
     // and thereby unloading the plugin
     delete pSVData->mpSalSystem;


More information about the Libreoffice-commits mailing list