-
-
Notifications
You must be signed in to change notification settings - Fork 641
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BugL #16
BugL #16
Conversation
...as it causes ThreadSanitizer failures during CppunitTest_basic_macros: > WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=27295) > Cycle in lock order graph: M290054517485674432 (0x000000000000) => M2405 (0x7b0c000054c0) => M290054517485674432 > > Mutex M2405 acquired here while holding mutex M290054517485674432 in main thread: > #0 pthread_mutex_lock compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:3800 (cppunittester+0x45ad87) > LibreOffice#1 osl_acquireMutex sal/osl/unx/mutex.cxx:97:16 (libuno_sal.so.3+0xc1ffa) > LibreOffice#2 osl::Mutex::acquire() include/osl/mutex.hxx:56:20 (libutllo.so+0xc06c8) > LibreOffice#3 osl::Guard<osl::Mutex>::Guard(osl::Mutex&) include/osl/mutex.hxx:129:17 (libutllo.so+0xbcccf) > LibreOffice#4 SvtSysLocaleOptions::SvtSysLocaleOptions() unotools/source/config/syslocaleoptions.cxx:504:16 (libutllo.so+0x21a4cd) > LibreOffice#5 SvNumberFormatterRegistry_Impl::SvNumberFormatterRegistry_Impl() svl/source/numbers/zforlist.cxx:184:33 (libsvllo.so+0x3da143) > LibreOffice#6 SvNumberFormatter::GetFormatterRegistry() svl/source/numbers/zforlist.cxx:368:34 (libsvllo.so+0x3e0a70) > LibreOffice#7 SvNumberFormatter::ImpConstruct(o3tl::strong_int<unsigned short, LanguageTypeTag>) svl/source/numbers/zforlist.cxx:322:5 (libsvllo.so+0x3dc328) > LibreOffice#8 SvNumberFormatter::SvNumberFormatter(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, o3tl::strong_int<unsigned short, LanguageTypeTag>) svl/source/numbers/zforlist.cxx:263:5 (libsvllo.so+0x3dbcb9) > LibreOffice#9 SbiScanner::NextSym() basic/source/comp/scanner.cxx:563:31 (libsblo.so+0x267d29) > LibreOffice#10 SbiTokenizer::Next() basic/source/comp/token.cxx:327:10 (libsblo.so+0x2771b8) > LibreOffice#11 SbModule::SetSource32(rtl::OUString const&) basic/source/classes/sbxmod.cxx:912:26 (libsblo.so+0x203ac8) > LibreOffice#12 StarBASIC::MakeModule(rtl::OUString const&, com::sun::star::script::ModuleInfo const&, rtl::OUString const&) basic/source/classes/sb.cxx:1065:8 (libsblo.so+0x16559a) > LibreOffice#13 StarBASIC::MakeModule(rtl::OUString const&, rtl::OUString const&) basic/source/classes/sb.cxx:1037:12 (libsblo.so+0x164fdc) > LibreOffice#14 MacroSnippet::MakeModule(rtl::OUString const&) basic/qa/cppunit/basictest.cxx:29:22 (libtest_basic_macros.so+0xa7ac) > LibreOffice#15 MacroSnippet::LoadSourceFromFile(rtl::OUString const&) basic/qa/cppunit/basictest.cxx:72:5 (libtest_basic_macros.so+0xb240) > LibreOffice#16 (anonymous namespace)::Coverage::run_test(rtl::OUString const&) basic/qa/cppunit/basic_coverage.cxx:75:15 (libtest_basic_macros.so+0x113d9) > LibreOffice#17 (anonymous namespace)::Coverage::process_directory(rtl::OUString const&) basic/qa/cppunit/basic_coverage.cxx:126:17 (libtest_basic_macros.so+0x10f46) > LibreOffice#18 (anonymous namespace)::Coverage::Coverage_Iterator() basic/qa/cppunit/basic_coverage.cxx:141:5 (libtest_basic_macros.so+0x1066e) > LibreOffice#19 void std::__invoke_impl<void, void ((anonymous namespace)::Coverage::* const&)(), (anonymous namespace)::Coverage*&>(std::__invoke_memfun_deref, void ((anonymous namespace)::Coverage::* const&)(), (anonymous namespace)::Coverage*&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:227:14 (libtest_basic_macros.so+0x12ffe) > LibreOffice#20 std::result_of<void ((anonymous namespace)::Coverage::* const&((anonymous namespace)::Coverage*&))()>::type std::__invoke<void ((anonymous namespace)::Coverage::* const&)(), (anonymous namespace)::Coverage*&>(void ((anonymous namespace)::Coverage::* const&)(), (anonymous namespace)::Coverage*&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:250:14 (libtest_basic_macros.so+0x12eed) > LibreOffice#21 _ZNKSt12_Mem_fn_baseIMN12_GLOBAL__N_18CoverageEFvvELb1EEclIJRPS1_EEEDTclsr3stdE8__invokedtdefpT6_M_pmfspclsr3stdE7forwardIT_Efp_EEEDpOS8_ /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:604:11 (libtest_basic_macros.so+0x12dcb) > LibreOffice#22 void std::_Bind<std::_Mem_fn<void ((anonymous namespace)::Coverage::*)()> ((anonymous namespace)::Coverage*)>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:933:11 (libtest_basic_macros.so+0x12d3b) > LibreOffice#23 void std::_Bind<std::_Mem_fn<void ((anonymous namespace)::Coverage::*)()> ((anonymous namespace)::Coverage*)>::operator()<, void>() /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:991:17 (libtest_basic_macros.so+0x12c46) > LibreOffice#24 std::_Function_handler<void (), std::_Bind<std::_Mem_fn<void ((anonymous namespace)::Coverage::*)()> ((anonymous namespace)::Coverage*)> >::_M_invoke(std::_Any_data const&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:1731:2 (libtest_basic_macros.so+0x1260a) > LibreOffice#25 std::function<void ()>::operator()() const /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:2127:14 (libtest_basic_macros.so+0x1a6be) > LibreOffice#26 CppUnit::TestCaller<(anonymous namespace)::Coverage>::runTest() workdir/UnpackedTarball/cppunit/include/cppunit/TestCaller.h:175:7 (libtest_basic_macros.so+0x11dac) > LibreOffice#27 CppUnit::TestCaseMethodFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:32:5 (libcppunit-1.14.so.0+0xd61d2) > LibreOffice#28 (anonymous namespace)::Protector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) test/source/vclbootstrapprotector.cxx:39:14 (libvclbootstrapprotector.so+0x1114) > LibreOffice#29 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#30 (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) unotest/source/cpp/unobootstrapprotector/unobootstrapprotector.cxx:89:12 (unobootstrapprotector.so+0x2204) > LibreOffice#31 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#32 (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) unotest/source/cpp/unoexceptionprotector/unoexceptionprotector.cxx:63:16 (unoexceptionprotector.so+0x23e9) > LibreOffice#33 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#34 CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) workdir/UnpackedTarball/cppunit/src/cppunit/DefaultProtector.cpp:15:12 (libcppunit-1.14.so.0+0xa57ad) > LibreOffice#35 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#36 CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:86:18 (libcppunit-1.14.so.0+0xc4a96) > LibreOffice#37 CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:182:28 (libcppunit-1.14.so.0+0xf4714) > LibreOffice#38 CppUnit::TestCase::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:91:13 (libcppunit-1.14.so.0+0xd5750) > LibreOffice#39 CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 (libcppunit-1.14.so.0+0xd6d5a) > LibreOffice#40 CppUnit::TestComposite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 (libcppunit-1.14.so.0+0xd6a2e) > LibreOffice#41 CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 (libcppunit-1.14.so.0+0xd6d5a) > LibreOffice#42 CppUnit::TestComposite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 (libcppunit-1.14.so.0+0xd6a2e) > LibreOffice#43 CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:47:27 (libcppunit-1.14.so.0+0x10282c) > #44 CppUnit::TestResult::runTest(CppUnit::Test*) workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:149:9 (libcppunit-1.14.so.0+0xf4223) > #45 CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:96:14 (libcppunit-1.14.so.0+0x102c76) > #46 (anonymous namespace)::ProtectedFixtureFunctor::run() const sal/cppunittester/cppunittester.cxx:316:20 (cppunittester+0x4bd528) > #47 sal_main() sal/cppunittester/cppunittester.cxx:466:20 (cppunittester+0x4bc15e) > #48 main sal/cppunittester/cppunittester.cxx:373:1 (cppunittester+0x4bb9d5) > > Mutex M290054517485674432 previously acquired by the same thread here: > #0 pthread_mutex_lock compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:3800 (cppunittester+0x45ad87) > LibreOffice#1 osl_acquireMutex sal/osl/unx/mutex.cxx:97:16 (libuno_sal.so.3+0xc1ffa) > LibreOffice#2 osl::Mutex::acquire() include/osl/mutex.hxx:56:20 (libsvllo.so+0xeced8) > LibreOffice#3 osl::Guard<osl::Mutex>::Guard(osl::Mutex&) include/osl/mutex.hxx:129:17 (libsvllo.so+0xf3b4f) > LibreOffice#4 SvNumberFormatter::ImpConstruct(o3tl::strong_int<unsigned short, LanguageTypeTag>) svl/source/numbers/zforlist.cxx:321:23 (libsvllo.so+0x3dc31e) > LibreOffice#5 SvNumberFormatter::SvNumberFormatter(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, o3tl::strong_int<unsigned short, LanguageTypeTag>) svl/source/numbers/zforlist.cxx:263:5 (libsvllo.so+0x3dbcb9) > LibreOffice#6 SbiScanner::NextSym() basic/source/comp/scanner.cxx:563:31 (libsblo.so+0x267d29) > LibreOffice#7 SbiTokenizer::Next() basic/source/comp/token.cxx:327:10 (libsblo.so+0x2771b8) > LibreOffice#8 SbModule::SetSource32(rtl::OUString const&) basic/source/classes/sbxmod.cxx:912:26 (libsblo.so+0x203ac8) > LibreOffice#9 StarBASIC::MakeModule(rtl::OUString const&, com::sun::star::script::ModuleInfo const&, rtl::OUString const&) basic/source/classes/sb.cxx:1065:8 (libsblo.so+0x16559a) > LibreOffice#10 StarBASIC::MakeModule(rtl::OUString const&, rtl::OUString const&) basic/source/classes/sb.cxx:1037:12 (libsblo.so+0x164fdc) > LibreOffice#11 MacroSnippet::MakeModule(rtl::OUString const&) basic/qa/cppunit/basictest.cxx:29:22 (libtest_basic_macros.so+0xa7ac) > LibreOffice#12 MacroSnippet::LoadSourceFromFile(rtl::OUString const&) basic/qa/cppunit/basictest.cxx:72:5 (libtest_basic_macros.so+0xb240) > LibreOffice#13 (anonymous namespace)::Coverage::run_test(rtl::OUString const&) basic/qa/cppunit/basic_coverage.cxx:75:15 (libtest_basic_macros.so+0x113d9) > LibreOffice#14 (anonymous namespace)::Coverage::process_directory(rtl::OUString const&) basic/qa/cppunit/basic_coverage.cxx:126:17 (libtest_basic_macros.so+0x10f46) > LibreOffice#15 (anonymous namespace)::Coverage::Coverage_Iterator() basic/qa/cppunit/basic_coverage.cxx:141:5 (libtest_basic_macros.so+0x1066e) > LibreOffice#16 void std::__invoke_impl<void, void ((anonymous namespace)::Coverage::* const&)(), (anonymous namespace)::Coverage*&>(std::__invoke_memfun_deref, void ((anonymous namespace)::Coverage::* const&)(), (anonymous namespace)::Coverage*&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:227:14 (libtest_basic_macros.so+0x12ffe) > LibreOffice#17 std::result_of<void ((anonymous namespace)::Coverage::* const&((anonymous namespace)::Coverage*&))()>::type std::__invoke<void ((anonymous namespace)::Coverage::* const&)(), (anonymous namespace)::Coverage*&>(void ((anonymous namespace)::Coverage::* const&)(), (anonymous namespace)::Coverage*&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:250:14 (libtest_basic_macros.so+0x12eed) > LibreOffice#18 _ZNKSt12_Mem_fn_baseIMN12_GLOBAL__N_18CoverageEFvvELb1EEclIJRPS1_EEEDTclsr3stdE8__invokedtdefpT6_M_pmfspclsr3stdE7forwardIT_Efp_EEEDpOS8_ /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:604:11 (libtest_basic_macros.so+0x12dcb) > LibreOffice#19 void std::_Bind<std::_Mem_fn<void ((anonymous namespace)::Coverage::*)()> ((anonymous namespace)::Coverage*)>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:933:11 (libtest_basic_macros.so+0x12d3b) > LibreOffice#20 void std::_Bind<std::_Mem_fn<void ((anonymous namespace)::Coverage::*)()> ((anonymous namespace)::Coverage*)>::operator()<, void>() /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:991:17 (libtest_basic_macros.so+0x12c46) > LibreOffice#21 std::_Function_handler<void (), std::_Bind<std::_Mem_fn<void ((anonymous namespace)::Coverage::*)()> ((anonymous namespace)::Coverage*)> >::_M_invoke(std::_Any_data const&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:1731:2 (libtest_basic_macros.so+0x1260a) > LibreOffice#22 std::function<void ()>::operator()() const /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:2127:14 (libtest_basic_macros.so+0x1a6be) > LibreOffice#23 CppUnit::TestCaller<(anonymous namespace)::Coverage>::runTest() workdir/UnpackedTarball/cppunit/include/cppunit/TestCaller.h:175:7 (libtest_basic_macros.so+0x11dac) > LibreOffice#24 CppUnit::TestCaseMethodFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:32:5 (libcppunit-1.14.so.0+0xd61d2) > LibreOffice#25 (anonymous namespace)::Protector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) test/source/vclbootstrapprotector.cxx:39:14 (libvclbootstrapprotector.so+0x1114) > LibreOffice#26 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#27 (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) unotest/source/cpp/unobootstrapprotector/unobootstrapprotector.cxx:89:12 (unobootstrapprotector.so+0x2204) > LibreOffice#28 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#29 (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) unotest/source/cpp/unoexceptionprotector/unoexceptionprotector.cxx:63:16 (unoexceptionprotector.so+0x23e9) > LibreOffice#30 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#31 CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) workdir/UnpackedTarball/cppunit/src/cppunit/DefaultProtector.cpp:15:12 (libcppunit-1.14.so.0+0xa57ad) > LibreOffice#32 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#33 CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:86:18 (libcppunit-1.14.so.0+0xc4a96) > LibreOffice#34 CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:182:28 (libcppunit-1.14.so.0+0xf4714) > LibreOffice#35 CppUnit::TestCase::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:91:13 (libcppunit-1.14.so.0+0xd5750) > LibreOffice#36 CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 (libcppunit-1.14.so.0+0xd6d5a) > LibreOffice#37 CppUnit::TestComposite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 (libcppunit-1.14.so.0+0xd6a2e) > LibreOffice#38 CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 (libcppunit-1.14.so.0+0xd6d5a) > LibreOffice#39 CppUnit::TestComposite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 (libcppunit-1.14.so.0+0xd6a2e) > LibreOffice#40 CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:47:27 (libcppunit-1.14.so.0+0x10282c) > LibreOffice#41 CppUnit::TestResult::runTest(CppUnit::Test*) workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:149:9 (libcppunit-1.14.so.0+0xf4223) > LibreOffice#42 CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:96:14 (libcppunit-1.14.so.0+0x102c76) > LibreOffice#43 (anonymous namespace)::ProtectedFixtureFunctor::run() const sal/cppunittester/cppunittester.cxx:316:20 (cppunittester+0x4bd528) > #44 sal_main() sal/cppunittester/cppunittester.cxx:466:20 (cppunittester+0x4bc15e) > #45 main sal/cppunittester/cppunittester.cxx:373:1 (cppunittester+0x4bb9d5) > > Mutex M290054517485674432 acquired here while holding mutex M2405 in main thread: > #0 pthread_mutex_lock compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:3800 (cppunittester+0x45ad87) > LibreOffice#1 osl_acquireMutex sal/osl/unx/mutex.cxx:97:16 (libuno_sal.so.3+0xc1ffa) > LibreOffice#2 osl::Mutex::acquire() include/osl/mutex.hxx:56:20 (libsvllo.so+0xeced8) > LibreOffice#3 osl::Guard<osl::Mutex>::Guard(osl::Mutex&) include/osl/mutex.hxx:129:17 (libsvllo.so+0xf3b4f) > LibreOffice#4 SvNumberFormatter::CurrencyChangeLink(SvNumberFormatter*, LinkParamNone*) svl/source/numbers/zforlist.cxx:3320:23 (libsvllo.so+0x3f7282) > LibreOffice#5 SvNumberFormatter::LinkStubCurrencyChangeLink(void*, LinkParamNone*) svl/source/numbers/zforlist.cxx:3318:1 (libsvllo.so+0x3f71f8) > LibreOffice#6 Link<LinkParamNone*, void>::Call(LinkParamNone*) const include/tools/link.hxx:84:45 (libutllo.so+0x21cfa0) > LibreOffice#7 SvtSysLocaleOptions::ConfigurationChanged(utl::ConfigurationBroadcaster*, ConfigurationHints) unotools/source/config/syslocaleoptions.cxx:674:15 (libutllo.so+0x21c06f) > LibreOffice#8 non-virtual thunk to SvtSysLocaleOptions::ConfigurationChanged(utl::ConfigurationBroadcaster*, ConfigurationHints) unotools/source/config/syslocaleoptions.cxx (libutllo.so+0x21c118) > LibreOffice#9 utl::ConfigurationBroadcaster::NotifyListeners(ConfigurationHints) unotools/source/config/options.cxx:78:33 (libutllo.so+0x1cd63f) > LibreOffice#10 SvtSysLocaleOptions_Impl::SetLocaleString(rtl::OUString const&) unotools/source/config/syslocaleoptions.cxx:390:9 (libutllo.so+0x21935d) > LibreOffice#11 SvtSysLocaleOptions::SetLocaleConfigString(rtl::OUString const&) unotools/source/config/syslocaleoptions.cxx:555:12 (libutllo.so+0x21adcc) > LibreOffice#12 (anonymous namespace)::Coverage::Coverage_Iterator() basic/qa/cppunit/basic_coverage.cxx:156:31 (libtest_basic_macros.so+0x108e4) > LibreOffice#13 void std::__invoke_impl<void, void ((anonymous namespace)::Coverage::* const&)(), (anonymous namespace)::Coverage*&>(std::__invoke_memfun_deref, void ((anonymous namespace)::Coverage::* const&)(), (anonymous namespace)::Coverage*&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:227:14 (libtest_basic_macros.so+0x12ffe) > LibreOffice#14 std::result_of<void ((anonymous namespace)::Coverage::* const&((anonymous namespace)::Coverage*&))()>::type std::__invoke<void ((anonymous namespace)::Coverage::* const&)(), (anonymous namespace)::Coverage*&>(void ((anonymous namespace)::Coverage::* const&)(), (anonymous namespace)::Coverage*&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:250:14 (libtest_basic_macros.so+0x12eed) > LibreOffice#15 _ZNKSt12_Mem_fn_baseIMN12_GLOBAL__N_18CoverageEFvvELb1EEclIJRPS1_EEEDTclsr3stdE8__invokedtdefpT6_M_pmfspclsr3stdE7forwardIT_Efp_EEEDpOS8_ /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:604:11 (libtest_basic_macros.so+0x12dcb) > LibreOffice#16 void std::_Bind<std::_Mem_fn<void ((anonymous namespace)::Coverage::*)()> ((anonymous namespace)::Coverage*)>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:933:11 (libtest_basic_macros.so+0x12d3b) > LibreOffice#17 void std::_Bind<std::_Mem_fn<void ((anonymous namespace)::Coverage::*)()> ((anonymous namespace)::Coverage*)>::operator()<, void>() /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:991:17 (libtest_basic_macros.so+0x12c46) > LibreOffice#18 std::_Function_handler<void (), std::_Bind<std::_Mem_fn<void ((anonymous namespace)::Coverage::*)()> ((anonymous namespace)::Coverage*)> >::_M_invoke(std::_Any_data const&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:1731:2 (libtest_basic_macros.so+0x1260a) > LibreOffice#19 std::function<void ()>::operator()() const /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:2127:14 (libtest_basic_macros.so+0x1a6be) > LibreOffice#20 CppUnit::TestCaller<(anonymous namespace)::Coverage>::runTest() workdir/UnpackedTarball/cppunit/include/cppunit/TestCaller.h:175:7 (libtest_basic_macros.so+0x11dac) > LibreOffice#21 CppUnit::TestCaseMethodFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:32:5 (libcppunit-1.14.so.0+0xd61d2) > LibreOffice#22 (anonymous namespace)::Protector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) test/source/vclbootstrapprotector.cxx:39:14 (libvclbootstrapprotector.so+0x1114) > LibreOffice#23 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#24 (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) unotest/source/cpp/unobootstrapprotector/unobootstrapprotector.cxx:89:12 (unobootstrapprotector.so+0x2204) > LibreOffice#25 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#26 (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) unotest/source/cpp/unoexceptionprotector/unoexceptionprotector.cxx:63:16 (unoexceptionprotector.so+0x23e9) > LibreOffice#27 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#28 CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) workdir/UnpackedTarball/cppunit/src/cppunit/DefaultProtector.cpp:15:12 (libcppunit-1.14.so.0+0xa57ad) > LibreOffice#29 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#30 CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:86:18 (libcppunit-1.14.so.0+0xc4a96) > LibreOffice#31 CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:182:28 (libcppunit-1.14.so.0+0xf4714) > LibreOffice#32 CppUnit::TestCase::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:91:13 (libcppunit-1.14.so.0+0xd5750) > LibreOffice#33 CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 (libcppunit-1.14.so.0+0xd6d5a) > LibreOffice#34 CppUnit::TestComposite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 (libcppunit-1.14.so.0+0xd6a2e) > LibreOffice#35 CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 (libcppunit-1.14.so.0+0xd6d5a) > LibreOffice#36 CppUnit::TestComposite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 (libcppunit-1.14.so.0+0xd6a2e) > LibreOffice#37 CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:47:27 (libcppunit-1.14.so.0+0x10282c) > LibreOffice#38 CppUnit::TestResult::runTest(CppUnit::Test*) workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:149:9 (libcppunit-1.14.so.0+0xf4223) > LibreOffice#39 CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:96:14 (libcppunit-1.14.so.0+0x102c76) > LibreOffice#40 (anonymous namespace)::ProtectedFixtureFunctor::run() const sal/cppunittester/cppunittester.cxx:316:20 (cppunittester+0x4bd528) > LibreOffice#41 sal_main() sal/cppunittester/cppunittester.cxx:466:20 (cppunittester+0x4bc15e) > LibreOffice#42 main sal/cppunittester/cppunittester.cxx:373:1 (cppunittester+0x4bb9d5) > > Mutex M2405 previously acquired by the same thread here: > #0 pthread_mutex_lock compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:3800 (cppunittester+0x45ad87) > LibreOffice#1 osl_acquireMutex sal/osl/unx/mutex.cxx:97:16 (libuno_sal.so.3+0xc1ffa) > LibreOffice#2 osl::Mutex::acquire() include/osl/mutex.hxx:56:20 (libutllo.so+0xc06c8) > LibreOffice#3 osl::Guard<osl::Mutex>::Guard(osl::Mutex&) include/osl/mutex.hxx:129:17 (libutllo.so+0xbcccf) > LibreOffice#4 SvtSysLocaleOptions::SetLocaleConfigString(rtl::OUString const&) unotools/source/config/syslocaleoptions.cxx:554:16 (libutllo.so+0x21adab) > LibreOffice#5 (anonymous namespace)::Coverage::Coverage_Iterator() basic/qa/cppunit/basic_coverage.cxx:156:31 (libtest_basic_macros.so+0x108e4) > LibreOffice#6 void std::__invoke_impl<void, void ((anonymous namespace)::Coverage::* const&)(), (anonymous namespace)::Coverage*&>(std::__invoke_memfun_deref, void ((anonymous namespace)::Coverage::* const&)(), (anonymous namespace)::Coverage*&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:227:14 (libtest_basic_macros.so+0x12ffe) > LibreOffice#7 std::result_of<void ((anonymous namespace)::Coverage::* const&((anonymous namespace)::Coverage*&))()>::type std::__invoke<void ((anonymous namespace)::Coverage::* const&)(), (anonymous namespace)::Coverage*&>(void ((anonymous namespace)::Coverage::* const&)(), (anonymous namespace)::Coverage*&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:250:14 (libtest_basic_macros.so+0x12eed) > LibreOffice#8 _ZNKSt12_Mem_fn_baseIMN12_GLOBAL__N_18CoverageEFvvELb1EEclIJRPS1_EEEDTclsr3stdE8__invokedtdefpT6_M_pmfspclsr3stdE7forwardIT_Efp_EEEDpOS8_ /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:604:11 (libtest_basic_macros.so+0x12dcb) > LibreOffice#9 void std::_Bind<std::_Mem_fn<void ((anonymous namespace)::Coverage::*)()> ((anonymous namespace)::Coverage*)>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:933:11 (libtest_basic_macros.so+0x12d3b) > LibreOffice#10 void std::_Bind<std::_Mem_fn<void ((anonymous namespace)::Coverage::*)()> ((anonymous namespace)::Coverage*)>::operator()<, void>() /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:991:17 (libtest_basic_macros.so+0x12c46) > LibreOffice#11 std::_Function_handler<void (), std::_Bind<std::_Mem_fn<void ((anonymous namespace)::Coverage::*)()> ((anonymous namespace)::Coverage*)> >::_M_invoke(std::_Any_data const&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:1731:2 (libtest_basic_macros.so+0x1260a) > LibreOffice#12 std::function<void ()>::operator()() const /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:2127:14 (libtest_basic_macros.so+0x1a6be) > LibreOffice#13 CppUnit::TestCaller<(anonymous namespace)::Coverage>::runTest() workdir/UnpackedTarball/cppunit/include/cppunit/TestCaller.h:175:7 (libtest_basic_macros.so+0x11dac) > LibreOffice#14 CppUnit::TestCaseMethodFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:32:5 (libcppunit-1.14.so.0+0xd61d2) > LibreOffice#15 (anonymous namespace)::Protector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) test/source/vclbootstrapprotector.cxx:39:14 (libvclbootstrapprotector.so+0x1114) > LibreOffice#16 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#17 (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) unotest/source/cpp/unobootstrapprotector/unobootstrapprotector.cxx:89:12 (unobootstrapprotector.so+0x2204) > LibreOffice#18 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#19 (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) unotest/source/cpp/unoexceptionprotector/unoexceptionprotector.cxx:63:16 (unoexceptionprotector.so+0x23e9) > LibreOffice#20 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#21 CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) workdir/UnpackedTarball/cppunit/src/cppunit/DefaultProtector.cpp:15:12 (libcppunit-1.14.so.0+0xa57ad) > LibreOffice#22 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#23 CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:86:18 (libcppunit-1.14.so.0+0xc4a96) > LibreOffice#24 CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:182:28 (libcppunit-1.14.so.0+0xf4714) > LibreOffice#25 CppUnit::TestCase::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:91:13 (libcppunit-1.14.so.0+0xd5750) > LibreOffice#26 CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 (libcppunit-1.14.so.0+0xd6d5a) > LibreOffice#27 CppUnit::TestComposite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 (libcppunit-1.14.so.0+0xd6a2e) > LibreOffice#28 CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 (libcppunit-1.14.so.0+0xd6d5a) > LibreOffice#29 CppUnit::TestComposite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 (libcppunit-1.14.so.0+0xd6a2e) > LibreOffice#30 CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:47:27 (libcppunit-1.14.so.0+0x10282c) > LibreOffice#31 CppUnit::TestResult::runTest(CppUnit::Test*) workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:149:9 (libcppunit-1.14.so.0+0xf4223) > LibreOffice#32 CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:96:14 (libcppunit-1.14.so.0+0x102c76) > LibreOffice#33 (anonymous namespace)::ProtectedFixtureFunctor::run() const sal/cppunittester/cppunittester.cxx:316:20 (cppunittester+0x4bd528) > LibreOffice#34 sal_main() sal/cppunittester/cppunittester.cxx:466:20 (cppunittester+0x4bc15e) > LibreOffice#35 main sal/cppunittester/cppunittester.cxx:373:1 (cppunittester+0x4bb9d5) Change-Id: I2dc13b1e8a5f58155b2df4679bd1c1d73819cb6f
...during CppunitTest_vcl_lifecycle: > WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=7827) > Cycle in lock order graph: M526212022946269680 (0x000000000000) => M536063647131142976 (0x000000000000) => M526212022946269680 > > Mutex M536063647131142976 acquired here while holding mutex M526212022946269680 in main thread: > #0 pthread_mutex_lock compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:3800 (cppunittester+0x45aec7) > LibreOffice#1 osl_acquireMutex sal/osl/unx/mutex.cxx:97:16 (libuno_sal.so.3+0xc1ffa) > LibreOffice#2 osl::Mutex::acquire() include/osl/mutex.hxx:56:20 (libsvtlo.so+0x2f0b88) > LibreOffice#3 osl::ClearableGuard<osl::Mutex>::ClearableGuard(osl::Mutex&) include/osl/mutex.hxx:163:17 (libsvtlo.so+0x39bdaf) > LibreOffice#4 osl::ResettableGuard<osl::Mutex>::ResettableGuard(osl::Mutex&) include/osl/mutex.hxx:208:17 (libsvtlo.so+0x3971ac) > LibreOffice#5 svtools::ItemHolder2::impl_addItem(EItem) svtools/source/config/itemholder2.cxx:92:33 (libsvtlo.so+0x395f9e) > LibreOffice#6 svtools::ItemHolder2::holdConfigItem(EItem) svtools/source/config/itemholder2.cxx:80:14 (libsvtlo.so+0x395eaf) > LibreOffice#7 SvtHelpOptions::SvtHelpOptions() svtools/source/config/helpopt.cxx:250:9 (libsvtlo.so+0x38e571) > LibreOffice#8 SfxApplication::GetOrCreate() sfx2/source/appl/app.cxx:159:53 (libsfxlo.so+0x3afeef) > LibreOffice#9 (anonymous namespace)::SfxGlobalEvents_Impl::SfxGlobalEvents_Impl(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) sfx2/source/notify/globalevents.cxx:149:5 (libsfxlo.so+0xc5f054) > LibreOffice#10 (anonymous namespace)::Instance::Instance(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) sfx2/source/notify/globalevents.cxx:422:50 (libsfxlo.so+0xc5eca7) > LibreOffice#11 rtl::StaticWithArg<(anonymous namespace)::Instance, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext>, (anonymous namespace)::Singleton>::get(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) include/rtl/instance.hxx:455:18 (libsfxlo.so+0xc5ebc6) > LibreOffice#12 com_sun_star_comp_sfx2_GlobalEventBroadcaster_get_implementation sfx2/source/notify/globalevents.cxx:441:17 (libsfxlo.so+0xc5ea16) > LibreOffice#13 std::_Function_handler<com::sun::star::uno::XInterface* (com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&), com::sun::star::uno::XInterface* (*)(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)>::_M_invoke(std::_Any_data const&, com::sun::star::uno::XComponentContext*&&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:1716:9 (libuno_cppuhelpergcc3.so.3+0x19b166) > LibreOffice#14 std::function<com::sun::star::uno::XInterface* (com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)>::operator()(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&) const /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:2127:14 (libuno_cppuhelpergcc3.so.3+0x14f50d) > LibreOffice#15 cppuhelper::ServiceManager::Data::Implementation::createInstance(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, bool) cppuhelper/source/servicemanager.cxx:665:13 (libuno_cppuhelpergcc3.so.3+0x134ccb) > LibreOffice#16 (anonymous namespace)::SingletonFactory::createInstanceWithContext(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) cppuhelper/source/servicemanager.cxx:521:29 (libuno_cppuhelpergcc3.so.3+0x14938e) > LibreOffice#17 non-virtual thunk to (anonymous namespace)::SingletonFactory::createInstanceWithContext(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) cppuhelper/source/servicemanager.cxx (libuno_cppuhelpergcc3.so.3+0x1494e6) > LibreOffice#18 cppu::ComponentContext::lookupMap(rtl::OUString const&) cppuhelper/source/component_context.cxx:308:25 (libuno_cppuhelpergcc3.so.3+0x5afc9) > LibreOffice#19 cppu::ComponentContext::getValueByName(rtl::OUString const&) cppuhelper/source/component_context.cxx:382:14 (libuno_cppuhelpergcc3.so.3+0x5c234) > LibreOffice#20 non-virtual thunk to cppu::ComponentContext::getValueByName(rtl::OUString const&) cppuhelper/source/component_context.cxx (libuno_cppuhelpergcc3.so.3+0x5c406) > LibreOffice#21 com::sun::star::frame::theGlobalEventBroadcaster::get(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) workdir/UnoApiHeadersTarget/offapi/normal/com/sun/star/frame/theGlobalEventBroadcaster.hpp:36:22 (libvcllo.so+0x5e785b) > LibreOffice#22 Dialog::StateChanged(StateChangedType) vcl/source/window/dialog.cxx:694:84 (libvcllo.so+0x5e210a) > LibreOffice#23 vcl::Window::CompatStateChanged(StateChangedType) vcl/source/window/window.cxx:3704:5 (libvcllo.so+0x861862) > LibreOffice#24 vcl::Window::Show(bool, ShowFlags) vcl/source/window/window.cxx:2281:9 (libvcllo.so+0x85e752) > LibreOffice#25 LifecycleTest::testLeakage() vcl/qa/cppunit/lifecycle.cxx:309:25 (libtest_vcl_lifecycle.so+0x52bb6) > LibreOffice#26 void std::__invoke_impl<void, void (LifecycleTest::* const&)(), LifecycleTest*&>(std::__invoke_memfun_deref, void (LifecycleTest::* const&)(), LifecycleTest*&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:227:14 (libtest_vcl_lifecycle.so+0x806fe) > LibreOffice#27 std::result_of<void (LifecycleTest::* const&(LifecycleTest*&))()>::type std::__invoke<void (LifecycleTest::* const&)(), LifecycleTest*&>(void (LifecycleTest::* const&)(), LifecycleTest*&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:250:14 (libtest_vcl_lifecycle.so+0x805ed) > LibreOffice#28 _ZNKSt12_Mem_fn_baseIM13LifecycleTestFvvELb1EEclIJRPS0_EEEDTclsr3stdE8__invokedtdefpT6_M_pmfspclsr3stdE7forwardIT_Efp_EEEDpOS7_ /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:604:11 (libtest_vcl_lifecycle.so+0x804cb) > LibreOffice#29 void std::_Bind<std::_Mem_fn<void (LifecycleTest::*)()> (LifecycleTest*)>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:933:11 (libtest_vcl_lifecycle.so+0x8042b) > LibreOffice#30 void std::_Bind<std::_Mem_fn<void (LifecycleTest::*)()> (LifecycleTest*)>::operator()<, void>() /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:991:17 (libtest_vcl_lifecycle.so+0x802f6) > LibreOffice#31 std::_Function_handler<void (), std::_Bind<std::_Mem_fn<void (LifecycleTest::*)()> (LifecycleTest*)> >::_M_invoke(std::_Any_data const&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:1731:2 (libtest_vcl_lifecycle.so+0x7fbda) > LibreOffice#32 std::function<void ()>::operator()() const /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:2127:14 (libtest_vcl_lifecycle.so+0x80a3e) > LibreOffice#33 CppUnit::TestCaller<LifecycleTest>::runTest() workdir/UnpackedTarball/cppunit/include/cppunit/TestCaller.h:175:7 (libtest_vcl_lifecycle.so+0x7f32c) > LibreOffice#34 CppUnit::TestCaseMethodFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:32:5 (libcppunit-1.14.so.0+0xd61d2) > LibreOffice#35 (anonymous namespace)::Protector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) test/source/vclbootstrapprotector.cxx:39:14 (libvclbootstrapprotector.so+0x1114) > LibreOffice#36 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#37 (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) unotest/source/cpp/unobootstrapprotector/unobootstrapprotector.cxx:89:12 (unobootstrapprotector.so+0x2204) > LibreOffice#38 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#39 (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) unotest/source/cpp/unoexceptionprotector/unoexceptionprotector.cxx:63:16 (unoexceptionprotector.so+0x23e9) > LibreOffice#40 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#41 CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) workdir/UnpackedTarball/cppunit/src/cppunit/DefaultProtector.cpp:15:12 (libcppunit-1.14.so.0+0xa57ad) > LibreOffice#42 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#43 CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:86:18 (libcppunit-1.14.so.0+0xc4a96) > #44 CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:182:28 (libcppunit-1.14.so.0+0xf4714) > #45 CppUnit::TestCase::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:91:13 (libcppunit-1.14.so.0+0xd5750) > #46 CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 (libcppunit-1.14.so.0+0xd6d5a) > #47 CppUnit::TestComposite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 (libcppunit-1.14.so.0+0xd6a2e) > #48 CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 (libcppunit-1.14.so.0+0xd6d5a) > #49 CppUnit::TestComposite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 (libcppunit-1.14.so.0+0xd6a2e) > #50 CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:47:27 (libcppunit-1.14.so.0+0x10282c) > #51 CppUnit::TestResult::runTest(CppUnit::Test*) workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:149:9 (libcppunit-1.14.so.0+0xf4223) > #52 CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:96:14 (libcppunit-1.14.so.0+0x102c76) > #53 (anonymous namespace)::ProtectedFixtureFunctor::run() const sal/cppunittester/cppunittester.cxx:316:20 (cppunittester+0x4bd658) > #54 sal_main() sal/cppunittester/cppunittester.cxx:466:20 (cppunittester+0x4bc28e) > #55 main sal/cppunittester/cppunittester.cxx:373:1 (cppunittester+0x4bbb05) > > Mutex M526212022946269680 previously acquired by the same thread here: > #0 pthread_mutex_lock compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:3800 (cppunittester+0x45aec7) > LibreOffice#1 osl_acquireMutex sal/osl/unx/mutex.cxx:97:16 (libuno_sal.so.3+0xc1ffa) > LibreOffice#2 osl::Mutex::acquire() include/osl/mutex.hxx:56:20 (libsvtlo.so+0x2f0b88) > LibreOffice#3 osl::Guard<osl::Mutex>::Guard(osl::Mutex&) include/osl/mutex.hxx:129:17 (libsvtlo.so+0x353f1f) > LibreOffice#4 SvtHelpOptions::SvtHelpOptions() svtools/source/config/helpopt.cxx:243:23 (libsvtlo.so+0x38e48d) > LibreOffice#5 SfxApplication::GetOrCreate() sfx2/source/appl/app.cxx:159:53 (libsfxlo.so+0x3afeef) > LibreOffice#6 (anonymous namespace)::SfxGlobalEvents_Impl::SfxGlobalEvents_Impl(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) sfx2/source/notify/globalevents.cxx:149:5 (libsfxlo.so+0xc5f054) > LibreOffice#7 (anonymous namespace)::Instance::Instance(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) sfx2/source/notify/globalevents.cxx:422:50 (libsfxlo.so+0xc5eca7) > LibreOffice#8 rtl::StaticWithArg<(anonymous namespace)::Instance, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext>, (anonymous namespace)::Singleton>::get(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) include/rtl/instance.hxx:455:18 (libsfxlo.so+0xc5ebc6) > LibreOffice#9 com_sun_star_comp_sfx2_GlobalEventBroadcaster_get_implementation sfx2/source/notify/globalevents.cxx:441:17 (libsfxlo.so+0xc5ea16) > LibreOffice#10 std::_Function_handler<com::sun::star::uno::XInterface* (com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&), com::sun::star::uno::XInterface* (*)(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)>::_M_invoke(std::_Any_data const&, com::sun::star::uno::XComponentContext*&&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:1716:9 (libuno_cppuhelpergcc3.so.3+0x19b166) > LibreOffice#11 std::function<com::sun::star::uno::XInterface* (com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)>::operator()(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&) const /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:2127:14 (libuno_cppuhelpergcc3.so.3+0x14f50d) > LibreOffice#12 cppuhelper::ServiceManager::Data::Implementation::createInstance(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, bool) cppuhelper/source/servicemanager.cxx:665:13 (libuno_cppuhelpergcc3.so.3+0x134ccb) > LibreOffice#13 (anonymous namespace)::SingletonFactory::createInstanceWithContext(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) cppuhelper/source/servicemanager.cxx:521:29 (libuno_cppuhelpergcc3.so.3+0x14938e) > LibreOffice#14 non-virtual thunk to (anonymous namespace)::SingletonFactory::createInstanceWithContext(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) cppuhelper/source/servicemanager.cxx (libuno_cppuhelpergcc3.so.3+0x1494e6) > LibreOffice#15 cppu::ComponentContext::lookupMap(rtl::OUString const&) cppuhelper/source/component_context.cxx:308:25 (libuno_cppuhelpergcc3.so.3+0x5afc9) > LibreOffice#16 cppu::ComponentContext::getValueByName(rtl::OUString const&) cppuhelper/source/component_context.cxx:382:14 (libuno_cppuhelpergcc3.so.3+0x5c234) > LibreOffice#17 non-virtual thunk to cppu::ComponentContext::getValueByName(rtl::OUString const&) cppuhelper/source/component_context.cxx (libuno_cppuhelpergcc3.so.3+0x5c406) > LibreOffice#18 com::sun::star::frame::theGlobalEventBroadcaster::get(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) workdir/UnoApiHeadersTarget/offapi/normal/com/sun/star/frame/theGlobalEventBroadcaster.hpp:36:22 (libvcllo.so+0x5e785b) > LibreOffice#19 Dialog::StateChanged(StateChangedType) vcl/source/window/dialog.cxx:694:84 (libvcllo.so+0x5e210a) > LibreOffice#20 vcl::Window::CompatStateChanged(StateChangedType) vcl/source/window/window.cxx:3704:5 (libvcllo.so+0x861862) > LibreOffice#21 vcl::Window::Show(bool, ShowFlags) vcl/source/window/window.cxx:2281:9 (libvcllo.so+0x85e752) > LibreOffice#22 LifecycleTest::testLeakage() vcl/qa/cppunit/lifecycle.cxx:309:25 (libtest_vcl_lifecycle.so+0x52bb6) > LibreOffice#23 void std::__invoke_impl<void, void (LifecycleTest::* const&)(), LifecycleTest*&>(std::__invoke_memfun_deref, void (LifecycleTest::* const&)(), LifecycleTest*&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:227:14 (libtest_vcl_lifecycle.so+0x806fe) > LibreOffice#24 std::result_of<void (LifecycleTest::* const&(LifecycleTest*&))()>::type std::__invoke<void (LifecycleTest::* const&)(), LifecycleTest*&>(void (LifecycleTest::* const&)(), LifecycleTest*&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:250:14 (libtest_vcl_lifecycle.so+0x805ed) > LibreOffice#25 _ZNKSt12_Mem_fn_baseIM13LifecycleTestFvvELb1EEclIJRPS0_EEEDTclsr3stdE8__invokedtdefpT6_M_pmfspclsr3stdE7forwardIT_Efp_EEEDpOS7_ /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:604:11 (libtest_vcl_lifecycle.so+0x804cb) > LibreOffice#26 void std::_Bind<std::_Mem_fn<void (LifecycleTest::*)()> (LifecycleTest*)>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:933:11 (libtest_vcl_lifecycle.so+0x8042b) > LibreOffice#27 void std::_Bind<std::_Mem_fn<void (LifecycleTest::*)()> (LifecycleTest*)>::operator()<, void>() /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:991:17 (libtest_vcl_lifecycle.so+0x802f6) > LibreOffice#28 std::_Function_handler<void (), std::_Bind<std::_Mem_fn<void (LifecycleTest::*)()> (LifecycleTest*)> >::_M_invoke(std::_Any_data const&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:1731:2 (libtest_vcl_lifecycle.so+0x7fbda) > LibreOffice#29 std::function<void ()>::operator()() const /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:2127:14 (libtest_vcl_lifecycle.so+0x80a3e) > LibreOffice#30 CppUnit::TestCaller<LifecycleTest>::runTest() workdir/UnpackedTarball/cppunit/include/cppunit/TestCaller.h:175:7 (libtest_vcl_lifecycle.so+0x7f32c) > LibreOffice#31 CppUnit::TestCaseMethodFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:32:5 (libcppunit-1.14.so.0+0xd61d2) > LibreOffice#32 (anonymous namespace)::Protector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) test/source/vclbootstrapprotector.cxx:39:14 (libvclbootstrapprotector.so+0x1114) > LibreOffice#33 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#34 (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) unotest/source/cpp/unobootstrapprotector/unobootstrapprotector.cxx:89:12 (unobootstrapprotector.so+0x2204) > LibreOffice#35 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#36 (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) unotest/source/cpp/unoexceptionprotector/unoexceptionprotector.cxx:63:16 (unoexceptionprotector.so+0x23e9) > LibreOffice#37 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#38 CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) workdir/UnpackedTarball/cppunit/src/cppunit/DefaultProtector.cpp:15:12 (libcppunit-1.14.so.0+0xa57ad) > LibreOffice#39 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#40 CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:86:18 (libcppunit-1.14.so.0+0xc4a96) > LibreOffice#41 CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:182:28 (libcppunit-1.14.so.0+0xf4714) > LibreOffice#42 CppUnit::TestCase::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:91:13 (libcppunit-1.14.so.0+0xd5750) > LibreOffice#43 CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 (libcppunit-1.14.so.0+0xd6d5a) > #44 CppUnit::TestComposite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 (libcppunit-1.14.so.0+0xd6a2e) > #45 CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 (libcppunit-1.14.so.0+0xd6d5a) > #46 CppUnit::TestComposite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 (libcppunit-1.14.so.0+0xd6a2e) > #47 CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:47:27 (libcppunit-1.14.so.0+0x10282c) > #48 CppUnit::TestResult::runTest(CppUnit::Test*) workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:149:9 (libcppunit-1.14.so.0+0xf4223) > #49 CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:96:14 (libcppunit-1.14.so.0+0x102c76) > #50 (anonymous namespace)::ProtectedFixtureFunctor::run() const sal/cppunittester/cppunittester.cxx:316:20 (cppunittester+0x4bd658) > #51 sal_main() sal/cppunittester/cppunittester.cxx:466:20 (cppunittester+0x4bc28e) > #52 main sal/cppunittester/cppunittester.cxx:373:1 (cppunittester+0x4bbb05) > > Mutex M526212022946269680 acquired here while holding mutex M536063647131142976 in main thread: > #0 pthread_mutex_lock compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:3800 (cppunittester+0x45aec7) > LibreOffice#1 osl_acquireMutex sal/osl/unx/mutex.cxx:97:16 (libuno_sal.so.3+0xc1ffa) > LibreOffice#2 osl::Mutex::acquire() include/osl/mutex.hxx:56:20 (libsvtlo.so+0x2f0b88) > LibreOffice#3 osl::Guard<osl::Mutex>::Guard(osl::Mutex&) include/osl/mutex.hxx:129:17 (libsvtlo.so+0x353f1f) > LibreOffice#4 SvtHelpOptions::~SvtHelpOptions() svtools/source/config/helpopt.cxx:257:23 (libsvtlo.so+0x38e6df) > LibreOffice#5 SvtHelpOptions::~SvtHelpOptions() svtools/source/config/helpopt.cxx:255:1 (libsvtlo.so+0x38e7dc) > LibreOffice#6 svtools::ItemHolder2::impl_deleteItem(TItemInfo&) svtools/source/config/itemholder2.cxx:171:9 (libsvtlo.so+0x396829) > LibreOffice#7 svtools::ItemHolder2::impl_releaseAllItems() svtools/source/config/itemholder2.cxx:122:9 (libsvtlo.so+0x395ca9) > LibreOffice#8 svtools::ItemHolder2::disposing(com::sun::star::lang::EventObject const&) svtools/source/config/itemholder2.cxx:86:5 (libsvtlo.so+0x396224) > LibreOffice#9 non-virtual thunk to svtools::ItemHolder2::disposing(com::sun::star::lang::EventObject const&) svtools/source/config/itemholder2.cxx (libsvtlo.so+0x39628c) > LibreOffice#10 cppu::OInterfaceContainerHelper::disposeAndClear(com::sun::star::lang::EventObject const&) cppuhelper/source/interfacecontainer.cxx:300:23 (libuno_cppuhelpergcc3.so.3+0xba149) > LibreOffice#11 cppu::OMultiTypeInterfaceContainerHelper::disposeAndClear(com::sun::star::lang::EventObject const&) cppuhelper/source/interfacecontainer.cxx:472:38 (libuno_cppuhelpergcc3.so.3+0xbb6a5) > LibreOffice#12 cppu::WeakComponentImplHelperBase::dispose() cppuhelper/source/implbase.cxx:101:30 (libuno_cppuhelpergcc3.so.3+0xb0de8) > LibreOffice#13 cppu::PartialWeakComponentImplHelper<com::sun::star::lang::XServiceInfo, com::sun::star::lang::XMultiServiceFactory, com::sun::star::util::XRefreshable, com::sun::star::util::XFlushable, com::sun::star::lang::XLocalizable>::dispose() include/cppuhelper/compbase.hxx:93:36 (libconfigmgrlo.so+0x119098) > LibreOffice#14 non-virtual thunk to cppu::PartialWeakComponentImplHelper<com::sun::star::lang::XServiceInfo, com::sun::star::lang::XMultiServiceFactory, com::sun::star::util::XRefreshable, com::sun::star::util::XFlushable, com::sun::star::lang::XLocalizable>::dispose() include/cppuhelper/compbase.hxx (libconfigmgrlo.so+0x11939c) > LibreOffice#15 cppu::ComponentContext::disposing() cppuhelper/source/component_context.cxx:451:28 (libuno_cppuhelpergcc3.so.3+0x5cdc0) > LibreOffice#16 cppu::WeakComponentImplHelperBase::dispose() cppuhelper/source/implbase.cxx:102:17 (libuno_cppuhelpergcc3.so.3+0xb0e09) > LibreOffice#17 cppu::PartialWeakComponentImplHelper<com::sun::star::uno::XComponentContext, com::sun::star::container::XNameContainer>::dispose() include/cppuhelper/compbase.hxx:93:36 (libuno_cppuhelpergcc3.so.3+0x65a88) > LibreOffice#18 non-virtual thunk to cppu::PartialWeakComponentImplHelper<com::sun::star::uno::XComponentContext, com::sun::star::container::XNameContainer>::dispose() include/cppuhelper/compbase.hxx (libuno_cppuhelpergcc3.so.3+0x65d8c) > LibreOffice#19 (anonymous namespace)::Hook::deinitHook((anonymous namespace)::Hook*, LinkParamNone*) test/source/setupvcl.cxx:53:50 (libtest-setupvcl.so+0x2aa0) > LibreOffice#20 (anonymous namespace)::Hook::LinkStubdeinitHook(void*, LinkParamNone*) test/source/setupvcl.cxx:37:1 (libtest-setupvcl.so+0x27f8) > LibreOffice#21 Link<LinkParamNone*, void>::Call(LinkParamNone*) const include/tools/link.hxx:84:45 (libvcllo.so+0x996ae0) > LibreOffice#22 DeInitVCL() vcl/source/app/svmain.cxx:519:35 (libvcllo.so+0x10f4f06) > LibreOffice#23 (anonymous namespace)::Protector::~Protector() test/source/vclbootstrapprotector.cxx:31:9 (libvclbootstrapprotector.so+0x100a) > LibreOffice#24 (anonymous namespace)::Protector::~Protector() test/source/vclbootstrapprotector.cxx:30:35 (libvclbootstrapprotector.so+0x109c) > LibreOffice#25 CppUnit::ProtectorChain::pop() workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:56:3 (libcppunit-1.14.so.0+0xc46cb) > LibreOffice#26 CppUnit::TestResult::popProtector() workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:196:21 (libcppunit-1.14.so.0+0xf4873) > LibreOffice#27 (anonymous namespace)::ProtectedFixtureFunctor::run() const sal/cppunittester/cppunittester.cxx:325:20 (cppunittester+0x4bd84f) > LibreOffice#28 sal_main() sal/cppunittester/cppunittester.cxx:466:20 (cppunittester+0x4bc28e) > LibreOffice#29 main sal/cppunittester/cppunittester.cxx:373:1 (cppunittester+0x4bbb05) > > Mutex M536063647131142976 previously acquired by the same thread here: > #0 pthread_mutex_lock compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:3800 (cppunittester+0x45aec7) > LibreOffice#1 osl_acquireMutex sal/osl/unx/mutex.cxx:97:16 (libuno_sal.so.3+0xc1ffa) > LibreOffice#2 osl::Mutex::acquire() include/osl/mutex.hxx:56:20 (libsvtlo.so+0x2f0b88) > LibreOffice#3 osl::ClearableGuard<osl::Mutex>::ClearableGuard(osl::Mutex&) include/osl/mutex.hxx:163:17 (libsvtlo.so+0x39bdaf) > LibreOffice#4 osl::ResettableGuard<osl::Mutex>::ResettableGuard(osl::Mutex&) include/osl/mutex.hxx:208:17 (libsvtlo.so+0x3971ac) > LibreOffice#5 svtools::ItemHolder2::impl_releaseAllItems() svtools/source/config/itemholder2.cxx:114:33 (libsvtlo.so+0x395bfc) > LibreOffice#6 svtools::ItemHolder2::disposing(com::sun::star::lang::EventObject const&) svtools/source/config/itemholder2.cxx:86:5 (libsvtlo.so+0x396224) > LibreOffice#7 non-virtual thunk to svtools::ItemHolder2::disposing(com::sun::star::lang::EventObject const&) svtools/source/config/itemholder2.cxx (libsvtlo.so+0x39628c) > LibreOffice#8 cppu::OInterfaceContainerHelper::disposeAndClear(com::sun::star::lang::EventObject const&) cppuhelper/source/interfacecontainer.cxx:300:23 (libuno_cppuhelpergcc3.so.3+0xba149) > LibreOffice#9 cppu::OMultiTypeInterfaceContainerHelper::disposeAndClear(com::sun::star::lang::EventObject const&) cppuhelper/source/interfacecontainer.cxx:472:38 (libuno_cppuhelpergcc3.so.3+0xbb6a5) > LibreOffice#10 cppu::WeakComponentImplHelperBase::dispose() cppuhelper/source/implbase.cxx:101:30 (libuno_cppuhelpergcc3.so.3+0xb0de8) > LibreOffice#11 cppu::PartialWeakComponentImplHelper<com::sun::star::lang::XServiceInfo, com::sun::star::lang::XMultiServiceFactory, com::sun::star::util::XRefreshable, com::sun::star::util::XFlushable, com::sun::star::lang::XLocalizable>::dispose() include/cppuhelper/compbase.hxx:93:36 (libconfigmgrlo.so+0x119098) > LibreOffice#12 non-virtual thunk to cppu::PartialWeakComponentImplHelper<com::sun::star::lang::XServiceInfo, com::sun::star::lang::XMultiServiceFactory, com::sun::star::util::XRefreshable, com::sun::star::util::XFlushable, com::sun::star::lang::XLocalizable>::dispose() include/cppuhelper/compbase.hxx (libconfigmgrlo.so+0x11939c) > LibreOffice#13 cppu::ComponentContext::disposing() cppuhelper/source/component_context.cxx:451:28 (libuno_cppuhelpergcc3.so.3+0x5cdc0) > LibreOffice#14 cppu::WeakComponentImplHelperBase::dispose() cppuhelper/source/implbase.cxx:102:17 (libuno_cppuhelpergcc3.so.3+0xb0e09) > LibreOffice#15 cppu::PartialWeakComponentImplHelper<com::sun::star::uno::XComponentContext, com::sun::star::container::XNameContainer>::dispose() include/cppuhelper/compbase.hxx:93:36 (libuno_cppuhelpergcc3.so.3+0x65a88) > LibreOffice#16 non-virtual thunk to cppu::PartialWeakComponentImplHelper<com::sun::star::uno::XComponentContext, com::sun::star::container::XNameContainer>::dispose() include/cppuhelper/compbase.hxx (libuno_cppuhelpergcc3.so.3+0x65d8c) > LibreOffice#17 (anonymous namespace)::Hook::deinitHook((anonymous namespace)::Hook*, LinkParamNone*) test/source/setupvcl.cxx:53:50 (libtest-setupvcl.so+0x2aa0) > LibreOffice#18 (anonymous namespace)::Hook::LinkStubdeinitHook(void*, LinkParamNone*) test/source/setupvcl.cxx:37:1 (libtest-setupvcl.so+0x27f8) > LibreOffice#19 Link<LinkParamNone*, void>::Call(LinkParamNone*) const include/tools/link.hxx:84:45 (libvcllo.so+0x996ae0) > LibreOffice#20 DeInitVCL() vcl/source/app/svmain.cxx:519:35 (libvcllo.so+0x10f4f06) > LibreOffice#21 (anonymous namespace)::Protector::~Protector() test/source/vclbootstrapprotector.cxx:31:9 (libvclbootstrapprotector.so+0x100a) > LibreOffice#22 (anonymous namespace)::Protector::~Protector() test/source/vclbootstrapprotector.cxx:30:35 (libvclbootstrapprotector.so+0x109c) > LibreOffice#23 CppUnit::ProtectorChain::pop() workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:56:3 (libcppunit-1.14.so.0+0xc46cb) > LibreOffice#24 CppUnit::TestResult::popProtector() workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:196:21 (libcppunit-1.14.so.0+0xf4873) > LibreOffice#25 (anonymous namespace)::ProtectedFixtureFunctor::run() const sal/cppunittester/cppunittester.cxx:325:20 (cppunittester+0x4bd84f) > LibreOffice#26 sal_main() sal/cppunittester/cppunittester.cxx:466:20 (cppunittester+0x4bc28e) > LibreOffice#27 main sal/cppunittester/cppunittester.cxx:373:1 (cppunittester+0x4bbb05) Change-Id: I5995dd31843a673ad006b7a4472c159b53afbcb3
> WARNING: ThreadSanitizer: data race (pid=25817) > Write of size 8 at 0x7b50000108a8 by thread T2: > #0 memset compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:710 (cppunittester+0x46672b) > LibreOffice#1 xsltFreeTransformContext workdir/UnpackedTarball/xslt/libxslt/transform.c:760:5 (libxslt.so.1+0x383a2) > LibreOffice#2 XSLT::Reader::execute() filter/source/xsltfilter/LibXSLTTransformer.cxx:338:9 (libxsltfilterlo.so+0x10aa9) > LibreOffice#3 salhelper::Thread::run() salhelper/source/thread.cxx:40:9 (libuno_salhelpergcc3.so.3+0x5f6c) > LibreOffice#4 non-virtual thunk to salhelper::Thread::run() salhelper/source/thread.cxx (libuno_salhelpergcc3.so.3+0x603c) > LibreOffice#5 threadFunc include/osl/thread.hxx:185:15 (libuno_salhelpergcc3.so.3+0x6fac) > LibreOffice#6 osl_thread_start_Impl(void*) sal/osl/unx/thread.cxx:237:9 (libuno_sal.so.3+0xeb6b5) > > Previous write of size 4 at 0x7b50000108a8 by main thread (mutexes: write M713392882458407696): > #0 XSLT::Reader::forceStateStopped() filter/source/xsltfilter/LibXSLTTransformer.cxx:375:25 (libxsltfilterlo.so+0x1100e) > LibreOffice#1 XSLT::LibXSLTTransformer::~LibXSLTTransformer() filter/source/xsltfilter/LibXSLTTransformer.hxx:127:27 (libxsltfilterlo.so+0x18346) > LibreOffice#2 XSLT::LibXSLTTransformer::~LibXSLTTransformer() filter/source/xsltfilter/LibXSLTTransformer.hxx:124:48 (libxsltfilterlo.so+0x1850c) > LibreOffice#3 cppu::OWeakObject::release() cppuhelper/source/weak.cxx:232:9 (libuno_cppuhelpergcc3.so.3+0x20a527) > LibreOffice#4 cppu::WeakImplHelper<com::sun::star::xml::xslt::XXSLTTransformer>::release() include/cppuhelper/implbase.hxx:112:62 (libxsltfilterlo.so+0x18168) > LibreOffice#5 non-virtual thunk to cppu::WeakImplHelper<com::sun::star::xml::xslt::XXSLTTransformer>::release() include/cppuhelper/implbase.hxx (libxsltfilterlo.so+0x188fc) > LibreOffice#6 com::sun::star::uno::Reference<com::sun::star::xml::xslt::XXSLTTransformer>::~Reference() include/com/sun/star/uno/Reference.hxx:110:22 (libtest_filter_xslt.so+0x14c44) > LibreOffice#7 (anonymous namespace)::XsltFilterTest::testXsltCopyOld() filter/qa/cppunit/xslt-test.cxx:201:1 (libtest_filter_xslt.so+0x94c6) > LibreOffice#8 void std::__invoke_impl<void, void ((anonymous namespace)::XsltFilterTest::* const&)(), (anonymous namespace)::XsltFilterTest*&>(std::__invoke_memfun_deref, void ((anonymous namespace)::XsltFilterTest::* const&)(), (anonymous namespace)::XsltFilterTest*&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:227:14 (libtest_filter_xslt.so+0xeeae) > LibreOffice#9 std::result_of<void ((anonymous namespace)::XsltFilterTest::* const&((anonymous namespace)::XsltFilterTest*&))()>::type std::__invoke<void ((anonymous namespace)::XsltFilterTest::* const&)(), (anonymous namespace)::XsltFilterTest*&>(void ((anonymous namespace)::XsltFilterTest::* const&)(), (anonymous namespace)::XsltFilterTest*&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:250:14 (libtest_filter_xslt.so+0xed9d) > LibreOffice#10 _ZNKSt12_Mem_fn_baseIMN12_GLOBAL__N_114XsltFilterTestEFvvELb1EEclIJRPS1_EEEDTclsr3stdE8__invokedtdefpT6_M_pmfspclsr3stdE7forwardIT_Efp_EEEDpOS8_ /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:604:11 (libtest_filter_xslt.so+0xec7b) > LibreOffice#11 void std::_Bind<std::_Mem_fn<void ((anonymous namespace)::XsltFilterTest::*)()> ((anonymous namespace)::XsltFilterTest*)>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:933:11 (libtest_filter_xslt.so+0xebeb) > LibreOffice#12 void std::_Bind<std::_Mem_fn<void ((anonymous namespace)::XsltFilterTest::*)()> ((anonymous namespace)::XsltFilterTest*)>::operator()<, void>() /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:991:17 (libtest_filter_xslt.so+0xeaf6) > LibreOffice#13 std::_Function_handler<void (), std::_Bind<std::_Mem_fn<void ((anonymous namespace)::XsltFilterTest::*)()> ((anonymous namespace)::XsltFilterTest*)> >::_M_invoke(std::_Any_data const&) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:1731:2 (libtest_filter_xslt.so+0xe4ba) > LibreOffice#14 std::function<void ()>::operator()() const /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:2127:14 (libtest_filter_xslt.so+0x1fb3e) > LibreOffice#15 CppUnit::TestCaller<(anonymous namespace)::XsltFilterTest>::runTest() workdir/UnpackedTarball/cppunit/include/cppunit/TestCaller.h:175:7 (libtest_filter_xslt.so+0xdc5c) > LibreOffice#16 CppUnit::TestCaseMethodFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:32:5 (libcppunit-1.14.so.0+0xd61d2) > LibreOffice#17 (anonymous namespace)::Protector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) test/source/vclbootstrapprotector.cxx:39:14 (libvclbootstrapprotector.so+0x1114) > LibreOffice#18 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#19 (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) unotest/source/cpp/unobootstrapprotector/unobootstrapprotector.cxx:89:12 (unobootstrapprotector.so+0x2204) > LibreOffice#20 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#21 (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) unotest/source/cpp/unoexceptionprotector/unoexceptionprotector.cxx:63:16 (unoexceptionprotector.so+0x23e9) > LibreOffice#22 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#23 CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) workdir/UnpackedTarball/cppunit/src/cppunit/DefaultProtector.cpp:15:12 (libcppunit-1.14.so.0+0xa57ad) > LibreOffice#24 CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (libcppunit-1.14.so.0+0xc7614) > LibreOffice#25 CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:86:18 (libcppunit-1.14.so.0+0xc4a96) > LibreOffice#26 CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:182:28 (libcppunit-1.14.so.0+0xf4714) > LibreOffice#27 CppUnit::TestCase::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:91:13 (libcppunit-1.14.so.0+0xd5750) > LibreOffice#28 CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 (libcppunit-1.14.so.0+0xd6d5a) > LibreOffice#29 CppUnit::TestComposite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 (libcppunit-1.14.so.0+0xd6a2e) > LibreOffice#30 CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 (libcppunit-1.14.so.0+0xd6d5a) > LibreOffice#31 CppUnit::TestComposite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 (libcppunit-1.14.so.0+0xd6a2e) > LibreOffice#32 CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:47:27 (libcppunit-1.14.so.0+0x10282c) > LibreOffice#33 CppUnit::TestResult::runTest(CppUnit::Test*) workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:149:9 (libcppunit-1.14.so.0+0xf4223) > LibreOffice#34 CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:96:14 (libcppunit-1.14.so.0+0x102c76) > LibreOffice#35 (anonymous namespace)::ProtectedFixtureFunctor::run() const sal/cppunittester/cppunittester.cxx:316:20 (cppunittester+0x4bd658) > LibreOffice#36 sal_main() sal/cppunittester/cppunittester.cxx:466:20 (cppunittester+0x4bc28e) > LibreOffice#37 main sal/cppunittester/cppunittester.cxx:373:1 (cppunittester+0x4bbb05) Change-Id: I2bee009247fe00d5b3386327164766822bfa4bf3
...<https://dl.bintray.com/boostorg/release/1.65.1/source/boost_1_65_1.tar.bz2>. One reason to upgrade is that with 1.63 CppunitTest_tools_test started to fail with -fsanitize=signed-integer-overflow after 331e2e5 "long->sal_Int32 in Fraction", > workdir/UnpackedTarball/boost/boost/integer/common_factor_rt.hpp:300:5: runtime error: negation of -2147483648 cannot be represented in type 'int'; cast to an unsigned type to negate this value to itself > #0 0x7f0f99bea71b in boost::integer::detail::gcd_optimal_evaluator<int>::operator()(int, int) const workdir/UnpackedTarball/boost/boost/integer/common_factor_rt.hpp:300:5 > LibreOffice#1 0x7f0f99bea52a in int boost::integer::detail::gcd_optimal<int>(int const&, int const&) workdir/UnpackedTarball/boost/boost/integer/common_factor_rt.hpp:372:16 > LibreOffice#2 0x7f0f99be7d70 in int boost::integer::gcd<int>(int const&, int const&) workdir/UnpackedTarball/boost/boost/integer/common_factor_rt.hpp:435:12 > LibreOffice#3 0x7f0f99be7620 in boost::rational<int>::normalize() workdir/UnpackedTarball/boost/boost/rational.hpp:559:17 > LibreOffice#4 0x7f0f99bdff29 in rational_FromDouble(double) tools/source/generic/fract.cxx:449:12 > LibreOffice#5 0x7f0f99bdf8b4 in Fraction::Fraction(double) tools/source/generic/fract.cxx:93:25 > LibreOffice#6 0x7f0f9a1bb987 in tools::FractionTest::testMinLongDouble() tools/qa/cppunit/test_fract.cxx:79:18 > LibreOffice#7 0x7f0f9a1bddd2 in void std::_Bind<std::_Mem_fn<void (tools::FractionTest::*)()> (tools::FractionTest*)>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:933:11 > LibreOffice#8 0x7f0f9a1bdbe9 in void std::_Bind<std::_Mem_fn<void (tools::FractionTest::*)()> (tools::FractionTest*)>::operator()<, void>() /usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/functional:991:17 > LibreOffice#9 0x7f0fa5eb53b0 in CppUnit::TestCaseMethodFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:32:5 > LibreOffice#10 0x7f0fa5e1bd1b in CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) workdir/UnpackedTarball/cppunit/src/cppunit/DefaultProtector.cpp:15:12 > LibreOffice#11 0x7f0fa5e8653d in CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 > LibreOffice#12 0x7f0fa5e7fb7c in CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:86:18 > LibreOffice#13 0x7f0fa5f17fe0 in CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:182:28 > LibreOffice#14 0x7f0fa5eb398c in CppUnit::TestCase::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:91:13 > LibreOffice#15 0x7f0fa5eb7887 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 > LibreOffice#16 0x7f0fa5eb6a78 in CppUnit::TestComposite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 > LibreOffice#17 0x7f0fa5eb7887 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 > LibreOffice#18 0x7f0fa5eb6a78 in CppUnit::TestComposite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 > LibreOffice#19 0x7f0fa5f46655 in CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:47:27 > LibreOffice#20 0x7f0fa5f16a66 in CppUnit::TestResult::runTest(CppUnit::Test*) workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:149:9 > LibreOffice#21 0x7f0fa5f475c6 in CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:96:14 > LibreOffice#22 0x534a01 in (anonymous namespace)::ProtectedFixtureFunctor::run() const sal/cppunittester/cppunittester.cxx:316:20 > LibreOffice#23 0x532ac4 in sal_main() sal/cppunittester/cppunittester.cxx:466:20 > LibreOffice#24 0x5324f2 in main sal/cppunittester/cppunittester.cxx:373:1 > LibreOffice#25 0x7f0fa436e430 in __libc_start_main /usr/src/debug/glibc-2.24-66-gd5a4092c36/csu/../csu/libc-start.c:289 > LibreOffice#26 0x4387b9 in _start (workdir/LinkTarget/Executable/cppunittester+0x4387b9) Change-Id: Id1c3b216ee18c1d622768dc960ac257d5415c664 Reviewed-on: https://gerrit.libreoffice.org/42427 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
toolbarsmenucontrollers.cxx file Change-Id: I25a842c2be3c6edbc8c0644e78cf36a9e45176a7
Removed 0L and 1L in sw/source/ directory files Change-Id: I5c9a7c2f1ff7cc7a4d204540fd93efdc1b4859cf
Removed 0L, 1L and 2L Change-Id: Icb38de1cdd8e1215a86118b0c8af993025fd790e
Removed 1L and 0L in vcl/ directory files Change-Id: I0f5d134e0602d00ba058d34054b3dbfbc4233983
Removed 1L and 0L in xmloff file Change-Id: I58c2f909495c6255be8ddc8105c2ddbfea24f543
Removing unnecessary 1L occurrences Change-Id: I85d4949eacde0dfc0ff7a513f4bf42324e6d34c1
Please no pull requests, as the heading states this is a read-only (mirrored) repository. Please submit your patches to https://gerrit.libreoffice.org/ instead. See also https://wiki.documentfoundation.org/Development/gerrit |
...during CppunitTest_vcl_pdfexport: > workdir/UnpackedTarball/pdfium/core/fxge/ge/cfx_facecache.cpp:208:18: runtime error: null pointer passed as argument 1, which is declared to never be null > /usr/include/string.h:62:62: note: nonnull attribute specified here > #0 0x2ba8c1d8c685 in CFX_FaceCache::RenderGlyph(CFX_Font const*, unsigned int, bool, CFX_Matrix const*, int, int) workdir/UnpackedTarball/pdfium/core/fxge/ge/cfx_facecache.cpp:208:5 > #1 0x2ba8c1d92007 in CFX_FaceCache::LookUpGlyphBitmap(CFX_Font const*, CFX_Matrix const*, CFX_ByteString const&, unsigned int, bool, int, int) workdir/UnpackedTarball/pdfium/core/fxge/ge/cfx_facecache.cpp:390:35 > #2 0x2ba8c1d90f44 in CFX_FaceCache::LoadGlyphBitmap(CFX_Font const*, unsigned int, bool, CFX_Matrix const*, int, int, int&) workdir/UnpackedTarball/pdfium/core/fxge/ge/cfx_facecache.cpp:307:10 > #3 0x2ba8c1dfd35e in CFX_Font::LoadGlyphBitmap(unsigned int, bool, CFX_Matrix const*, int, int, int&) const workdir/UnpackedTarball/pdfium/core/fxge/ge/cfx_font.cpp:688:26 > #4 0x2ba8c1ef56f0 in CFX_RenderDevice::DrawNormalText(int, FXTEXT_CHARPOS const*, CFX_Font*, float, CFX_Matrix const*, unsigned int, unsigned int) workdir/UnpackedTarball/pdfium/core/fxge/ge/cfx_renderdevice.cpp:946:31 > #5 0x2ba8c13c4e05 in CPDF_TextRenderer::DrawNormalText(CFX_RenderDevice*, std::__debug::vector<unsigned int, std::allocator<unsigned int> > const&, std::__debug::vector<float, std::allocator<float> > const&, CPDF_Font*, float, CFX_Matrix const*, unsigned int, CPDF_RenderOptions const*) workdir/UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_textrenderer.cpp:167:17 > #6 0x2ba8c13141f3 in CPDF_RenderStatus::ProcessText(CPDF_TextObject*, CFX_Matrix const*, CFX_PathData*) workdir/UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp:1777:10 > #7 0x2ba8c130bf5b in CPDF_RenderStatus::ProcessObjectNoClip(CPDF_PageObject*, CFX_Matrix const*) workdir/UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp:1141:14 > #8 0x2ba8c130db5a in CPDF_RenderStatus::ContinueSingleObject(CPDF_PageObject*, CFX_Matrix const*, IFX_Pause*) workdir/UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp:1106:3 > #9 0x2ba8c12df4f2 in CPDF_ProgressiveRenderer::Continue(IFX_Pause*) workdir/UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_progressiverenderer.cpp:78:30 > #10 0x2ba8c12dbae9 in CPDF_ProgressiveRenderer::Start(IFX_Pause*) workdir/UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_progressiverenderer.cpp:39:3 > #11 0x2ba8c0652b76 in (anonymous namespace)::RenderPageImpl(CPDF_PageRenderContext*, CPDF_Page*, CFX_Matrix const&, FX_RECT const&, int, bool, IFSDK_PAUSE_Adapter*) workdir/UnpackedTarball/pdfium/fpdfsdk/fpdfview.cpp:115:26 > #12 0x2ba8c064d8cd in FPDF_RenderPage_Retail(CPDF_PageRenderContext*, void*, int, int, int, int, int, int, bool, IFSDK_PAUSE_Adapter*) workdir/UnpackedTarball/pdfium/fpdfsdk/fpdfview.cpp:986:3 > #13 0x2ba8c064d01d in FPDF_RenderPageBitmap workdir/UnpackedTarball/pdfium/fpdfsdk/fpdfview.cpp:728:3 > #14 0x2ba8b2adf081 in (anonymous namespace)::generatePreview(SvStream&, Graphic&) vcl/source/filter/ipdf/pdfread.cxx:67:5 > #15 0x2ba8b2adddf0 in vcl::ImportPDF(SvStream&, Graphic&) vcl/source/filter/ipdf/pdfread.cxx:109:10 > #16 0x2ba8b298f234 in GraphicFilter::ImportGraphic(Graphic&, rtl::OUString const&, SvStream&, unsigned short, unsigned short*, GraphicFilterImportFlags, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>*, WMF_EXTERNALHEADER*) vcl/source/filter/graphicfilter.cxx:1689:18 > #17 0x2ba8b29846e8 in GraphicFilter::ImportGraphic(Graphic&, rtl::OUString const&, SvStream&, unsigned short, unsigned short*, GraphicFilterImportFlags, WMF_EXTERNALHEADER*) vcl/source/filter/graphicfilter.cxx:1315:12 > #18 0x2ba904b12799 in SwGrfNode::ImportGraphic(SvStream&) sw/source/core/graphic/ndgrf.cxx:458:43 > #19 0x2ba904b0ea43 in SwGrfNode::SwapIn(bool) sw/source/core/graphic/ndgrf.cxx:571:28 > #20 0x2ba904b0fd52 in SwGrfNode::GetGrfObj(bool) const sw/source/core/graphic/ndgrf.cxx:389:35 > #21 0x2ba9037c40f9 in SwNoTextFrame::PaintPicture(OutputDevice*, SwRect const&) const sw/source/core/doc/notxtfrm.cxx:883:48 > #22 0x2ba9037bcec2 in SwNoTextFrame::Paint(OutputDevice&, SwRect const&, SwPrintData const*) const sw/source/core/doc/notxtfrm.cxx:309:9 > #23 0x2ba9052dc0d3 in SwLayoutFrame::Paint(OutputDevice&, SwRect const&, SwPrintData const*) const sw/source/core/layout/paintfrm.cxx:3652:21 > #24 0x2ba9052fdfe8 in SwFlyFrame::Paint(OutputDevice&, SwRect const&, SwPrintData const*) const sw/source/core/layout/paintfrm.cxx:4334:20 > #25 0x2ba9041e2bca in SwVirtFlyDrawObj::wrap_DoPaintObject(drawinglayer::geometry::ViewInformation2D const&) const sw/source/core/draw/dflyobj.cxx:466:30 > #26 0x2ba9041e1964 in drawinglayer::primitive2d::SwVirtFlyDrawObjPrimitive::get2DDecomposition(drawinglayer::primitive2d::Primitive2DDecompositionVisitor&, drawinglayer::geometry::ViewInformation2D const&) const sw/source/core/draw/dflyobj.cxx:228:35 > #27 0x2ba8daf085dc in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::BasePrimitive2D const&) drawinglayer/source/processor2d/baseprocessor2d.cxx:47:24 > #28 0x2ba8db030133 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) drawinglayer/source/processor2d/vclpixelprocessor2d.cxx:1289:21 > #29 0x2ba8daf09165 in drawinglayer::processor2d::BaseProcessor2D::process(drawinglayer::primitive2d::Primitive2DContainer const&) drawinglayer/source/processor2d/baseprocessor2d.cxx:70:29 > #30 0x2ba9361f56e0 in sdr::contact::ObjectContactOfPageView::DoProcessDisplay(sdr::contact::DisplayInfo&) svx/source/sdr/contact/objectcontactofpageview.cxx:325:35 > #31 0x2ba9361f08eb in sdr::contact::ObjectContactOfPageView::ProcessDisplay(sdr::contact::DisplayInfo&) svx/source/sdr/contact/objectcontactofpageview.cxx:124:21 > #32 0x2ba936512f89 in SdrPageWindow::RedrawLayer(unsigned char const*, sdr::contact::ViewObjectContactRedirector*, basegfx::B2IRange const*) svx/source/svdraw/sdrpagewindow.cxx:402:28 > #33 0x2ba93769c0f5 in SdrPageView::DrawLayer(unsigned char, OutputDevice*, sdr::contact::ViewObjectContactRedirector*, tools::Rectangle const&, basegfx::B2IRange const*) svx/source/svdraw/svdpagv.cxx:356:38 > #34 0x2ba907cceb8c in SwViewShellImp::PaintLayer(unsigned char, SwPrintData const*, SwPageFrame const&, SwRect const&, Color const*, bool, sdr::contact::ViewObjectContactRedirector*) sw/source/core/view/vdraw.cxx:146:24 > #35 0x2ba9052a5aef in SwRootFrame::Paint(OutputDevice&, SwRect const&, SwPrintData const*) const sw/source/core/layout/paintfrm.cxx:3393:33 > #36 0x2ba907d08527 in SwViewShell::ImplEndAction(bool) sw/source/core/view/viewsh.cxx:410:49 > #37 0x2ba90223b161 in SwViewShell::EndAction(bool) sw/inc/viewsh.hxx:603:9 > #38 0x2ba907d16ff8 in SwViewShell::MakeVisible(SwRect const&) sw/source/core/view/viewsh.cxx:581:21 > #39 0x2ba902224187 in SwCursorShell::MakeSelVisible() sw/source/core/crsr/crsrsh.cxx:2818:13 > #40 0x2ba90494d45b in SwFEShell::MakeSelVisible() sw/source/core/frmedt/feshview.cxx:2531:24 > #41 0x2ba902187f27 in SwCursorShell::UpdateCursor(unsigned short, bool) sw/source/core/crsr/crsrsh.cxx:1842:13 > #42 0x2ba9021f9dfd in SwCursorShell::Pop(bool) sw/source/core/crsr/crsrsh.cxx:2081:13 > #43 0x2ba905a4afe3 in SwEnhancedPDFExportHelper::EnhancedPDFExport() sw/source/core/text/EnhancedPDFExportHelper.cxx:2173:25 > #44 0x2ba905a29f00 in SwEnhancedPDFExportHelper::SwEnhancedPDFExportHelper(SwEditShell&, OutputDevice&, rtl::OUString const&, bool, bool, SwPrintData const&) sw/source/core/text/EnhancedPDFExportHelper.cxx:1502:5 > #45 0x2ba90a741107 in SwXTextDocument::render(int, com::sun::star::uno::Any const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) sw/source/uibase/uno/unotxdoc.cxx:2986:51 > #46 0x2ba95ce0471b in PDFExport::ExportSelection(vcl::PDFWriter&, com::sun::star::uno::Reference<com::sun::star::view::XRenderable>&, com::sun::star::uno::Any const&, StringRangeEnumerator const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>&, int) filter/source/pdf/pdfexport.cxx:222:34 > #47 0x2ba95ce29474 in PDFExport::Export(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) filter/source/pdf/pdfexport.cxx:905:28 > #48 0x2ba95ce87d48 in PDFFilter::implExport(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) filter/source/pdf/pdffilter.cxx:116:24 > #49 0x2ba95ce88e1e in PDFFilter::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) filter/source/pdf/pdffilter.cxx:177:23 > #50 0x2ba8e8c73429 in SfxObjectShell::ExportTo(SfxMedium&) sfx2/source/doc/objstor.cxx:2420:25 > #51 0x2ba8e8c5cc98 in SfxObjectShell::SaveTo_Impl(SfxMedium&, SfxItemSet const*) sfx2/source/doc/objstor.cxx:1533:19 > #52 0x2ba8e8c99cc5 in SfxObjectShell::PreDoSaveAs_Impl(rtl::OUString const&, rtl::OUString const&, SfxItemSet&) sfx2/source/doc/objstor.cxx:2813:39 > #53 0x2ba8e8c92eca in SfxObjectShell::CommonSaveAs_Impl(INetURLObject const&, rtl::OUString const&, SfxItemSet&) sfx2/source/doc/objstor.cxx:2685:9 > #54 0x2ba8e8bf2c82 in SfxObjectShell::APISaveAs_Impl(rtl::OUString const&, SfxItemSet&) sfx2/source/doc/objserv.cxx:305:19 > #55 0x2ba8e8e68eea in SfxBaseModel::impl_store(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, bool) sfx2/source/doc/sfxbasemodel.cxx:2990:46 > #56 0x2ba8e8e71d0b in SfxBaseModel::storeToURL(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) sfx2/source/doc/sfxbasemodel.cxx:1645:13 > #57 0x2ba8d3b43ea4 in (anonymous namespace)::PdfExportTest::load(rtl::OUString const&, vcl::filter::PDFDocument&) vcl/qa/cppunit/pdfexport/pdfexport.cxx:104:16 > #58 0x2ba8d3b30781 in (anonymous namespace)::PdfExportTest::testTdf107013() vcl/qa/cppunit/pdfexport/pdfexport.cxx:393:5 > #59 0x2ba8d3b417cb in CppUnit::TestCaller<(anonymous namespace)::PdfExportTest>::runTest() workdir/UnpackedTarball/cppunit/include/cppunit/TestCaller.h:166:6 > #60 0x2ba88f26cd8b in CppUnit::TestCaseMethodFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:32:5 > #61 0x2ba8a85afb0f in (anonymous namespace)::Protector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) test/source/vclbootstrapprotector.cxx:39:14 > #62 0x2ba88f22b3ce in CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 > #63 0x2ba89ee6214f in (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) unotest/source/cpp/unobootstrapprotector/unobootstrapprotector.cxx:89:12 > #64 0x2ba88f22b3ce in CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 > #65 0x2ba89b0fc351 in (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) unotest/source/cpp/unoexceptionprotector/unoexceptionprotector.cxx:63:16 > #66 0x2ba88f22b3ce in CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 > #67 0x2ba88f1a9350 in CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) workdir/UnpackedTarball/cppunit/src/cppunit/DefaultProtector.cpp:15:12 > #68 0x2ba88f22b3ce in CppUnit::ProtectorChain::ProtectFunctor::operator()() const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 > #69 0x2ba88f227e70 in CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:77:18 > #70 0x2ba88f2e70f5 in CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:181:28 > #71 0x2ba88f26afa4 in CppUnit::TestCase::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:91:13 > #72 0x2ba88f26f7a7 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 > #73 0x2ba88f26e819 in CppUnit::TestComposite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 > #74 0x2ba88f26f7a7 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 > #75 0x2ba88f26e819 in CppUnit::TestComposite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 > #76 0x2ba88f3255c9 in CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:47:27 > #77 0x2ba88f2e540d in CppUnit::TestResult::runTest(CppUnit::Test*) workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:148:9 > #78 0x2ba88f32689b in CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:96:14 > #79 0x532fb4 in (anonymous namespace)::ProtectedFixtureFunctor::run() const sal/cppunittester/cppunittester.cxx:306:20 > #80 0x52e7c3 in sal_main() sal/cppunittester/cppunittester.cxx:456:20 > #81 0x52cb6f in main sal/cppunittester/cppunittester.cxx:363:1 > #82 0x2ba890ed7400 in __libc_start_main (/lib64/libc.so.6+0x20400) > #83 0x438019 in _start (workdir/LinkTarget/Executable/cppunittester+0x438019) Change-Id: Ia3e6983d07e2bb2d057beab1b42212d3cc8afe80 (cherry picked from commit 9497754)
Follow-up to 4bf2b13 "Clamp equation values when exporting to binary MS format", during CppunitTest_sw_ooxmlexport6: > filter/source/msfilter/escherex.cxx:2935:50: runtime error: implicit conversion from type 'sal_Int32' (aka 'int') of value 2700000 (32-bit, signed) to type 'sal_Int16' (aka 'short') changed the value to 13024 (16-bit, signed) > #0 in EscherPropertyContainer::CreateCustomShapeProperties(MSO_SPT, com::sun::star::uno::Reference<com::sun::star::drawing::XShape> const&) at filter/source/msfilter/escherex.cxx:2935:50 > LibreOffice#1 in ImplEESdrWriter::ImplWriteShape(ImplEESdrObject&, EscherSolverContainer&, bool) at filter/source/msfilter/eschesdo.cxx:283:26 > LibreOffice#2 in ImplEESdrWriter::ImplWriteShape(ImplEESdrObject&, EscherSolverContainer&, bool) at filter/source/msfilter/eschesdo.cxx:215:25 > LibreOffice#3 in ImplEESdrWriter::ImplWriteTheShape(ImplEESdrObject&, bool) at filter/source/msfilter/eschesdo.cxx:932:12 > LibreOffice#4 in EscherEx::AddSdrObject(SdrObject const&, bool) at filter/source/msfilter/eschesdo.cxx:951:35 > LibreOffice#5 in oox::vml::VMLExport::AddSdrObject(SdrObject const&, short, short, short, short, bool) at oox/source/export/vmlexport.cxx:1425:15 > LibreOffice#6 in DocxSdrExport::writeVMLDrawing(SdrObject const*, SwFrameFormat const&) at sw/source/filter/ww8/docxsdrexport.cxx:844:40 > LibreOffice#7 in DocxSdrExport::writeDMLAndVMLDrawing(SdrObject const*, SwFrameFormat const&, int) at sw/source/filter/ww8/docxsdrexport.cxx:1051:9 > LibreOffice#8 in DocxAttributeOutput::OutputFlyFrame_Impl(ww8::Frame const&, Point const&) at sw/source/filter/ww8/docxattributeoutput.cxx:5586:57 > LibreOffice#9 in AttributeOutputBase::OutputFlyFrame(ww8::Frame const&) at sw/source/filter/ww8/wrtw8nds.cxx:3265:5 > LibreOffice#10 in SwWW8AttrIter::OutFlys(int) at sw/source/filter/ww8/wrtw8nds.cxx:665:41 > LibreOffice#11 in MSWordExportBase::OutputTextNode(SwTextNode&) at sw/source/filter/ww8/wrtw8nds.cxx:2274:42 > LibreOffice#12 in MSWordExportBase::OutputContentNode(SwContentNode&) at sw/source/filter/ww8/wrtw8nds.cxx:3329:13 > LibreOffice#13 in MSWordExportBase::WriteText() at sw/source/filter/ww8/wrtww8.cxx:2725:13 > LibreOffice#14 in DocxExport::WriteMainText() at sw/source/filter/ww8/docxexport.cxx:1489:5 > LibreOffice#15 in DocxExport::ExportDocument_Impl() at sw/source/filter/ww8/docxexport.cxx:527:5 > LibreOffice#16 in MSWordExportBase::ExportDocument(bool) at sw/source/filter/ww8/wrtww8.cxx:3210:19 > LibreOffice#17 in DocxExportFilter::exportDocument() at sw/source/filter/ww8/docxexportfilter.cxx:86:17 > LibreOffice#18 in oox::core::FilterBase::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at oox/source/core/filterbase.cxx:497:55 > LibreOffice#19 in WriterFilter::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at writerfilter/source/filter/WriterFilter.cxx:150:23 > LibreOffice#20 in SfxObjectShell::ExportTo(SfxMedium&) at sfx2/source/doc/objstor.cxx:2414:25 > LibreOffice#21 in SfxObjectShell::SaveTo_Impl(SfxMedium&, SfxItemSet const*) at sfx2/source/doc/objstor.cxx:1496:19 > LibreOffice#22 in SfxObjectShell::PreDoSaveAs_Impl(rtl::OUString const&, rtl::OUString const&, SfxItemSet const&) at sfx2/source/doc/objstor.cxx:2821:39 > LibreOffice#23 in SfxObjectShell::CommonSaveAs_Impl(INetURLObject const&, rtl::OUString const&, SfxItemSet&) at sfx2/source/doc/objstor.cxx:2678:9 > LibreOffice#24 in SfxObjectShell::APISaveAs_Impl(rtl::OUString const&, SfxItemSet&) at sfx2/source/doc/objserv.cxx:323:19 > LibreOffice#25 in SfxBaseModel::impl_store(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, bool) at sfx2/source/doc/sfxbasemodel.cxx:3018:42 > LibreOffice#26 in SfxBaseModel::storeToURL(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/sfxbasemodel.cxx:1689:13 > LibreOffice#27 in SwModelTestBase::reload(char const*, char const*, char const*) at sw/qa/extras/inc/swmodeltestbase.hxx:796:20 > LibreOffice#28 in SwModelTestBase::executeImportExportImportTest(char const*, char const*) at sw/qa/extras/inc/swmodeltestbase.hxx:283:9 > LibreOffice#29 in testDmlGroupshapeRelsize::Import_Export_Import() at sw/qa/extras/ooxmlexport/ooxmlexport6.cxx:80:1 [...] Change-Id: I40fdbcc599960aecabc4b2c96820eb3492509be0 Reviewed-on: https://gerrit.libreoffice.org/68715 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
...as seen with Clang's -fsanitize=implicit-signed-integer-truncation during CppunitTest_sw_ooxmlexport4 when nTextAreaHeight=36920 and m_nGridLinePitch=1: > writerfilter/source/dmapper/PropertyMap.cxx:1519:38: runtime error: implicit conversion from type 'int' of value 36920 (32-bit, signed) to type 'const sal_Int16' (aka 'const short') changed the value to -28616 (16-bit, signed) > #0 in writerfilter::dmapper::SectionPropertyMap::CloseSectionGroup(writerfilter::dmapper::DomainMapper_Impl&) at writerfilter/source/dmapper/PropertyMap.cxx:1519:38 > LibreOffice#1 in writerfilter::dmapper::DomainMapper::lcl_endSectionGroup() at writerfilter/source/dmapper/DomainMapper.cxx:2881:30 > LibreOffice#2 in writerfilter::LoggedStream::endSectionGroup() at writerfilter/source/dmapper/LoggedResources.cxx:101:5 > LibreOffice#3 in writerfilter::ooxml::OOXMLFastContextHandler::endSectionGroup() at writerfilter/source/ooxml/OOXMLFastContextHandler.cxx:434:23 > LibreOffice#4 in writerfilter::ooxml::OOXMLFactory_wml::endAction(writerfilter::ooxml::OOXMLFastContextHandler*) at workdir/CustomTarget/writerfilter/source/ooxml/OOXMLFactory_wml.cxx:7517:19 > LibreOffice#5 in writerfilter::ooxml::OOXMLFactory::endAction(writerfilter::ooxml::OOXMLFastContextHandler*) at writerfilter/source/ooxml/OOXMLFactory.cxx:199:19 > LibreOffice#6 in writerfilter::ooxml::OOXMLFastContextHandler::lcl_endFastElement(int) at writerfilter/source/ooxml/OOXMLFastContextHandler.cxx:195:5 > LibreOffice#7 in writerfilter::ooxml::OOXMLFastContextHandler::endFastElement(int) at writerfilter/source/ooxml/OOXMLFastContextHandler.cxx:177:9 > LibreOffice#8 in (anonymous namespace)::Entity::endElement() at sax/source/fastparser/fastparser.cxx:483:27 > LibreOffice#9 in sax_fastparser::FastSaxParserImpl::callbackEndElement() at sax/source/fastparser/fastparser.cxx:1274:17 > LibreOffice#10 in (anonymous namespace)::call_callbackEndElement(void*, unsigned char const*, unsigned char const*, unsigned char const*) at sax/source/fastparser/fastparser.cxx:310:18 > LibreOffice#11 in xmlParseEndTag2 at workdir/UnpackedTarball/libxml2/parser.c:9680:2 > LibreOffice#12 in xmlParseTryOrFinish at workdir/UnpackedTarball/libxml2/parser.c:11531:7 > LibreOffice#13 in xmlParseChunk__internal_alias at workdir/UnpackedTarball/libxml2/parser.c:12244:13 > LibreOffice#14 in sax_fastparser::FastSaxParserImpl::parse() at sax/source/fastparser/fastparser.cxx:1043:21 > LibreOffice#15 in sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) at sax/source/fastparser/fastparser.cxx:863:9 > LibreOffice#16 in sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) at sax/source/fastparser/fastparser.cxx:1359:13 > LibreOffice#17 in writerfilter::ooxml::OOXMLDocumentImpl::resolve(writerfilter::Stream&) at writerfilter/source/ooxml/OOXMLDocumentImpl.cxx:504:22 > LibreOffice#18 in WriterFilter::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at writerfilter/source/filter/WriterFilter.cxx:192:24 > LibreOffice#19 in SfxObjectShell::ImportFrom(SfxMedium&, com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&) at sfx2/source/doc/objstor.cxx:2212:34 > LibreOffice#20 in SfxObjectShell::DoLoad(SfxMedium*) at sfx2/source/doc/objstor.cxx:741:23 > LibreOffice#21 in SfxBaseModel::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/sfxbasemodel.cxx:1844:36 > LibreOffice#22 in (anonymous namespace)::SfxFrameLoader_Impl::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) at sfx2/source/view/frmload.cxx:689:28 > LibreOffice#23 in framework::LoadEnv::impl_loadContent() at framework/source/loadenv/loadenv.cxx:1150:37 > LibreOffice#24 in framework::LoadEnv::startLoading() at framework/source/loadenv/loadenv.cxx:384:20 > LibreOffice#25 in framework::LoadEnv::loadComponentFromURL(com::sun::star::uno::Reference<com::sun::star::frame::XComponentLoader> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/loadenv/loadenv.cxx:170:14 > LibreOffice#26 in framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/services/desktop.cxx:619:12 > LibreOffice#27 in non-virtual thunk to framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/services/desktop.cxx > LibreOffice#28 in unotest::MacrosTest::loadFromDesktop(rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at unotest/source/cpp/macros_test.cxx:50:60 > LibreOffice#29 in SwModelTestBase::loadURL(rtl::OUString const&, char const*, char const*) at sw/qa/extras/inc/swmodeltestbase.hxx:761:23 > LibreOffice#30 in SwModelTestBase::load(rtl::OUString const&, char const*, char const*) at sw/qa/extras/inc/swmodeltestbase.hxx:716:16 > LibreOffice#31 in SwModelTestBase::executeImportTest(char const*, char const*) at sw/qa/extras/inc/swmodeltestbase.hxx:264:13 > LibreOffice#32 in testTdf86926_A3::Import() at sw/qa/extras/ooxmlexport/ooxmlexport4.cxx:1140:1 [...] Change-Id: Idf694b0dda871f1313d36c03764b0199e10d1b25 Reviewed-on: https://gerrit.libreoffice.org/68710 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Unfortunately, this isn't fully functional, but didn't want to lose the effort. The problem is that there is no proper config for languages in the unit-tests. So even when we set the language explicitly, it still doesn't apply to the SpellCheckerDispatcher, which is where it matters. This seems to be because the config is not properly propagated and broadcast. Below is the stacktrace as works on desktop. During the unittest the Broadcaster has no change listener for LngSvcMgr, so SpellCheckerDispatcher::SetServiceList doesn't get called. #0 0x00007f47f3fed7e6 in SpellCheckerDispatcher::SetServiceList(com::sun::star::lang::Locale const&, com::sun::star::uno::Sequence<rtl::OUString> const&) (this=0x5589de40e7a0, rLocale=..., rSvcImplNames=uno::Sequence of length 1 = {...}) at /home/ash/prj/master/linguistic/source/spelldsp.cxx:795 #1 0x00007f47f3fcc0ad in LngSvcMgr::Notify(com::sun::star::uno::Sequence<rtl::OUString> const&) (this=0x5589de43b4e0, rPropertyNames=uno::Sequence of length 4 = {...}) at /home/ash/prj/master/linguistic/source/lngsvcmgr.cxx:826 #2 0x00007f47fa2d3c8d in utl::ConfigItem::CallNotify(com::sun::star::uno::Sequence<rtl::OUString> const&) (this=0x5589de43b530, rPropertyNames=uno::Sequence of length 4 = {...}) at /home/ash/prj/master/unotools/source/config/configitem.cxx:181 #3 0x00007f47fa2d3946 in utl::ConfigChangeListener_Impl::changesOccurred(com::sun::star::util::ChangesEvent const&) (this=0x5589de464b90, rEvent=...) at /home/ash/prj/master/unotools/source/config/configitem.cxx:143 #4 0x00007f47e273bb61 in configmgr::Broadcaster::send() (this=0x7ffcc604c5b0) at /home/ash/prj/master/configmgr/source/broadcaster.cxx:182 #5 0x00007f47e277f002 in configmgr::RootAccess::commitChanges() (this=0x5589dd557400) at /home/ash/prj/master/configmgr/source/rootaccess.cxx:171 #6 0x00007f47fa2d80e3 in utl::ConfigItem::ReplaceSetProperties(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x5589dd5571b0, rNode="ServiceManager/SpellCheckerList", rValues=uno::Sequence of length 4 = {...}) at /home/ash/prj/master/unotools/source/config/configitem.cxx:1025 #7 0x00007f47fa339983 in SvtLinguConfig::ReplaceSetProperties(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x7ffcc604cb40, rNode="ServiceManager/SpellCheckerList", rValues=uno::Sequence of length 4 = {...}) at /home/ash/prj/master/unotools/source/config/lingucfg.cxx:847 #8 0x00007f47f3fcb88f in LngSvcMgr::UpdateAll() (this=0x5589de43b4e0) at /home/ash/prj/master/linguistic/source/lngsvcmgr.cxx:765 #9 0x00007f47f3fc9caa in LngSvcMgr::LngSvcMgr() (this=0x5589de43b4e0) at /home/ash/prj/master/linguistic/source/lngsvcmgr.cxx:438 #10 0x00007f47f3fd3baf in LngSvcMgr_CreateInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&) () at /home/ash/prj/master/linguistic/source/lngsvcmgr.cxx:1967 #11 0x00007f4800e9656b in cppu::OSingleFactoryHelper::createInstanceEveryTime(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x5589de3ccfc8, xContext= uno::Reference to (cppu::ComponentContext *) 0x5589dbcca630) at /home/ash/prj/master/cppuhelper/source/factory.cxx:149 #12 0x00007f4800e96790 in cppu::OSingleFactoryHelper::createInstanceWithContext(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x5589de3ccfc8, xContext=uno::Reference to (cppu::ComponentContext *) 0x5589dbcca630) at /home/ash/prj/master/cppuhelper/source/factory.cxx:175 #13 0x00007f4800e97107 in cppu::OFactoryComponentHelper::createInstanceWithContext(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x5589de3ccf60, xContext=uno::Reference to (cppu::ComponentContext *) 0x5589dbcca630) at /home/ash/prj/master/cppuhelper/source/factory.cxx:374 #14 0x00007f4800eebc8f in cppuhelper::ServiceManager::Data::Implementation::createInstance(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, bool) (this=0x5589dbd2f030, context=uno::Reference to (cppu::ComponentContext *) 0x5589dbcca630, singletonRequest=false) at /home/ash/prj/master/cppuhelper/source/servicemanager.cxx:667 #15 0x00007f4800eee587 in cppuhelper::ServiceManager::createInstanceWithContext(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x5589dbcbaaf0, aServiceSpecifier="com.sun.star.linguistic2.LinguServiceManager", Context=uno::Reference to (cppu::ComponentContext *) 0x5589dbcca630) at /home/ash/prj/master/cppuhelper/source/servicemanager.cxx:991 #16 0x00007f4800776778 in com::sun::star::linguistic2::LinguServiceManager::create(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (the_context=uno::Reference to (cppu::ComponentContext *) 0x5589dbcca630) at /home/ash/prj/master/workdir/UnoApiHeadersTarget/offapi/normal/com/sun/star/linguistic2/LinguServiceManager.hpp:38 #17 0x00007f4800772d51 in GetLngSvcMgr_Impl() () at /home/ash/prj/master/editeng/source/misc/unolingu.cxx:66 #18 0x00007f4800773449 in SpellDummy_Impl::GetSpell_Impl() (this=0x5589dd82f420) at /home/ash/prj/master/editeng/source/misc/unolingu.cxx:217 #19 0x00007f4800773614 in SpellDummy_Impl::isValid(rtl::OUString const&, short, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x5589dd82f420, rWord="a", nLanguage=1033, rProperties=empty uno::Sequence) at /home/ash/prj/master/editeng/source/misc/unolingu.cxx:249 #20 0x00007f48006ae4c2 in ImpEditEngine::DoOnlineSpelling(ContentNode*, bool, bool) (this=0x5589de195060, pThisNodeOnly=0x0, bSpellAtCursorPos=false, bInterruptible=true) at /home/ash/prj/master/editeng/source/editeng/impedit4.cxx:2306 #21 0x00007f480067d0d2 in ImpEditEngine::OnlineSpellHdl(Timer*) (this=0x5589de195060) at /home/ash/prj/master/editeng/source/editeng/impedit3.cxx:322 Change-Id: Iffef03502c78311427aa8883739678120cc84931 (cherry picked from commit 4f77bd94028a140133814d735c0425bbd0de4839) Reviewed-on: https://gerrit.libreoffice.org/85007 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Unfortunately, this isn't fully functional, but didn't want to lose the effort. The problem is that there is no proper config for languages in the unit-tests. So even when we set the language explicitly, it still doesn't apply to the SpellCheckerDispatcher, which is where it matters. This seems to be because the config is not properly propagated and broadcast. Below is the stacktrace as works on desktop. During the unittest the Broadcaster has no change listener for LngSvcMgr, so SpellCheckerDispatcher::SetServiceList doesn't get called. #0 0x00007f47f3fed7e6 in SpellCheckerDispatcher::SetServiceList(com::sun::star::lang::Locale const&, com::sun::star::uno::Sequence<rtl::OUString> const&) (this=0x5589de40e7a0, rLocale=..., rSvcImplNames=uno::Sequence of length 1 = {...}) at /home/ash/prj/master/linguistic/source/spelldsp.cxx:795 #1 0x00007f47f3fcc0ad in LngSvcMgr::Notify(com::sun::star::uno::Sequence<rtl::OUString> const&) (this=0x5589de43b4e0, rPropertyNames=uno::Sequence of length 4 = {...}) at /home/ash/prj/master/linguistic/source/lngsvcmgr.cxx:826 #2 0x00007f47fa2d3c8d in utl::ConfigItem::CallNotify(com::sun::star::uno::Sequence<rtl::OUString> const&) (this=0x5589de43b530, rPropertyNames=uno::Sequence of length 4 = {...}) at /home/ash/prj/master/unotools/source/config/configitem.cxx:181 #3 0x00007f47fa2d3946 in utl::ConfigChangeListener_Impl::changesOccurred(com::sun::star::util::ChangesEvent const&) (this=0x5589de464b90, rEvent=...) at /home/ash/prj/master/unotools/source/config/configitem.cxx:143 #4 0x00007f47e273bb61 in configmgr::Broadcaster::send() (this=0x7ffcc604c5b0) at /home/ash/prj/master/configmgr/source/broadcaster.cxx:182 #5 0x00007f47e277f002 in configmgr::RootAccess::commitChanges() (this=0x5589dd557400) at /home/ash/prj/master/configmgr/source/rootaccess.cxx:171 #6 0x00007f47fa2d80e3 in utl::ConfigItem::ReplaceSetProperties(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x5589dd5571b0, rNode="ServiceManager/SpellCheckerList", rValues=uno::Sequence of length 4 = {...}) at /home/ash/prj/master/unotools/source/config/configitem.cxx:1025 #7 0x00007f47fa339983 in SvtLinguConfig::ReplaceSetProperties(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x7ffcc604cb40, rNode="ServiceManager/SpellCheckerList", rValues=uno::Sequence of length 4 = {...}) at /home/ash/prj/master/unotools/source/config/lingucfg.cxx:847 #8 0x00007f47f3fcb88f in LngSvcMgr::UpdateAll() (this=0x5589de43b4e0) at /home/ash/prj/master/linguistic/source/lngsvcmgr.cxx:765 #9 0x00007f47f3fc9caa in LngSvcMgr::LngSvcMgr() (this=0x5589de43b4e0) at /home/ash/prj/master/linguistic/source/lngsvcmgr.cxx:438 #10 0x00007f47f3fd3baf in LngSvcMgr_CreateInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&) () at /home/ash/prj/master/linguistic/source/lngsvcmgr.cxx:1967 #11 0x00007f4800e9656b in cppu::OSingleFactoryHelper::createInstanceEveryTime(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x5589de3ccfc8, xContext= uno::Reference to (cppu::ComponentContext *) 0x5589dbcca630) at /home/ash/prj/master/cppuhelper/source/factory.cxx:149 #12 0x00007f4800e96790 in cppu::OSingleFactoryHelper::createInstanceWithContext(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x5589de3ccfc8, xContext=uno::Reference to (cppu::ComponentContext *) 0x5589dbcca630) at /home/ash/prj/master/cppuhelper/source/factory.cxx:175 #13 0x00007f4800e97107 in cppu::OFactoryComponentHelper::createInstanceWithContext(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x5589de3ccf60, xContext=uno::Reference to (cppu::ComponentContext *) 0x5589dbcca630) at /home/ash/prj/master/cppuhelper/source/factory.cxx:374 #14 0x00007f4800eebc8f in cppuhelper::ServiceManager::Data::Implementation::createInstance(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, bool) (this=0x5589dbd2f030, context=uno::Reference to (cppu::ComponentContext *) 0x5589dbcca630, singletonRequest=false) at /home/ash/prj/master/cppuhelper/source/servicemanager.cxx:667 #15 0x00007f4800eee587 in cppuhelper::ServiceManager::createInstanceWithContext(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x5589dbcbaaf0, aServiceSpecifier="com.sun.star.linguistic2.LinguServiceManager", Context=uno::Reference to (cppu::ComponentContext *) 0x5589dbcca630) at /home/ash/prj/master/cppuhelper/source/servicemanager.cxx:991 #16 0x00007f4800776778 in com::sun::star::linguistic2::LinguServiceManager::create(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (the_context=uno::Reference to (cppu::ComponentContext *) 0x5589dbcca630) at /home/ash/prj/master/workdir/UnoApiHeadersTarget/offapi/normal/com/sun/star/linguistic2/LinguServiceManager.hpp:38 #17 0x00007f4800772d51 in GetLngSvcMgr_Impl() () at /home/ash/prj/master/editeng/source/misc/unolingu.cxx:66 #18 0x00007f4800773449 in SpellDummy_Impl::GetSpell_Impl() (this=0x5589dd82f420) at /home/ash/prj/master/editeng/source/misc/unolingu.cxx:217 #19 0x00007f4800773614 in SpellDummy_Impl::isValid(rtl::OUString const&, short, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x5589dd82f420, rWord="a", nLanguage=1033, rProperties=empty uno::Sequence) at /home/ash/prj/master/editeng/source/misc/unolingu.cxx:249 #20 0x00007f48006ae4c2 in ImpEditEngine::DoOnlineSpelling(ContentNode*, bool, bool) (this=0x5589de195060, pThisNodeOnly=0x0, bSpellAtCursorPos=false, bInterruptible=true) at /home/ash/prj/master/editeng/source/editeng/impedit4.cxx:2306 #21 0x00007f480067d0d2 in ImpEditEngine::OnlineSpellHdl(Timer*) (this=0x5589de195060) at /home/ash/prj/master/editeng/source/editeng/impedit3.cxx:322 Change-Id: Iffef03502c78311427aa8883739678120cc84931 (cherry picked from commit 4f77bd94028a140133814d735c0425bbd0de4839) Reviewed-on: https://gerrit.libreoffice.org/85007 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> (cherry picked from commit 66c1f6b) Reviewed-on: https://gerrit.libreoffice.org/85683 Tested-by: Jenkins Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
...without which `make clean && make CppunitTest_sd_misc_tests` would fire > cppunittester: vcl/source/gdi/bmpacc.cxx:38: BitmapInfoAccess::BitmapInfoAccess(Bitmap &, BitmapAccessMode): Assertion `xImpBmp && "Forbidden Access to empty bitmap!"' failed. because > #3 0x00007ffff6deba66 in __GI___assert_fail > #4 0x00007fffd23c14af in BitmapInfoAccess::BitmapInfoAccess(Bitmap&, BitmapAccessMode) at vcl/source/gdi/bmpacc.cxx:38 > #5 0x00007fffd23c36fc in BitmapReadAccess::BitmapReadAccess(Bitmap&, BitmapAccessMode) at vcl/source/gdi/bmpacc.cxx:87 > #6 0x00007fffd23c89a0 in BitmapWriteAccess::BitmapWriteAccess(Bitmap&) at vcl/source/gdi/bmpacc.cxx:355 > #7 0x00007fffd3359a02 in Bitmap::AcquireWriteAccess() at vcl/source/bitmap/bitmap.cxx:388 > #8 0x00007fffd1cb15cf in vcl::ScopedBitmapAccess<BitmapWriteAccess, Bitmap, &Bitmap::AcquireWriteAccess>::ScopedBitmapAccess(Bitmap&) at include/vcl/scopedbitmapaccess.hxx:53 > #9 0x00007fffd3375fe6 in BitmapDisabledImageFilter::execute(BitmapEx const&) const at vcl/source/bitmap/BitmapDisabledImageFilter.cxx:28 > #10 0x00007fffd336ed1d in BitmapFilter::Filter(BitmapEx&, BitmapFilter const&) at vcl/source/bitmap/bitmapfilter.cxx:22 > #11 0x00007fffd34c1875 in ImplImage::getBitmapEx(bool) at vcl/source/image/ImplImage.cxx:123 > #12 0x00007fffd34c212c in ImplImage::getBitmapExForHiDPI(bool) at vcl/source/image/ImplImage.cxx:153 > #13 0x00007fffd34b3c7b in Image::Draw(OutputDevice*, Point const&, DrawImageFlags, Size const*) at vcl/source/image/Image.cxx:123 > #14 0x00007fffd1cec66e in OutputDevice::DrawImage(Point const&, Size const&, Image const&, DrawImageFlags) at vcl/source/outdev/bitmap.cxx:1388 > #15 0x00007fffd1cec1f7 in OutputDevice::DrawImage(Point const&, Image const&, DrawImageFlags) at vcl/source/outdev/bitmap.cxx:1372 > #16 0x00007fffd0ea7ca4 in ToolBox::ImplDrawItem(OutputDevice&, unsigned long, unsigned short) at vcl/source/window/toolbox.cxx:2696 > #17 0x00007fffd0ec629d in ToolBox::Paint(OutputDevice&, tools::Rectangle const&) at vcl/source/window/toolbox.cxx:3490 > #18 0x00007fffd003daed in PaintHelper::DoPaint(vcl::Region const*) at vcl/source/window/paint.cxx:309 wants to draw sfx2/res/symphony/morebutton.png Change-Id: I9c21eb7891a6dfa29033618177c97370695e413d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88146 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
...before the destruction of the std::unique_ptr<SbxAppData> xSbxAppData; member during the destruction of BasicDLLImpl can set that BasicDLLImpl::xSbxAppData to null. Because the destruction of SbxAppData::m_aGlobErr may call into SbxValue::Put -> SbxBase::GetError -> GetSbxData_Impl, which would recursively access that return *BasicDLLImpl::BASIC_DLL->xSbxAppData; This causes problems with libc++ (i.e., on macOS), where ~std::unique_ptr sets its internal pointer to null before calling the destructor of the pointed-to object. Whereas it happens to not cause problems with e.g. libstdc++, where ~std::unique_ptr calls the destructor of the pointed-to object first before setting the pointer to null. The problem showed up with <https://gerrit.libreoffice.org/c/core/+/85017/14> "VBA Err object raise method TestCases", where CppunitTest_basic_macros kept failing on macOS with > * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0) > frame #0: 0x00000001119f18e7 libsblo.dylib`SbxValue::Put(this=0x000000014c1cff00, rVal=0x00007ffeefbf1218) + 55 at basic/source/sbx/sbxvalue.cxx:414 > 411 bool SbxValue::Put( const SbxValues& rVal ) > 412 { > 413 bool bRes = false; > -> 414 ErrCode eOld = GetError(); > 415 if( eOld != ERRCODE_NONE ) > 416 ResetError(); > 417 if( !CanWrite() ) > Target 0: (cppunittester) stopped. > (lldb) bt > * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0) > * frame #0: 0x00000001119f18e7 libsblo.dylib`SbxValue::Put(this=0x000000014c1cff00, rVal=0x00007ffeefbf1218) + 55 at basic/source/sbx/sbxvalue.cxx:414 > frame #1: 0x00000001119f2399 libsblo.dylib`SbxValue::Clear(this=0x000000014c1cff00) + 553 at basic/source/sbx/sbxvalue.cxx:176 > frame #2: 0x00000001119f20d0 libsblo.dylib`SbxValue::~SbxValue(this=0x000000014c1cff00, vtt=0x0000000111a2af70) + 80 at basic/source/sbx/sbxvalue.cxx:139 > frame #3: 0x00000001119f825d libsblo.dylib`SbxVariable::~SbxVariable(this=0x000000014c1cff00, vtt=0x0000000111a2af68) + 381 at basic/source/sbx/sbxvar.cxx:125 > frame #4: 0x00000001119e619a libsblo.dylib`SbxProperty::~SbxProperty(this=0x000000014c1cff00, vtt=0x0000000111a2af60) + 42 at basic/source/sbx/sbxobj.cxx:861 > frame #5: 0x000000011188ce81 libsblo.dylib`SbUnoProperty::~SbUnoProperty(this=0x000000014c1cff00, vtt=0x0000000111a2af58) + 97 at basic/source/classes/sbunoobj.cxx:2591 > frame #6: 0x000000011188ceb3 libsblo.dylib`SbUnoProperty::~SbUnoProperty(this=0x000000014c1cff00) + 35 at basic/source/classes/sbunoobj.cxx:2591 > frame #7: 0x000000011188cf0c libsblo.dylib`SbUnoProperty::~SbUnoProperty(this=0x000000014c1cff00) + 28 at basic/source/classes/sbunoobj.cxx:2591 > frame #8: 0x000000011180c235 libsblo.dylib`SvRefBase::ReleaseRef(this=0x000000014c1cffa0) + 197 at include/tools/ref.hxx:163 > frame #9: 0x000000011184fda7 libsblo.dylib`tools::SvRef<SbxVariable>::~SvRef(this=0x000000014c1d2490) + 55 at include/tools/ref.hxx:56 > frame #10: 0x000000011184a545 libsblo.dylib`tools::SvRef<SbxVariable>::~SvRef(this=0x000000014c1d2490) + 21 at include/tools/ref.hxx:55 > frame #11: 0x00000001119be5af libsblo.dylib`SbxVarEntry::~SbxVarEntry(this=0x000000014c1d2490) + 47 at basic/source/sbx/sbxarray.cxx:31 > frame #12: 0x00000001119bc3d5 libsblo.dylib`SbxVarEntry::~SbxVarEntry(this=0x000000014c1d2490) + 21 at basic/source/sbx/sbxarray.cxx:31 > frame #13: 0x00000001119bed29 libsblo.dylib`std::__1::allocator<SbxVarEntry>::destroy(this=0x000000014c1940a0, __p=0x000000014c1d2490) + 25 at c++/v1/memory:1931 > frame #14: 0x00000001119becfd libsblo.dylib`void std::__1::allocator_traits<std::__1::allocator<SbxVarEntry> >::__destroy<SbxVarEntry>((null)=std::__1::true_type @ 0x00007ffeefbf1448, __a=0x000000014c1940a0, __p=0x000000014c1d2490) + 29 at c++/v1/memory:1793 > frame #15: 0x00000001119beccd libsblo.dylib`void std::__1::allocator_traits<std::__1::allocator<SbxVarEntry> >::destroy<SbxVarEntry>(__a=0x000000014c1940a0, __p=0x000000014c1d2490) + 29 at c++/v1/memory:1630 > frame #16: 0x00000001119bec7b libsblo.dylib`std::__1::__vector_base<SbxVarEntry, std::__1::allocator<SbxVarEntry> >::__destruct_at_end(this=0x000000014c194090, __new_last=0x000000014c1d2490) + 91 at c++/v1/vector:426 > frame #17: 0x00000001119bebab libsblo.dylib`std::__1::__vector_base<SbxVarEntry, std::__1::allocator<SbxVarEntry> >::clear(this=0x000000014c194090) + 27 at c++/v1/vector:369 > frame #18: 0x00000001119bea47 libsblo.dylib`std::__1::__vector_base<SbxVarEntry, std::__1::allocator<SbxVarEntry> >::~__vector_base(this=0x000000014c194090) + 39 at c++/v1/vector:463 > frame #19: 0x00000001119be958 libsblo.dylib`std::__1::vector<SbxVarEntry, std::__1::allocator<SbxVarEntry> >::~vector(this=0x000000014c194090 size=3) + 40 at c++/v1/vector:555 > frame #20: 0x00000001119bafa5 libsblo.dylib`std::__1::vector<SbxVarEntry, std::__1::allocator<SbxVarEntry> >::~vector(this=0x000000014c194090 size=3) + 21 at c++/v1/vector:550 > frame #21: 0x00000001119bb457 libsblo.dylib`SbxArray::~SbxArray(this=0x000000014c194080, vtt=0x0000000111a385e8) + 71 at basic/source/sbx/sbxarray.cxx:75 > frame #22: 0x00000001119bb4a3 libsblo.dylib`SbxArray::~SbxArray(this=0x000000014c194080) + 35 at basic/source/sbx/sbxarray.cxx:74 > frame #23: 0x00000001119bb4fc libsblo.dylib`SbxArray::~SbxArray(this=0x000000014c194080) + 28 at basic/source/sbx/sbxarray.cxx:74 > frame #24: 0x000000011180c235 libsblo.dylib`SvRefBase::ReleaseRef(this=0x000000014c194080) + 197 at include/tools/ref.hxx:163 > frame #25: 0x000000011184dbd7 libsblo.dylib`tools::SvRef<SbxArray>::~SvRef(this=0x000000014c1cfe58) + 55 at include/tools/ref.hxx:56 > frame #26: 0x000000011184cc25 libsblo.dylib`tools::SvRef<SbxArray>::~SvRef(this=0x000000014c1cfe58) + 21 at include/tools/ref.hxx:55 > frame #27: 0x00000001119e0d10 libsblo.dylib`SbxObject::~SbxObject(this=0x000000014c1cfdd0, vtt=0x0000000111a37d18) + 288 at basic/source/sbx/sbxobj.cxx:111 > frame #28: 0x000000011188b73d libsblo.dylib`SbUnoObject::~SbUnoObject(this=0x000000014c1cfdd0, vtt=0x0000000111a37d10) + 221 at basic/source/classes/sbunoobj.cxx:2387 > frame #29: 0x0000000111990d51 libsblo.dylib`SbxErrObject::~SbxErrObject(this=0x000000014c1cfdd0, vtt=0x0000000111a37d08) + 113 at basic/source/classes/errobject.cxx:184 > frame #30: 0x0000000111990d83 libsblo.dylib`SbxErrObject::~SbxErrObject(this=0x000000014c1cfdd0) + 35 at basic/source/classes/errobject.cxx:183 > frame #31: 0x0000000111990dfc libsblo.dylib`SbxErrObject::~SbxErrObject(this=0x000000014c1cfdd0) + 28 at basic/source/classes/errobject.cxx:183 > frame #32: 0x000000011180c235 libsblo.dylib`SvRefBase::ReleaseRef(this=0x000000014c1cfee8) + 197 at include/tools/ref.hxx:163 > frame #33: 0x00000001119bcac6 libsblo.dylib`tools::SvRef<SbxVariable>::clear(this=0x0000000110e365a8) + 70 at include/tools/ref.hxx:64 > frame #34: 0x00000001119ca764 libsblo.dylib`SbxAppData::~SbxAppData(this=0x0000000110e365a0) + 84 at basic/source/sbx/sbxbase.cxx:49 > frame #35: 0x00000001119ca965 libsblo.dylib`SbxAppData::~SbxAppData(this=0x0000000110e365a0) + 21 at basic/source/sbx/sbxbase.cxx:45 > frame #36: 0x000000011199272b libsblo.dylib`std::__1::default_delete<SbxAppData>::operator(this=0x0000000110e2cfb0, __ptr=0x0000000110e365a0)(SbxAppData*) const + 43 at c++/v1/memory:2363 > frame #37: 0x00000001119926af libsblo.dylib`std::__1::unique_ptr<SbxAppData, std::__1::default_delete<SbxAppData> >::reset(this=0x0000000110e2cfb0, __p=0x0000000000000000) + 95 at c++/v1/memory:2618 > frame #38: 0x0000000111992649 libsblo.dylib`std::__1::unique_ptr<SbxAppData, std::__1::default_delete<SbxAppData> >::~unique_ptr(this=0x0000000110e2cfb0) + 25 at c++/v1/memory:2572 > frame #39: 0x0000000111992625 libsblo.dylib`std::__1::unique_ptr<SbxAppData, std::__1::default_delete<SbxAppData> >::~unique_ptr(this=0x0000000110e2cfb0) + 21 at c++/v1/memory:2572 > frame #40: 0x00000001119925f5 libsblo.dylib`(anonymous namespace)::BasicDLLImpl::~BasicDLLImpl(this=0x0000000110e2cfa0) + 53 at basic/source/runtime/basrdll.cxx:33 > frame #41: 0x0000000111992415 libsblo.dylib`(anonymous namespace)::BasicDLLImpl::~BasicDLLImpl(this=0x0000000110e2cfa0) + 21 at basic/source/runtime/basrdll.cxx:33 > frame #42: 0x000000011199243c libsblo.dylib`(anonymous namespace)::BasicDLLImpl::~BasicDLLImpl(this=0x0000000110e2cfa0) + 28 at basic/source/runtime/basrdll.cxx:33 > frame #43: 0x000000011180c235 libsblo.dylib`SvRefBase::ReleaseRef(this=0x0000000110e2cfa0) + 197 at include/tools/ref.hxx:163 > frame #44: 0x0000000111992039 libsblo.dylib`tools::SvRef<SvRefBase>::clear(this=0x00007ffeefbf1bb0) + 57 at include/tools/ref.hxx:64 > frame #45: 0x0000000111991f0b libsblo.dylib`BasicDLL::~BasicDLL(this=0x00007ffeefbf1bb0) + 123 at basic/source/runtime/basrdll.cxx:69 > frame #46: 0x0000000111992055 libsblo.dylib`BasicDLL::~BasicDLL(this=0x00007ffeefbf1bb0) + 21 at basic/source/runtime/basrdll.cxx:66 > frame #47: 0x0000000110f07a5a libtest_basic_macros.dylib`MacroSnippet::~MacroSnippet(this=0x00007ffeefbf1ba8) + 74 at basic/qa/cppunit/basictest.hxx:23 > frame #48: 0x0000000110f07a05 libtest_basic_macros.dylib`MacroSnippet::~MacroSnippet(this=0x00007ffeefbf1ba8) + 21 at basic/qa/cppunit/basictest.hxx:23 > frame #49: 0x0000000110f269b7 libtest_basic_macros.dylib`(anonymous namespace)::VBATest::testMiscVBAFunctions(this=0x0000000100651890) + 1319 at basic/qa/cppunit/test_vba.cxx:168 [...] Change-Id: I776b7f0686e0915b69119b2e6a513e2a4b40822f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90967 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
…roller ...and not just add it to the new controller. It caused > $ SAL_USE_VCLPLUGIN=gen make UITest_chart UITEST_TEST_NAME=chartLegend.chartLegend.test_chart_display_legend_dialog to fail with > ==346284==ERROR: AddressSanitizer: heap-use-after-free on address 0x61a00049cca8 at pc 0x7f8496747751 bp 0x7fff7c483f10 sp 0x7fff7c483f08 > READ of size 8 at 0x61a00049cca8 thread T0 > #0 in chart::sidebar::ChartSidebarSelectionListener::selectionChanged(com::sun::star::lang::EventObject const&) at chart2/source/controller/sidebar/ChartSidebarSelectionListener.cxx:66:15 > #1 in chart::ChartController::impl_notifySelectionChangeListeners() at chart2/source/controller/main/ChartController_Window.cxx:1740:28 > #2 in chart::ChartController::impl_selectObjectAndNotiy() at chart2/source/controller/main/ChartController_Window.cxx:1756:5 > #3 in chart::ChartController::modeChanged(com::sun::star::util::ModeChangeEvent const&) at chart2/source/controller/main/ChartController.cxx:538:31 > #4 in chart::ChartView::impl_notifyModeChangeListener(rtl::OUString const&) at chart2/source/view/main/ChartView.cxx:2653:32 > #5 in chart::ChartView::impl_updateView(bool) at chart2/source/view/main/ChartView.cxx:2561:9 > #6 in chart::ChartView::update() at chart2/source/view/main/ChartView.cxx:2687:5 > #7 in chart::ChartController::execute_Paint(OutputDevice&, tools::Rectangle const&) at chart2/source/controller/main/ChartController_Window.cxx:485:25 > #8 in chart::ChartWindow::Paint(OutputDevice&, tools::Rectangle const&) at chart2/source/controller/main/ChartWindow.cxx:99:30 > #9 in PaintHelper::DoPaint(vcl::Region const*) at vcl/source/window/paint.cxx:309:24 > #10 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:613:17 > #11 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:549:30 > #12 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:619:1 > #13 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:549:30 > #14 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:619:1 > #15 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:549:30 > #16 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:619:1 > #17 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:549:30 > #18 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:619:1 > #19 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:549:30 > #20 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:619:1 > #21 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:549:30 > #22 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:619:1 > #23 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:549:30 > #24 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:619:1 > #25 in PaintHelper::~PaintHelper() at vcl/source/window/paint.cxx:549:30 > #26 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) at vcl/source/window/paint.cxx:619:1 > #27 in vcl::Window::ImplCallOverlapPaint() at vcl/source/window/paint.cxx:637:9 > #28 in vcl::Window::ImplHandlePaintHdl(Timer*) at vcl/source/window/paint.cxx:660:9 > #29 in vcl::Window::LinkStubImplHandlePaintHdl(void*, Timer*) at vcl/source/window/paint.cxx:641:1 > #30 in Link<Timer*, void>::Call(Timer*) const at include/tools/link.hxx:111:45 > #31 in Timer::Invoke() at vcl/source/app/timer.cxx:75:21 > #32 in Scheduler::ProcessTaskScheduling() at vcl/source/app/scheduler.cxx:478:20 > #33 in Scheduler::CallbackTaskScheduling() at vcl/source/app/scheduler.cxx:287:5 > #34 in SalTimer::CallCallback() at vcl/inc/saltimer.hxx:54:13 > #35 in X11SalData::Timeout() at vcl/unx/generic/app/saldata.cxx:551:41 > #36 in SalXLib::CheckTimeout(bool) at vcl/unx/generic/app/saldata.cxx:635:17 > #37 in SalXLib::Yield(bool, bool) at vcl/unx/generic/app/saldata.cxx:716:25 > #38 in X11SalInstance::DoYield(bool, bool) at vcl/unx/generic/app/salinst.cxx:182:20 > #39 in ImplYield(bool, bool) at vcl/source/app/svapp.cxx:454:48 > #40 in Application::Yield() at vcl/source/app/svapp.cxx:518:5 > #41 in Application::Execute() at vcl/source/app/svapp.cxx:433:9 > #42 in desktop::Desktop::Main() at desktop/source/app/app.cxx:1602:17 > #43 in ImplSVMain() at vcl/source/app/svmain.cxx:196:35 > #44 in SVMain() at vcl/source/app/svmain.cxx:228:12 > #45 in soffice_main at desktop/source/app/sofficemain.cxx:107:12 > #46 in sal_main at desktop/source/app/main.c:48:15 > #47 in main at desktop/source/app/main.c:47:1 > 0x61a00049cca8 is located 1064 bytes inside of 1160-byte region [0x61a00049c880,0x61a00049cd08) > freed by thread T0 here: > #0 in operator delete(void*, unsigned long) at compiler-rt/lib/asan/asan_new_delete.cpp:172:3 > #1 in chart::sidebar::ChartLinePanel::~ChartLinePanel() at chart2/source/controller/sidebar/ChartLinePanel.cxx:143:1 > #2 in VclReferenceBase::release() const at include/vcl/vclreferencebase.hxx:40:13 > #3 in rtl::Reference<vcl::Window>::~Reference() at include/rtl/ref.hxx:92:22 > #4 in VclPtr<vcl::Window>::disposeAndClear() at include/vcl/vclptr.hxx:208:5 > #5 in sfx2::sidebar::SidebarPanelBase::disposing() at sfx2/source/sidebar/SidebarPanelBase.cxx:81:15 > #6 in cppu::WeakComponentImplHelperBase::dispose() at cppuhelper/source/implbase.cxx:102:17 > #7 in cppu::PartialWeakComponentImplHelper<com::sun::star::ui::XContextChangeEventListener, com::sun::star::ui::XUIElement, com::sun::star::ui::XToolPanel, com::sun::star::ui::XSidebarPanel, com::sun::star::ui::XUpdateModel>::dispose() at include/cppuhelper/compbase.hxx:90:36 > #8 in sfx2::sidebar::Panel::dispose() at sfx2/source/sidebar/Panel.cxx:106:25 > #9 in VclReferenceBase::disposeOnce() at vcl/source/outdev/vclreferencebase.cxx:38:5 > #10 in VclPtr<sfx2::sidebar::Panel>::disposeAndClear() at include/vcl/vclptr.hxx:206:19 > #11 in sfx2::sidebar::Deck::dispose() at sfx2/source/sidebar/Deck.cxx:92:17 > #12 in VclReferenceBase::disposeOnce() at vcl/source/outdev/vclreferencebase.cxx:38:5 > #13 in VclPtr<sfx2::sidebar::Deck>::disposeAndClear() at include/vcl/vclptr.hxx:206:19 > #14 in sfx2::sidebar::SidebarController::CreateDeck(rtl::OUString const&, sfx2::sidebar::Context const&, bool) at sfx2/source/sidebar/SidebarController.cxx:664:19 > #15 in sfx2::sidebar::SidebarController::SwitchToDeck(sfx2::sidebar::DeckDescriptor const&, sfx2::sidebar::Context const&) at sfx2/source/sidebar/SidebarController.cxx:822:5 > #16 in sfx2::sidebar::SidebarController::UpdateConfigurations() at sfx2/source/sidebar/SidebarController.cxx:569:9 > #17 in sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, SfxViewFrame const*)::$_3::operator()() const at sfx2/source/sidebar/SidebarController.cxx:140:52 > #18 in void std::__invoke_impl<void, sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, SfxViewFrame const*)::$_3&>(std::__invoke_other, sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, SfxViewFrame const*)::$_3&) at include/c++/10.0.1/bits/invoke.h:60:14 > #19 in std::enable_if<is_invocable_r_v<void, sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, SfxViewFrame const*)::$_3&>, void>::type std::__invoke_r<void, sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, SfxViewFrame const*)::$_3&>(sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, SfxViewFrame const*)::$_3&) at include/c++/10.0.1/bits/invoke.h:110:2 > #20 in std::_Function_handler<void (), sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, SfxViewFrame const*)::$_3>::_M_invoke(std::_Any_data const&) at include/c++/10.0.1/bits/std_function.h:291:9 > #21 in std::function<void ()>::operator()() const at include/c++/10.0.1/bits/std_function.h:622:14 > #22 in sfx2::sidebar::AsynchronousCall::HandleUserCall(void*) at sfx2/source/sidebar/AsynchronousCall.cxx:66:9 > #23 in sfx2::sidebar::AsynchronousCall::LinkStubHandleUserCall(void*, void*) at sfx2/source/sidebar/AsynchronousCall.cxx:62:1 > #24 in Link<void*, void>::Call(void*) const at include/tools/link.hxx:111:45 > #25 in ImplHandleUserEvent(ImplSVEvent*) at vcl/source/window/winproc.cxx:2009:30 > #26 in ImplWindowFrameProc(vcl::Window*, SalEvent, void const*) at vcl/source/window/winproc.cxx:2562:13 > #27 in SalFrame::CallCallback(SalEvent, void const*) const at vcl/inc/salframe.hxx:306:29 > #28 in SalGenericDisplay::ProcessEvent(SalUserEventList::SalUserEvent) at vcl/unx/generic/app/gendisp.cxx:66:22 > #29 in SalUserEventList::DispatchUserEvents(bool) at vcl/source/app/salusereventlist.cxx:108:17 > #30 in SalGenericDisplay::DispatchInternalEvent(bool) at vcl/unx/generic/app/gendisp.cxx:51:12 > #31 in SalX11Display::Yield() at vcl/unx/generic/app/saldisp.cxx:1918:9 > #32 in DisplayYield(int, void*) at vcl/unx/generic/app/saldisp.cxx:414:13 > #33 in (anonymous namespace)::YieldEntry::HandleNextEvent() const at vcl/unx/generic/app/saldata.cxx:566:38 > #34 in SalXLib::Yield(bool, bool) at vcl/unx/generic/app/saldata.cxx:662:25 > #35 in X11SalInstance::DoYield(bool, bool) at vcl/unx/generic/app/salinst.cxx:182:20 > #36 in ImplYield(bool, bool) at vcl/source/app/svapp.cxx:454:48 > #37 in Application::Yield() at vcl/source/app/svapp.cxx:518:5 > #38 in Dialog::Execute() at vcl/source/window/dialog.cxx:1032:9 > #39 in SalInstanceDialog::run() at vcl/source/app/salvtables.cxx:1480:23 > #40 in weld::DialogController::run() at include/vcl/weld.hxx:2196:47 > #41 in chart::ChartController::executeDispatch_OpenLegendDialog() at chart2/source/controller/main/ChartController_Insert.cxx:227:18 > #42 in chart::ChartController::dispatch(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at chart2/source/controller/main/ChartController.cxx:1130:15 > #43 in ChartUIObject::PostCommand(void*) at chart2/source/controller/uitest/uiobject.cxx:76:41 > #44 in ChartUIObject::LinkStubPostCommand(void*, void*) at chart2/source/controller/uitest/uiobject.cxx:72:1 > #45 in Link<void*, void>::Call(void*) const at include/tools/link.hxx:111:45 > #46 in ImplHandleUserEvent(ImplSVEvent*) at vcl/source/window/winproc.cxx:2009:30 > #47 in ImplWindowFrameProc(vcl::Window*, SalEvent, void const*) at vcl/source/window/winproc.cxx:2562:13 > #48 in SalFrame::CallCallback(SalEvent, void const*) const at vcl/inc/salframe.hxx:306:29 > #49 in SalGenericDisplay::ProcessEvent(SalUserEventList::SalUserEvent) at vcl/unx/generic/app/gendisp.cxx:66:22 > #50 in SalUserEventList::DispatchUserEvents(bool) at vcl/source/app/salusereventlist.cxx:108:17 > #51 in SalGenericDisplay::DispatchInternalEvent(bool) at vcl/unx/generic/app/gendisp.cxx:51:12 > #52 in SalX11Display::Yield() at vcl/unx/generic/app/saldisp.cxx:1918:9 > #53 in DisplayYield(int, void*) at vcl/unx/generic/app/saldisp.cxx:414:13 > #54 in (anonymous namespace)::YieldEntry::HandleNextEvent() const at vcl/unx/generic/app/saldata.cxx:566:38 > #55 in SalXLib::Yield(bool, bool) at vcl/unx/generic/app/saldata.cxx:662:25 > #56 in X11SalInstance::DoYield(bool, bool) at vcl/unx/generic/app/salinst.cxx:182:20 > #57 in ImplYield(bool, bool) at vcl/source/app/svapp.cxx:454:48 > #58 in Application::Reschedule(bool) at vcl/source/app/svapp.cxx:467:12 > #59 in (anonymous namespace)::ExecuteWrapper::ExecuteActionHdl(Timer*) at vcl/source/uitest/uno/uiobject_uno.cxx:91:13 > #60 in (anonymous namespace)::ExecuteWrapper::LinkStubExecuteActionHdl(void*, Timer*) at vcl/source/uitest/uno/uiobject_uno.cxx:78:1 > #61 in Link<Timer*, void>::Call(Timer*) const at include/tools/link.hxx:111:45 > #62 in Timer::Invoke() at vcl/source/app/timer.cxx:75:21 > #63 in Scheduler::ProcessTaskScheduling() at vcl/source/app/scheduler.cxx:478:20 > #64 in Scheduler::CallbackTaskScheduling() at vcl/source/app/scheduler.cxx:287:5 > #65 in SalTimer::CallCallback() at vcl/inc/saltimer.hxx:54:13 > #66 in X11SalData::Timeout() at vcl/unx/generic/app/saldata.cxx:551:41 > #67 in SalXLib::CheckTimeout(bool) at vcl/unx/generic/app/saldata.cxx:635:17 > #68 in SalXLib::Yield(bool, bool) at vcl/unx/generic/app/saldata.cxx:716:25 > #69 in X11SalInstance::DoYield(bool, bool) at vcl/unx/generic/app/salinst.cxx:182:20 > #70 in ImplYield(bool, bool) at vcl/source/app/svapp.cxx:454:48 > #71 in Application::Yield() at vcl/source/app/svapp.cxx:518:5 > #72 in Application::Execute() at vcl/source/app/svapp.cxx:433:9 > #73 in desktop::Desktop::Main() at desktop/source/app/app.cxx:1602:17 > #74 in ImplSVMain() at vcl/source/app/svmain.cxx:196:35 > #75 in SVMain() at vcl/source/app/svmain.cxx:228:12 > #76 in soffice_main at desktop/source/app/sofficemain.cxx:107:12 > #77 in sal_main at desktop/source/app/main.c:48:15 > #78 in main at desktop/source/app/main.c:47:1 > previously allocated by thread T0 here: > #0 in operator new(unsigned long) at compiler-rt/lib/asan/asan_new_delete.cpp:99:3 > #1 in VclPtr<chart::sidebar::ChartLinePanel> VclPtr<chart::sidebar::ChartLinePanel>::Create<vcl::Window*&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, chart::ChartController*&>(vcl::Window*&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, chart::ChartController*&) at include/vcl/vclptr.hxx:129:42 > #2 in chart::sidebar::ChartLinePanel::Create(vcl::Window*, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, chart::ChartController*) at chart2/source/controller/sidebar/ChartLinePanel.cxx:117:12 > #3 in chart::sidebar::ChartPanelFactory::createUIElement(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at chart2/source/controller/sidebar/Chart2PanelFactory.cxx:107:22 > #4 in non-virtual thunk to chart::sidebar::ChartPanelFactory::createUIElement(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at chart2/source/controller/sidebar/Chart2PanelFactory.cxx > #5 in (anonymous namespace)::UIElementFactoryManager::createUIElement(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/uifactory/uielementfactorymanager.cxx:437:39 > #6 in non-virtual thunk to (anonymous namespace)::UIElementFactoryManager::createUIElement(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/uifactory/uielementfactorymanager.cxx > #7 in sfx2::sidebar::SidebarController::CreateUIElement(com::sun::star::uno::Reference<com::sun::star::awt::XWindowPeer> const&, rtl::OUString const&, bool, sfx2::sidebar::Context const&) at sfx2/source/sidebar/SidebarController.cxx:967:32 > #8 in sfx2::sidebar::SidebarController::CreatePanel(rtl::OUString const&, vcl::Window*, bool, sfx2::sidebar::Context const&, VclPtr<sfx2::sidebar::Deck> const&) at sfx2/source/sidebar/SidebarController.cxx:908:43 > #9 in sfx2::sidebar::SidebarController::CreatePanels(rtl::OUString const&, sfx2::sidebar::Context const&) at sfx2/source/sidebar/SidebarController.cxx:720:41 > #10 in sfx2::sidebar::SidebarController::CreateDeck(rtl::OUString const&, sfx2::sidebar::Context const&, bool) at sfx2/source/sidebar/SidebarController.cxx:672:5 > #11 in sfx2::sidebar::SidebarController::SwitchToDeck(sfx2::sidebar::DeckDescriptor const&, sfx2::sidebar::Context const&) at sfx2/source/sidebar/SidebarController.cxx:822:5 > #12 in sfx2::sidebar::SidebarController::UpdateConfigurations() at sfx2/source/sidebar/SidebarController.cxx:569:9 > #13 in sfx2::sidebar::SidebarController::notifyContextChangeEvent(com::sun::star::ui::ContextChangeEventObject const&) at sfx2/source/sidebar/SidebarController.cxx:323:9 > #14 in (anonymous namespace)::ContextChangeEventMultiplexer::addContextChangeEventListener(com::sun::star::uno::Reference<com::sun::star::ui::XContextChangeEventListener> const&, com::sun::star::uno::Reference<com::sun::star::uno::XInterface> const&) at framework/source/services/ContextChangeEventMultiplexer.cxx:176:29 > #15 in sfx2::sidebar::SidebarController::registerSidebarForFrame(sfx2::sidebar::SidebarController*, com::sun::star::uno::Reference<com::sun::star::frame::XController> const&) at sfx2/source/sidebar/SidebarController.cxx:213:19 > #16 in chart::ChartController::attachFrame(com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) at chart2/source/controller/main/ChartController.cxx:400:9 > #17 in chart::ChartFrameLoader::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) at chart2/source/controller/main/ChartFrameloader.cxx:133:22 > #18 in framework::LoadEnv::impl_loadContent() at framework/source/loadenv/loadenv.cxx:1157:37 > #19 in framework::LoadEnv::start() at framework/source/loadenv/loadenv.cxx:395:20 > #20 in framework::LoadEnv::startLoading(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, rtl::OUString const&, int, LoadEnvFeatures) at framework/source/loadenv/loadenv.cxx:300:5 > #21 in framework::LoadEnv::loadComponentFromURL(com::sun::star::uno::Reference<com::sun::star::frame::XComponentLoader> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/loadenv/loadenv.cxx:169:14 > #22 in (anonymous namespace)::XFrameImpl::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/services/frame.cxx:590:16 > #23 in non-virtual thunk to (anonymous namespace)::XFrameImpl::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/services/frame.cxx > #24 in DocumentHolder::LoadDocToFrame(bool) at embeddedobj/source/general/docholder.cxx:984:31 > #25 in DocumentHolder::ShowInplace(com::sun::star::uno::Reference<com::sun::star::awt::XWindowPeer> const&, com::sun::star::awt::Rectangle const&, com::sun::star::uno::Reference<com::sun::star::frame::XDispatchProvider> const&) at embeddedobj/source/general/docholder.cxx:477:15 > #26 in OCommonEmbeddedObject::SwitchStateTo_Impl(int) at embeddedobj/source/commonembedding/embedobj.cxx:252:42 > #27 in OCommonEmbeddedObject::changeState(int) at embeddedobj/source/commonembedding/embedobj.cxx:451:17 > #28 in OCommonEmbeddedObject::doVerb(int) at embeddedobj/source/commonembedding/embedobj.cxx:537:9 > #29 in SfxInPlaceClient::DoVerb(long) at sfx2/source/view/ipclient.cxx:950:40 > #30 in ScTabViewShell::ActivateObject(SdrOle2Obj*, long) at sc/source/ui/view/tabvwshb.cxx:205:29 > #31 in ScGridWinUIObject::execute(rtl::OUString const&, std::__debug::map<rtl::OUString const, rtl::OUString, std::less<rtl::OUString const>, std::allocator<std::pair<rtl::OUString const, rtl::OUString> > > const&) at sc/source/ui/uitest/uiobject.cxx:175:29 > #32 in UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0::operator()() const at vcl/source/uitest/uno/uiobject_uno.cxx:124:16 > #33 in void std::__invoke_impl<void, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&>(std::__invoke_other, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&) at include/c++/10.0.1/bits/invoke.h:60:14 > #34 in std::enable_if<is_invocable_r_v<void, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&>, void>::type std::__invoke_r<void, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&>(UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&) at include/c++/10.0.1/bits/invoke.h:110:2 > #35 in std::_Function_handler<void (), UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0>::_M_invoke(std::_Any_data const&) at include/c++/10.0.1/bits/std_function.h:291:9 > #36 in std::function<void ()>::operator()() const at include/c++/10.0.1/bits/std_function.h:622:14 > #37 in (anonymous namespace)::ExecuteWrapper::ExecuteActionHdl(Timer*) at vcl/source/uitest/uno/uiobject_uno.cxx:83:13 > #38 in (anonymous namespace)::ExecuteWrapper::LinkStubExecuteActionHdl(void*, Timer*) at vcl/source/uitest/uno/uiobject_uno.cxx:78:1 > #39 in Link<Timer*, void>::Call(Timer*) const at include/tools/link.hxx:111:45 > #40 in Timer::Invoke() at vcl/source/app/timer.cxx:75:21 > #41 in Scheduler::ProcessTaskScheduling() at vcl/source/app/scheduler.cxx:478:20 > #42 in Scheduler::CallbackTaskScheduling() at vcl/source/app/scheduler.cxx:287:5 > #43 in SalTimer::CallCallback() at vcl/inc/saltimer.hxx:54:13 > #44 in X11SalData::Timeout() at vcl/unx/generic/app/saldata.cxx:551:41 > #45 in SalXLib::CheckTimeout(bool) at vcl/unx/generic/app/saldata.cxx:635:17 > #46 in SalXLib::Yield(bool, bool) at vcl/unx/generic/app/saldata.cxx:716:25 > #47 in X11SalInstance::DoYield(bool, bool) at vcl/unx/generic/app/salinst.cxx:182:20 > #48 in ImplYield(bool, bool) at vcl/source/app/svapp.cxx:454:48 > #49 in Application::Yield() at vcl/source/app/svapp.cxx:518:5 > #50 in Application::Execute() at vcl/source/app/svapp.cxx:433:9 > #51 in desktop::Desktop::Main() at desktop/source/app/app.cxx:1602:17 > #52 in ImplSVMain() at vcl/source/app/svmain.cxx:196:35 > #53 in SVMain() at vcl/source/app/svmain.cxx:228:12 > #54 in soffice_main at desktop/source/app/sofficemain.cxx:107:12 > #55 in sal_main at desktop/source/app/main.c:48:15 > #56 in main at desktop/source/app/main.c:47:1 The changes that were necessary to fix that scenario are those in ChartAreaPanel.cxx and ChartLinePanel.cxx, but the other updateModel implementations look equally broken. Change-Id: I064fb701dc10e7cb7ef7ea5839f7dd1ae8d0ebba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91467 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
make a copy of m_pImpGraphicList because if we swap out a svg, the svg filter may create more temp Graphics which are auto-added to m_pImpGraphicList invalidating a loop over m_pImpGraphicList #0 0x00007ffff0d25ae5 in vcl::graphic::Manager::reduceGraphicMemory() (this=0x7ffff1bc4760 <vcl::graphic::Manager::get()::gStaticManager>) at vcl/source/graphic/Manager.cxx:88 #1 0x00007ffff0d25ee9 in vcl::graphic::Manager::registerGraphic(std::shared_ptr<ImpGraphic> const&, rtl::OUString const&) (this=0x7ffff1bc4760 <vcl::graphic::Manager::get()::gStaticManager>, pImpGraphic=std::shared_ptr<ImpGraphic> (use count 1, weak count 0) = {...}) at vcl/source/graphic/Manager.cxx:139 #2 0x00007ffff0d26406 in vcl::graphic::Manager::newInstance() (this=0x7ffff1bc4760 <vcl::graphic::Manager::get()::gStaticManager>) at vcl/source/graphic/Manager.cxx:184 #3 0x00007ffff0b6735c in Graphic::Graphic() (this=0x7fffffff84f0) at vcl/source/gdi/graph.cxx:182 #4 0x00007fffdc526600 in svgio::svgreader::SvgImageNode::decomposeSvgNode(drawinglayer::primitive2d::Primitive2DContainer&, bool) const (this=0x555556817940, rTarget=...) at svgio/source/svgreader/svgimagenode.cxx:219 #5 0x00007fffdc52e75d in svgio::svgreader::SvgNode::decomposeSvgNode(drawinglayer::primitive2d::Primitive2DContainer&, bool) const (this=0x55555a6a93d0, rTarget=..., bReferenced=false) at svgio/source/svgreader/svgnode.cxx:529 #6 0x00007fffdc522339 in svgio::svgreader::SvgGNode::decomposeSvgNode(drawinglayer::primitive2d::Primitive2DContainer&, bool) const (this=0x55555a6a93d0, rTarget=..., bReferenced=false) at svgio/source/svgreader/svggnode.cxx:106 #7 0x00007fffdc52e75d in svgio::svgreader::SvgNode::decomposeSvgNode(drawinglayer::primitive2d::Primitive2DContainer&, bool) const (this=0x55555a6a9070, rTarget=..., bReferenced=false) at svgio/source/svgreader/svgnode.cxx:529 #8 0x00007fffdc522339 in svgio::svgreader::SvgGNode::decomposeSvgNode(drawinglayer::primitive2d::Primitive2DContainer&, bool) const (this=0x55555a6a9070, rTarget=..., bReferenced=false) at svgio/source/svgreader/svggnode.cxx:106 #9 0x00007fffdc52e75d in svgio::svgreader::SvgNode::decomposeSvgNode(drawinglayer::primitive2d::Primitive2DContainer&, bool) const (this=0x55555a5f9150, rTarget=..., bReferenced=false) at svgio/source/svgreader/svgnode.cxx:529 #10 0x00007fffdc54d19f in svgio::svgreader::SvgSvgNode::decomposeSvgNode(drawinglayer::primitive2d::Primitive2DContainer&, bool) const (this=0x55555a5f9150, rTarget=..., bReferenced=false) at svgio/source/svgreader/svgsvgnode.cxx:304 #11 0x00007fffdc571373 in svgio::svgreader::(anonymous namespace)::XSvgParser::getDecomposition(com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, rtl::OUString const&) (this=0x55555a69c6d0, xSVGStream=uno::Reference to (comphelper::SequenceInputStream *) 0x555557480668, aAbsolutePath="") at svgio/source/svguno/xsvgparser.cxx:160 #12 0x00007ffff0cf849b in VectorGraphicData::ensureSequenceAndRange() (this=0x555556ea7540) at vcl/source/gdi/vectorgraphicdata.cxx:196 #13 0x00007ffff0cf9124 in VectorGraphicData::getRange() const (this=0x555556ea7540) at vcl/source/gdi/vectorgraphicdata.cxx:323 #14 0x00007ffff0b74da7 in ImpGraphic::ImplGetPrefSize() const (this=0x5555588b00f0) at vcl/source/gdi/impgraph.cxx:778 #15 0x00007ffff0b76623 in ImpGraphic::ImplWriteEmbedded(SvStream&) (this=0x5555588b00f0, rOStm=...) at vcl/source/gdi/impgraph.cxx:1235 #16 0x00007ffff0b770a1 in ImpGraphic::ImplSwapOut(SvStream*) (this=0x5555588b00f0, xOStm=0x55555826b7d0) at vcl/source/gdi/impgraph.cxx:1377 #17 0x00007ffff0b76bdb in ImpGraphic::ImplSwapOut() (this=0x5555588b00f0) at vcl/source/gdi/impgraph.cxx:1328 #18 0x00007ffff0d25c88 in vcl::graphic::Manager::reduceGraphicMemory() (this=0x7ffff1bc4760 <vcl::graphic::Manager::get()::gStaticManager>) at vcl/source/graphic/Manager.cxx:107 #19 0x00007ffff0d25ee9 in vcl::graphic::Manager::registerGraphic(std::shared_ptr<ImpGraphic> const&, rtl::OUString const&) (this=0x7ffff1bc4760 <vcl::graphic::Manager::get()::gStaticManager>, pImpGraphic=std::shared_ptr<ImpGraphic> (use count 1, weak count 0) = {...}) at vcl/source/graphic/Manager.cxx:139 #20 0x00007ffff0d26406 in vcl::graphic::Manager::newInstance() (this=0x7ffff1bc4760 <vcl::graphic::Manager::get()::gStaticManager>) at vcl/source/graphic/Manager.cxx:184 #21 0x00007ffff0b6735c in Graphic::Graphic() (this=0x555556d5ea68) at vcl/source/gdi/graph.cxx:182 Change-Id: I4e1ffcb12ead0d53b7ca2f369154e9c753af77d8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91650 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
If something goes wrong, better keep the testing Python and the tested soffice process in a state in which the actual problem can (hopefully) be debugged better. I happened to run into a hung UITest_chart on Linux, where soffice.bin was still at > Thread 1 (Thread 0x7f2e2b280fc0 (LWP 1906251)): > #0 futex_abstimed_wait_cancelable (private=0, abstime=0x7f2e27b59a80, clockid=<optimized out>, expected=0, futex_word=0x60e000024e8c) at /usr/src/debug/glibc-2.31-17-gab029a2801/sysdeps/nptl/futex-internal.h:320 > #1 __pthread_cond_wait_common (abstime=0x7f2e27b59a80, clockid=<optimized out>, mutex=0x60e000024e38, cond=0x60e000024e60) at /usr/src/debug/glibc-2.31-17-gab029a2801/nptl/pthread_cond_wait.c:520 > #2 __pthread_cond_clockwait (abstime=0x7f2e27b59a80, clockid=<optimized out>, mutex=0x60e000024e38, cond=0x60e000024e60) at /usr/src/debug/glibc-2.31-17-gab029a2801/nptl/pthread_cond_wait.c:677 > #3 __pthread_cond_clockwait (cond=0x60e000024e60, mutex=0x60e000024e38, clockid=<optimized out>, abstime=0x7f2e27b59a80) at /usr/src/debug/glibc-2.31-17-gab029a2801/nptl/pthread_cond_wait.c:665 > #4 0x00007f2e5fead808 in std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lock<std::mutex>&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (this=0x60e000024e60, __lock=..., __atime=...) at include/c++/10.0.1/condition_variable:210 > #5 0x00007f2e5fead295 in std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lock<std::mutex>&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (this=0x60e000024e60, __lock=..., __atime=...) at include/c++/10.0.1/condition_variable:120 > #6 0x00007f2e5fea8f05 in std::condition_variable::wait_until<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> >, SvpSalInstance::DoYield(bool, bool)::$_2>(std::unique_lock<std::mutex>&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&, SvpSalInstance::DoYield(bool, bool)::$_2) (this=0x60e000024e60, __lock=..., __atime=..., __p=...) at include/c++/10.0.1/condition_variable:159 > #7 0x00007f2e5fea6e60 in std::condition_variable::wait_for<long, std::ratio<1l, 1000l>, SvpSalInstance::DoYield(bool, bool)::$_2>(std::unique_lock<std::mutex>&, std::chrono::duration<long, std::ratio<1l, 1000l> > const&, SvpSalInstance::DoYield(bool, bool)::$_2) (this=0x60e000024e60, __lock=..., __rtime=..., __p=...) at include/c++/10.0.1/condition_variable:186 > #8 0x00007f2e5fea5a8e in SvpSalInstance::DoYield(bool, bool) (this=0x611000001bc0, bWait=true, bHandleAllCurrentEvents=false) at vcl/headless/svpinst.cxx:497 > #9 0x00007f2e5f3a232d in ImplYield(bool, bool) (i_bWait=true, i_bAllEvents=false) at vcl/source/app/svapp.cxx:454 > #10 0x00007f2e5f3a18e8 in Application::Yield() () at vcl/source/app/svapp.cxx:518 > #11 0x00007f2e5bf32c2d in Dialog::Execute() (this=0x61a000072080) at vcl/source/window/dialog.cxx:1032 > #12 0x00007f2e5efdcd62 in SalInstanceDialog::run() (this=0x619000091080) at vcl/source/app/salvtables.cxx:1480 > #13 0x00007f2dc37421fd in weld::DialogController::run() (this=0x61200077c5c0) at include/vcl/weld.hxx:2227 > #14 0x00007f2dc39672f2 in chart::CreationWizardUnoDlg::execute() (this=0x610000168d40) at chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx:189 > #15 0x00007f2df91f2507 in FuInsertChart::FuInsertChart(ScTabViewShell&, vcl::Window*, ScDrawView*, SdrModel*, SfxRequest&) (this=0x7f2e27f1a300, rViewSh=..., pWin=0x61a0001e8a80, pViewP=0x61d0001f6880, pDoc=0x617000066a00, rReq=...) at sc/source/ui/drawfunc/fuins2.cxx:673 > #16 0x00007f2dfaf9a379 in ScTabViewShell::ExecDrawIns(SfxRequest&) (this=0x61d0001eaa80, rReq=...) at sc/source/ui/view/tabvwshb.cxx:336 > #17 0x00007f2dfaedf365 in SfxStubScTabViewShellExecDrawIns(SfxShell*, SfxRequest&) (pShell=0x61d0001eaa80, rReq=...) at workdir/SdiTarget/sc/sdi/scslots.hxx:1447 > #18 0x00007f2e8031ded6 in SfxShell::CallExec(void (*)(SfxShell*, SfxRequest&), SfxRequest&) (this=0x61d0001eaa80, pFunc=0x7f2dfaedf240 <SfxStubScTabViewShellExecDrawIns(SfxShell*, SfxRequest&)>, rReq=...) at include/sfx2/shell.hxx:197 > #19 0x00007f2e802a77ff in SfxDispatcher::Call_Impl(SfxShell&, SfxSlot const&, SfxRequest&, bool) (this=0x6020002f3dd0, rShell=..., rSlot=..., rReq=..., bRecord=true) at sfx2/source/control/dispatch.cxx:251 > #20 0x00007f2e802aacb6 in SfxDispatcher::PostMsgHandler(std::unique_ptr<SfxRequest, std::default_delete<SfxRequest> >) (this=0x6020002f3dd0, pReq=std::unique_ptr<class SfxRequest> = {...}) at sfx2/source/control/dispatch.cxx:988 [...] but the Python process was already at > Traceback (most recent call first): > <built-in method waitpid of module object at remote 0x60800002d1c0> > File "instdir/program/python-core-3.7.7/lib/subprocess.py", line 1611, in _try_wait > (pid, sts) = os.waitpid(self.pid, wait_flags) > File "instdir/program/python-core-3.7.7/lib/subprocess.py", line 1653, in _wait > (pid, sts) = self._try_wait(0) > File "instdir/program/python-core-3.7.7/lib/subprocess.py", line 1019, in wait > return self._wait(timeout=timeout) > File "uitest/libreoffice/connection.py", line 133, in tearDown > ret = self.soffice.wait() > File "uitest/libreoffice/connection.py", line 178, in tearDown > self.connection.tearDown() > File "uitest/uitest/framework.py", line 46, in tearDown > self.connection.tearDown() > File "instdir/program/python-core-3.7.7/lib/unittest/case.py", line 631, in run > self.tearDown() > File "instdir/program/python-core-3.7.7/lib/unittest/case.py", line 676, in __call__ > return self.run(*args, **kwds) > File "instdir/program/python-core-3.7.7/lib/unittest/suite.py", line 122, in run > test(result) > File "instdir/program/python-core-3.7.7/lib/unittest/suite.py", line 84, in __call__ > return self.run(*args, **kwds) > File "instdir/program/python-core-3.7.7/lib/unittest/runner.py", line 176, in run > test(result) > File "uitest/test_main.py", line 128, in <module> > result = unittest.TextTestRunner(stream=sys.stdout, verbosity=2).run(test_suite) and the relevant > ====================================================================== > ERROR: test_tdf99069_chart_cancel_data_ranges_dialog (tdf99069.tdf99069) > ---------------------------------------------------------------------- > Traceback (most recent call last): > File "sc/qa/uitest/chart/tdf99069.py", line 32, in test_tdf99069_chart_cancel_data_ranges_dialog > self.ui_test.execute_dialog_through_command(".uno:InsertObjectChart") > File "uitest/uitest/test.py", line 83, in execute_dialog_through_command > raise DialogNotExecutedException(command) > uitest.test.DialogNotExecutedException: Dialog not executed for: .uno:InsertObjectChart had not yet been written to workdir/UITest/chart/done.log (Python's unittest appears to unhelpfully hold back such vital information until the very end of the full test run). That means DialogNotClosedException is unused now and can thus be removed. Change-Id: I556ae52f05b1362f4e78f2de362a7b4f9b8a0cf7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92959 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
...presumably introduced by what looks like typos in e9164b9 "lok: shape scaling rework" > } > // size > if (SfxItemState::SET==rAttr.GetItemState(SID_ATTR_TRANSFORM_WIDTH,true,&pPoolItem)) { > - nSizX=static_cast<const SfxUInt32Item*>(pPoolItem)->GetValue(); > + nSizX=static_cast<const SfxInt32Item*>(pPoolItem)->GetValue(); > bChgSiz=true; > bChgWdh=true; > } > if (SfxItemState::SET==rAttr.GetItemState(SID_ATTR_TRANSFORM_HEIGHT,true,&pPoolItem)) { > - nSizY=static_cast<const SfxUInt32Item*>(pPoolItem)->GetValue(); > + nSizY=static_cast<const SfxInt32Item*>(pPoolItem)->GetValue(); > bChgSiz=true; > bChgHgt=true; > } but only showing up now (presumably due to newly added test code in 2f4ea95 "lok: unit test for metric field or formatted field control") during CppunitTest_desktop_lib: > svx/source/svdraw/svdedtv1.cxx:1602:15: runtime error: downcast of address 0x603001642720 which does not point to an object of type 'const SfxInt32Item' > 0x603001642720: note: object is of type 'SfxUInt32Item' > 7a 04 80 2b 50 bb 0f 7f cb 7f 00 00 01 00 00 00 6a 27 00 be bc e8 02 00 be be be be be be be be > ^~~~~~~~~~~~~~~~~~~~~~~ > vptr for 'SfxUInt32Item' > #0 in SdrEditView::SetGeoAttrToMarked(SfxItemSet const&) at svx/source/svdraw/svdedtv1.cxx:1602:15 > #1 in ScDrawShell::ExecDrawAttr(SfxRequest&) at sc/source/ui/drawfunc/drawsh.cxx:385:32 > #2 in SfxStubScDrawShellExecDrawAttr(SfxShell*, SfxRequest&) at workdir/SdiTarget/sc/sdi/scslots.hxx:2779:1 > #3 in SfxShell::CallExec(void (*)(SfxShell*, SfxRequest&), SfxRequest&) at include/sfx2/shell.hxx:197:35 > #4 in SfxDispatcher::Call_Impl(SfxShell&, SfxSlot const&, SfxRequest&, bool) at sfx2/source/control/dispatch.cxx:252:16 > #5 in SfxDispatcher::Execute_(SfxShell&, SfxSlot const&, SfxRequest&, SfxCallMode) at sfx2/source/control/dispatch.cxx:752:9 > #6 in SfxDispatcher::ExecuteList(unsigned short, SfxCallMode, std::initializer_list<SfxPoolItem const*>, std::initializer_list<SfxPoolItem const*>) at sfx2/source/control/dispatch.cxx:960:8 > #7 in svx::sidebar::PosSizePropertyPanel::executeSize() at svx/source/sidebar/possize/PosSizePropertyPanel.cxx:848:45 > #8 in svx::sidebar::PosSizePropertyPanel::ChangeWidthHdl(weld::MetricSpinButton&) at svx/source/sidebar/possize/PosSizePropertyPanel.cxx:378:5 > #9 in svx::sidebar::PosSizePropertyPanel::LinkStubChangeWidthHdl(void*, weld::MetricSpinButton&) at svx/source/sidebar/possize/PosSizePropertyPanel.cxx:360:1 > #10 in Link<weld::MetricSpinButton&, void>::Call(weld::MetricSpinButton&) const at include/tools/link.hxx:111:45 > #11 in weld::MetricSpinButton::signal_value_changed() at include/vcl/weld.hxx:1721:54 > #12 in weld::MetricSpinButton::spin_button_value_changed(weld::SpinButton&) at vcl/source/window/builder.cxx:192:9 > #13 in weld::MetricSpinButton::LinkStubspin_button_value_changed(void*, weld::SpinButton&) at vcl/source/window/builder.cxx:190:5 > #14 in Link<weld::SpinButton&, void>::Call(weld::SpinButton&) const at include/tools/link.hxx:111:45 > #15 in weld::SpinButton::signal_value_changed() at include/vcl/weld.hxx:1490:54 > #16 in SalInstanceSpinButton::UpDownHdl(SpinField&) at vcl/source/app/salvtables.cxx:5169:71 > #17 in SalInstanceSpinButton::LinkStubUpDownHdl(void*, SpinField&) at vcl/source/app/salvtables.cxx:5169:1 > #18 in Link<SpinField&, void>::Call(SpinField&) const at include/tools/link.hxx:111:45 > #19 in SpinField::Up()::$_0::operator()() const at vcl/source/control/spinfld.cxx:361:88 > #20 in void std::__invoke_impl<void, SpinField::Up()::$_0&>(std::__invoke_other, SpinField::Up()::$_0&) at include/c++/11.0.0/bits/invoke.h:60:14 > #21 in std::enable_if<is_invocable_r_v<void, SpinField::Up()::$_0&>, void>::type std::__invoke_r<void, SpinField::Up()::$_0&>(SpinField::Up()::$_0&) at include/c++/11.0.0/bits/invoke.h:110:2 > #22 in std::_Function_handler<void (), SpinField::Up()::$_0>::_M_invoke(std::_Any_data const&) at include/c++/11.0.0/bits/std_function.h:291:9 > #23 in std::function<void ()>::operator()() const at include/c++/11.0.0/bits/std_function.h:622:14 > #24 in Control::ImplCallEventListenersAndHandler(VclEventId, std::function<void ()> const&) at vcl/source/control/ctrl.cxx:315:13 > #25 in SpinField::Up() at vcl/source/control/spinfld.cxx:361:5 > #26 in FormattedField::SetValueFromString(rtl::OUString const&) at vcl/source/control/fmtfield.cxx:854:20 > #27 in FormattedFieldUIObject::execute(rtl::OUString const&, std::__debug::map<rtl::OUString const, rtl::OUString, std::less<rtl::OUString const>, std::allocator<std::pair<rtl::OUString const, rtl::OUString> > > const&) at vcl/source/uitest/uiobject.cxx:1361:31 > #28 in DesktopLOKTest::testMetricField() at desktop/qa/desktop_lib/test_desktop_lib.cxx:2858:13 Change-Id: I57988723e23f5a419639e37fe130bad92682a1a2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94178 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
If something goes wrong, better keep the testing Python and the tested soffice process in a state in which the actual problem can (hopefully) be debugged better. I happened to run into a hung UITest_options on Linux, where soffice.bin was still at > Thread 1 (Thread 0x7fa6371d9fc0 (LWP 1210042)): > #0 futex_abstimed_wait_cancelable (private=0, abstime=0x7fa633a17f80, clockid=<optimized out>, expected=0, futex_word=0x60e000024e88) at /usr/src/debug/glibc-2.31-17-gab029a2801/sysdeps/nptl/futex-internal.h:320 > #1 __pthread_cond_wait_common (abstime=0x7fa633a17f80, clockid=<optimized out>, mutex=0x60e000024e38, cond=0x60e000024e60) at /usr/src/debug/glibc-2.31-17-gab029a2801/nptl/pthread_cond_wait.c:520 > #2 __pthread_cond_clockwait (abstime=0x7fa633a17f80, clockid=<optimized out>, mutex=0x60e000024e38, cond=0x60e000024e60) at /usr/src/debug/glibc-2.31-17-gab029a2801/nptl/pthread_cond_wait.c:677 > #3 __pthread_cond_clockwait (cond=0x60e000024e60, mutex=0x60e000024e38, clockid=<optimized out>, abstime=0x7fa633a17f80) at /usr/src/debug/glibc-2.31-17-gab029a2801/nptl/pthread_cond_wait.c:665 > #4 0x00007fa66899be08 in std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lock<std::mutex>&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (this=0x60e000024e60, __lock=..., __atime=...) at include/c++/10.0.1/condition_variable:210 > #5 0x00007fa66899b895 in std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lock<std::mutex>&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (this=0x60e000024e60, __lock=..., __atime=...) at include/c++/10.0.1/condition_variable:120 > #6 0x00007fa668997505 in std::condition_variable::wait_until<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> >, SvpSalInstance::DoYield(bool, bool)::$_2>(std::unique_lock<std::mutex>&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&, SvpSalInstance::DoYield(bool, bool)::$_2) (this=0x60e000024e60, __lock=..., __atime=..., __p=...) at include/c++/10.0.1/condition_variable:159 > #7 0x00007fa668995460 in std::condition_variable::wait_for<long, std::ratio<1l, 1000l>, SvpSalInstance::DoYield(bool, bool)::$_2>(std::unique_lock<std::mutex>&, std::chrono::duration<long, std::ratio<1l, 1000l> > const&, SvpSalInstance::DoYield(bool, bool)::$_2) (this=0x60e000024e60, __lock=..., __rtime=..., __p=...) at include/c++/10.0.1/condition_variable:186 > #8 0x00007fa66899408e in SvpSalInstance::DoYield(bool, bool) (this=0x611000001bc0, bWait=true, bHandleAllCurrentEvents=false) at vcl/headless/svpinst.cxx:497 > #9 0x00007fa667e7114d in ImplYield(bool, bool) (i_bWait=true, i_bAllEvents=false) at vcl/source/app/svapp.cxx:455 > #10 0x00007fa667e70708 in Application::Yield() () at vcl/source/app/svapp.cxx:519 > #11 0x00007fa66498f6cd in Dialog::Execute() (this=0x618003c16480) at vcl/source/window/dialog.cxx:1030 > #12 0x00007fa667a93812 in SalInstanceDialog::run() (this=0x616000575780) at vcl/source/app/salvtables.cxx:1482 > #13 0x00007fa2e8711b8d in weld::DialogController::run() (this=0x60c004e70d80) at include/vcl/weld.hxx:2289 > #14 0x00007fa2e98a6cbc in OfaTreeOptionsDialog::run() (this=0x60c004e70d80) at cui/source/options/treeopt.cxx:1937 > #15 0x00007fa2e90c4d15 in CuiAbstractController_Impl::Execute() (this=0x60300187b4f0) at cui/source/factory/dlgfact.cxx:103 > #16 0x00007fa688bc9b2d in SfxApplication::OfaExec_Impl(SfxRequest&) (this=0x604006f2fe10, rReq=...) at sfx2/source/appl/appserv.cxx:1311 > #17 0x00007fa688b17655 in SfxStubSfxApplicationOfaExec_Impl(SfxShell*, SfxRequest&) (pShell=0x604006f2fe10, rReq=...) at workdir/SdiTarget/sfx2/sdi/sfxslots.hxx:1270 > #18 0x00007fa6892521f6 in SfxShell::CallExec(void (*)(SfxShell*, SfxRequest&), SfxRequest&) (this=0x604006f2fe10, pFunc=0x7fa688b17530 <SfxStubSfxApplicationOfaExec_Impl(SfxShell*, SfxRequest&)>, rReq=...) at include/sfx2/shell.hxx:197 > #19 0x00007fa6891dbb1f in SfxDispatcher::Call_Impl(SfxShell&, SfxSlot const&, SfxRequest&, bool) (this=0x6020013430b0, rShell=..., rSlot=..., rReq=..., bRecord=true) at sfx2/source/control/dispatch.cxx:252 > #20 0x00007fa6891defd6 in SfxDispatcher::PostMsgHandler(std::unique_ptr<SfxRequest, std::default_delete<SfxRequest> >) (this=0x6020013430b0, pReq=std::unique_ptr<class SfxRequest> = {...}) at sfx2/source/control/dispatch.cxx:989 [...] but the Python process was already at > Traceback (most recent call first): > <built-in method waitpid of module object at remote 0x60800002d140> > File "instdir/program/python-core-3.7.7/lib/subprocess.py", line 1611, in _try_wait > (pid, sts) = os.waitpid(self.pid, wait_flags) > File "instdir/program/python-core-3.7.7/lib/subprocess.py", line 1653, in _wait > (pid, sts) = self._try_wait(0) > File "instdir/program/python-core-3.7.7/lib/subprocess.py", line 1019, in wait > return self._wait(timeout=timeout) > File "uitest/libreoffice/connection.py", line 133, in tearDown > ret = self.soffice.wait() > File "uitest/libreoffice/connection.py", line 178, in tearDown > self.connection.tearDown() > File "uitest/uitest/framework.py", line 46, in tearDown > self.connection.tearDown() > File "instdir/program/python-core-3.7.7/lib/unittest/case.py", line 631, in run > self.tearDown() > File "instdir/program/python-core-3.7.7/lib/unittest/case.py", line 676, in __call__ > return self.run(*args, **kwds) > File "instdir/program/python-core-3.7.7/lib/unittest/suite.py", line 122, in run > test(result) > File "instdir/program/python-core-3.7.7/lib/unittest/suite.py", line 84, in __call__ > return self.run(*args, **kwds) > File "instdir/program/python-core-3.7.7/lib/unittest/runner.py", line 176, in run > test(result) > File "uitest/test_main.py", line 128, in <module> > result = unittest.TextTestRunner(stream=sys.stdout, verbosity=2).run(test_suite) and the relevant > ====================================================================== > ERROR: test_tdf78133_options_app_colors (tdf78133.tdf78133) > ---------------------------------------------------------------------- > Traceback (most recent call last): > File "sw/qa/uitest/options/tdf78133.py", line 38, in test_tdf78133_options_app_colors > self.ui_test.execute_dialog_through_command(".uno:OptionsTreeDialog") #optionsdialog > File "uitest/uitest/test.py", line 78, in execute_dialog_through_command > raise DialogNotExecutedException(command) > uitest.test.DialogNotExecutedException: Dialog not executed for: .uno:OptionsTreeDialog had not yet been written to workdir/UITest/options/done.log (Python's unittest appears to unhelpfully hold back such vital information until the very end of the full test run). There appears to be no test code that relies on a timed-out execute_dialog_through_command throwing an exception instead of hanging (at least, there is no explicit catching of DialogNotExecutedException anywhere in the code, and a full `make check screenshot` on Linux kept working with this change). (This is similar to 19d3dba "Do not time out close_dialog_through_button".) Change-Id: Ie907a091ae09b59e65c4b2676298e147c9d2da2f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94786 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Unfortunately, this isn't fully functional, but didn't want to lose the effort. The problem is that there is no proper config for languages in the unit-tests. So even when we set the language explicitly, it still doesn't apply to the SpellCheckerDispatcher, which is where it matters. This seems to be because the config is not properly propagated and broadcast. Below is the stacktrace as works on desktop. During the unittest the Broadcaster has no change listener for LngSvcMgr, so SpellCheckerDispatcher::SetServiceList doesn't get called. #0 0x00007f47f3fed7e6 in SpellCheckerDispatcher::SetServiceList(com::sun::star::lang::Locale const&, com::sun::star::uno::Sequence<rtl::OUString> const&) (this=0x5589de40e7a0, rLocale=..., rSvcImplNames=uno::Sequence of length 1 = {...}) at /home/ash/prj/master/linguistic/source/spelldsp.cxx:795 #1 0x00007f47f3fcc0ad in LngSvcMgr::Notify(com::sun::star::uno::Sequence<rtl::OUString> const&) (this=0x5589de43b4e0, rPropertyNames=uno::Sequence of length 4 = {...}) at /home/ash/prj/master/linguistic/source/lngsvcmgr.cxx:826 #2 0x00007f47fa2d3c8d in utl::ConfigItem::CallNotify(com::sun::star::uno::Sequence<rtl::OUString> const&) (this=0x5589de43b530, rPropertyNames=uno::Sequence of length 4 = {...}) at /home/ash/prj/master/unotools/source/config/configitem.cxx:181 #3 0x00007f47fa2d3946 in utl::ConfigChangeListener_Impl::changesOccurred(com::sun::star::util::ChangesEvent const&) (this=0x5589de464b90, rEvent=...) at /home/ash/prj/master/unotools/source/config/configitem.cxx:143 #4 0x00007f47e273bb61 in configmgr::Broadcaster::send() (this=0x7ffcc604c5b0) at /home/ash/prj/master/configmgr/source/broadcaster.cxx:182 #5 0x00007f47e277f002 in configmgr::RootAccess::commitChanges() (this=0x5589dd557400) at /home/ash/prj/master/configmgr/source/rootaccess.cxx:171 #6 0x00007f47fa2d80e3 in utl::ConfigItem::ReplaceSetProperties(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x5589dd5571b0, rNode="ServiceManager/SpellCheckerList", rValues=uno::Sequence of length 4 = {...}) at /home/ash/prj/master/unotools/source/config/configitem.cxx:1025 #7 0x00007f47fa339983 in SvtLinguConfig::ReplaceSetProperties(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x7ffcc604cb40, rNode="ServiceManager/SpellCheckerList", rValues=uno::Sequence of length 4 = {...}) at /home/ash/prj/master/unotools/source/config/lingucfg.cxx:847 #8 0x00007f47f3fcb88f in LngSvcMgr::UpdateAll() (this=0x5589de43b4e0) at /home/ash/prj/master/linguistic/source/lngsvcmgr.cxx:765 #9 0x00007f47f3fc9caa in LngSvcMgr::LngSvcMgr() (this=0x5589de43b4e0) at /home/ash/prj/master/linguistic/source/lngsvcmgr.cxx:438 #10 0x00007f47f3fd3baf in LngSvcMgr_CreateInstance(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&) () at /home/ash/prj/master/linguistic/source/lngsvcmgr.cxx:1967 #11 0x00007f4800e9656b in cppu::OSingleFactoryHelper::createInstanceEveryTime(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x5589de3ccfc8, xContext= uno::Reference to (cppu::ComponentContext *) 0x5589dbcca630) at /home/ash/prj/master/cppuhelper/source/factory.cxx:149 #12 0x00007f4800e96790 in cppu::OSingleFactoryHelper::createInstanceWithContext(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x5589de3ccfc8, xContext=uno::Reference to (cppu::ComponentContext *) 0x5589dbcca630) at /home/ash/prj/master/cppuhelper/source/factory.cxx:175 #13 0x00007f4800e97107 in cppu::OFactoryComponentHelper::createInstanceWithContext(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x5589de3ccf60, xContext=uno::Reference to (cppu::ComponentContext *) 0x5589dbcca630) at /home/ash/prj/master/cppuhelper/source/factory.cxx:374 #14 0x00007f4800eebc8f in cppuhelper::ServiceManager::Data::Implementation::createInstance(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, bool) (this=0x5589dbd2f030, context=uno::Reference to (cppu::ComponentContext *) 0x5589dbcca630, singletonRequest=false) at /home/ash/prj/master/cppuhelper/source/servicemanager.cxx:667 #15 0x00007f4800eee587 in cppuhelper::ServiceManager::createInstanceWithContext(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x5589dbcbaaf0, aServiceSpecifier="com.sun.star.linguistic2.LinguServiceManager", Context=uno::Reference to (cppu::ComponentContext *) 0x5589dbcca630) at /home/ash/prj/master/cppuhelper/source/servicemanager.cxx:991 #16 0x00007f4800776778 in com::sun::star::linguistic2::LinguServiceManager::create(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (the_context=uno::Reference to (cppu::ComponentContext *) 0x5589dbcca630) at /home/ash/prj/master/workdir/UnoApiHeadersTarget/offapi/normal/com/sun/star/linguistic2/LinguServiceManager.hpp:38 #17 0x00007f4800772d51 in GetLngSvcMgr_Impl() () at /home/ash/prj/master/editeng/source/misc/unolingu.cxx:66 #18 0x00007f4800773449 in SpellDummy_Impl::GetSpell_Impl() (this=0x5589dd82f420) at /home/ash/prj/master/editeng/source/misc/unolingu.cxx:217 #19 0x00007f4800773614 in SpellDummy_Impl::isValid(rtl::OUString const&, short, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x5589dd82f420, rWord="a", nLanguage=1033, rProperties=empty uno::Sequence) at /home/ash/prj/master/editeng/source/misc/unolingu.cxx:249 #20 0x00007f48006ae4c2 in ImpEditEngine::DoOnlineSpelling(ContentNode*, bool, bool) (this=0x5589de195060, pThisNodeOnly=0x0, bSpellAtCursorPos=false, bInterruptible=true) at /home/ash/prj/master/editeng/source/editeng/impedit4.cxx:2306 #21 0x00007f480067d0d2 in ImpEditEngine::OnlineSpellHdl(Timer*) (this=0x5589de195060) at /home/ash/prj/master/editeng/source/editeng/impedit3.cxx:322 (cherry picked from commit 4f77bd94028a140133814d735c0425bbd0de4839) Reviewed-on: https://gerrit.libreoffice.org/85007 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> (cherry picked from commit 66c1f6b) Reviewed-on: https://gerrit.libreoffice.org/85683 Tested-by: Jenkins Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Change-Id: Iffef03502c78311427aa8883739678120cc84931
Thank you for your contribution. We use GitHub as a read-only mirror, so please submit your patch into our own code review system: https://wiki.documentfoundation.org/Development/GetInvolved |
...introduced with 244a447 "Make Pivot table data source dialog async", as seen e.g. during UITest_calc_tests8: > ==1217030==ERROR: AddressSanitizer: stack-use-after-return on address 0x7f06d7133444 at pc 0x7f069f0cb613 bp 0x7ffe24058430 sp 0x7ffe24058428 > WRITE of size 2 at 0x7f06d7133444 thread T0 > #0 in ScAddress::operator=(ScAddress const&) at sc/inc/address.hxx:415:10 > #1 in ScCellShell::ExecuteDataPilotDialog()::$_4::operator()(int) const at sc/source/ui/view/cellsh1.cxx:3014:42 > #2 in void std::__invoke_impl<void, ScCellShell::ExecuteDataPilotDialog()::$_4&, int>(std::__invoke_other, ScCellShell::ExecuteDataPilotDialog()::$_4&, int&&) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/invoke.h:60:14 > #3 in std::enable_if<is_invocable_r_v<void, ScCellShell::ExecuteDataPilotDialog()::$_4&, int>, void>::type std::__invoke_r<void, ScCellShell::ExecuteDataPilotDialog()::$_4&, int>(ScCellShell::ExecuteDataPilotDialog()::$_4&, int&&) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/invoke.h:110:2 > #4 in std::_Function_handler<void (int), ScCellShell::ExecuteDataPilotDialog()::$_4>::_M_invoke(std::_Any_data const&, int&&) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/std_function.h:291:9 > #5 in std::function<void (int)>::operator()(int) const at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/std_function.h:560:9 > #6 in Dialog::EndDialog(long) at vcl/source/window/dialog.cxx:1137:9 > #7 in Dialog::ResponseHdl(Button*) at vcl/source/window/dialog.cxx:1391:5 > #8 in Dialog::LinkStubResponseHdl(void*, Button*) at vcl/source/window/dialog.cxx:1376:1 > #9 in Link<Button*, void>::Call(Button*) const at include/tools/link.hxx:111:45 > #10 in Button::Click()::$_0::operator()() const at vcl/source/control/button.cxx:124:87 > #11 in void std::__invoke_impl<void, Button::Click()::$_0&>(std::__invoke_other, Button::Click()::$_0&) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/invoke.h:60:14 > #12 in std::enable_if<is_invocable_r_v<void, Button::Click()::$_0&>, void>::type std::__invoke_r<void, Button::Click()::$_0&>(Button::Click()::$_0&) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/invoke.h:110:2 > #13 in std::_Function_handler<void (), Button::Click()::$_0>::_M_invoke(std::_Any_data const&) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/std_function.h:291:9 > #14 in std::function<void ()>::operator()() const at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/std_function.h:560:9 > #15 in Control::ImplCallEventListenersAndHandler(VclEventId, std::function<void ()> const&) at vcl/source/control/ctrl.cxx:315:13 > #16 in Button::Click() at vcl/source/control/button.cxx:124:5 > #17 in ButtonUIObject::execute(rtl::OUString const&, std::__debug::map<rtl::OUString const, rtl::OUString, std::less<rtl::OUString const>, std::allocator<std::pair<rtl::OUString const, rtl::OUString> > > const&) at vcl/source/uitest/uiobject.cxx:614:19 > #18 in UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0::operator()() const at vcl/source/uitest/uno/uiobject_uno.cxx:124:16 > #19 in void std::__invoke_impl<void, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&>(std::__invoke_other, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/invoke.h:60:14 > #20 in std::enable_if<is_invocable_r_v<void, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&>, void>::type std::__invoke_r<void, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&>(UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/invoke.h:110:2 > #21 in std::_Function_handler<void (), UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0>::_M_invoke(std::_Any_data const&) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/std_function.h:291:9 > #22 in std::function<void ()>::operator()() const at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/std_function.h:560:9 > #23 in (anonymous namespace)::ExecuteWrapper::ExecuteActionHdl(Timer*) at vcl/source/uitest/uno/uiobject_uno.cxx:83:13 > #24 in (anonymous namespace)::ExecuteWrapper::LinkStubExecuteActionHdl(void*, Timer*) at vcl/source/uitest/uno/uiobject_uno.cxx:78:1 > #25 in Link<Timer*, void>::Call(Timer*) const at include/tools/link.hxx:111:45 > #26 in Timer::Invoke() at vcl/source/app/timer.cxx:75:21 > #27 in Scheduler::ProcessTaskScheduling() at vcl/source/app/scheduler.cxx:486:20 > #28 in Scheduler::CallbackTaskScheduling() at vcl/source/app/scheduler.cxx:288:5 > #29 in SalTimer::CallCallback() at vcl/inc/saltimer.hxx:54:13 > #30 in SvpSalInstance::CheckTimeout(bool) at vcl/headless/svpinst.cxx:210:53 > #31 in SvpSalInstance::DoYield(bool, bool) at vcl/headless/svpinst.cxx:463:21 > #32 in ImplYield(bool, bool) at vcl/source/app/svapp.cxx:447:48 > #33 in Application::Yield() at vcl/source/app/svapp.cxx:511:5 > #34 in Application::Execute() at vcl/source/app/svapp.cxx:426:9 > #35 in desktop::Desktop::Main() at desktop/source/app/app.cxx:1588:13 > #36 in ImplSVMain() at vcl/source/app/svmain.cxx:196:35 > #37 in SVMain() at vcl/source/app/svmain.cxx:228:12 > #38 in soffice_main at desktop/source/app/sofficemain.cxx:98:12 > #39 in sal_main at desktop/source/app/main.c:49:15 > #40 in main at desktop/source/app/main.c:47:1 Change-Id: I7ff5148f4bf9170fc7add312053de5acc153125b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106919 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Skip attributes with empty string value in 'Qt5AccessibleWidget::attributes'. Besides not being a useful value, I also got a crash using Accerciser to navigate in Calc's "Format Cells" dialog -> "Font Effects" -> "Text Decoration" -> "Overlining" -> "Overlining". 'Qt5AccessibleWidget::attributes' had returned "font-family:;font-size:0pt;font-weight:normal;" and 'AtSpiAdaptor::getAttributes' (from the Qt library) aborts, since it splits the "font-family:" part at the colon, then expects two substrings: one for the attribute name, one for the value - but there was no value set: QString joined = interface->textInterface()->attributes(offset, &startOffset, &endOffset); const QStringList attributes = joined.split (QLatin1Char(';'), Qt::SkipEmptyParts, Qt::CaseSensitive); for (const QString &attr : attributes) { QStringList items; items = attr.split(QLatin1Char(':'), Qt::SkipEmptyParts, Qt::CaseSensitive); -> AtSpiAttribute attribute = atspiTextAttribute(items[0], items[1]); if (!attribute.isNull()) set[attribute.name] = attribute.value; } The IAccessible2 spec for the "background-color" text attribute [1] doesn't specify any default value to be used. Backtrace: Thread 1 received signal SIGABRT, Aborted. __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory. (rr) bt #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #1 0x00007f4dcd0bd537 in __GI_abort () at abort.c:79 #2 0x00007f4dba7fd810 in qt_message_fatal(QtMsgType, QMessageLogContext const&, QString const&) (context=..., message=...) at global/qlogging.cpp:1914 #3 0x00007f4dba7f9d48 in QMessageLogger::fatal(char const*, ...) const (this=0x7ffc30a4a6b0, msg=0x7f4dbab9ebb0 "ASSERT failure in %s: \"%s\", file %s, line %d") at global/qlogging.cpp:893 #4 0x00007f4dba7f1484 in qt_assert_x(char const*, char const*, char const*, int) (where=0x7f4db778eb36 "QList<T>::operator[]", what=0x7f4db778eac8 "index out of range", file=0x7f4db778ea90 "../../../include/QtCore/../../src/corelib/tools/qlist.h", line=579) at global/qglobal.cpp:3366 #5 0x00007f4db7736a65 in QList<QString>::operator[](int) (this=0x7ffc30a4a730, i=1) at ../../../include/QtCore/../../src/corelib/tools/qlist.h:579 #6 0x00007f4db773017e in AtSpiAdaptor::getAttributes(QAccessibleInterface*, int, bool) const (this=0x557748f27800, interface=0x7f4d8c07cc30, offset=9, includeDefaults=true) at atspiadaptor.cpp:2059 #7 0x00007f4db772cd74 in AtSpiAdaptor::textInterface(QAccessibleInterface*, QString const&, QDBusMessage const&, QDBusConnection const&) (this=0x557748f27800, interface=0x7f4d8c07cc30, function=..., message=..., connection=...) at atspiadaptor.cpp:1802 #8 0x00007f4db77274f8 in AtSpiAdaptor::handleMessage(QDBusMessage const&, QDBusConnection const&) (this=0x557748f27800, message=..., connection=...) at atspiadaptor.cpp:1286 #9 0x00007f4db7fe4d04 in QDBusConnectionPrivate::activateObject(QDBusConnectionPrivate::ObjectTreeNode&, QDBusMessage const&, int) (this=0x7f4d8c014b00, node=..., msg=..., pathStartPos=27) at qdbusintegrator.cpp:1458 #10 0x00007f4db7fe58ca in QDBusActivateObjectEvent::placeMetaCall(QObject*) (this=0x557753615310) at qdbusintegrator.cpp:1617 #11 0x00007f4dbaab3c66 in QObject::event(QEvent*) (this=0x557748f27800, e=0x557753615310) at kernel/qobject.cpp:1314 #12 0x00007f4db96be845 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=0x557747e30970, receiver=0x557748f27800, e=0x557753615310) at kernel/qapplication.cpp:3632 #13 0x00007f4db96bbcfb in QApplication::notify(QObject*, QEvent*) (this=0x557747f1d8b0, receiver=0x557748f27800, e=0x557753615310) at kernel/qapplication.cpp:2972 #14 0x00007f4dbaa70aba in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x557748f27800, event=0x557753615310) at kernel/qcoreapplication.cpp:1064 #15 0x00007f4dbaa71452 in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=0x557748f27800, event=0x557753615310) at kernel/qcoreapplication.cpp:1462 #16 0x00007f4dbaa7213a in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x557747eff460) at kernel/qcoreapplication.cpp:1821 #17 0x00007f4dbaa71acc in QCoreApplication::sendPostedEvents(QObject*, int) (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1680 #18 0x00007f4dbaaff079 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x557748056a30) at kernel/qeventdispatcher_glib.cpp:277 #19 0x00007f4dbfe4ce6b in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #20 0x00007f4dbfe4d118 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #21 0x00007f4dbfe4d1cf in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #22 0x00007f4dbaaff7a2 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x557748062a70, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #23 0x00007f4db76af8fc in QXcbGlibEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x557748062a70, flags=...) at qxcbeventdispatcher.cpp:143 #24 0x00007f4db9255353 in Qt5Instance::DoYield(bool, bool) (this=0x557747f22580, bWait=4, bHandleAllCurrentEvents=2) at .../libreoffice/vcl/qt5/Qt5Instance.cxx:400 #25 0x00007f4db9255465 in Qt5Instance::AnyInput(VclInputFlags) (this=0xd87f0c9bbde3ed00, nType=(VclInputFlags::PAINT | VclInputFlags::TIMER | VclInputFlags::OTHER | VclInputFlags::APPEVENT | unknown: 0x7fc0)) at .../libreoffice/vcl/qt5/Qt5Instance.cxx:422 #26 0x00007f4dc594b64a in ImplYield(bool, bool) (i_bWait=true, i_bAllEvents=false) at .../libreoffice/vcl/source/app/svapp.cxx:465 #27 0x00007f4dc594be0b in Application::Yield() () at .../libreoffice/vcl/source/app/svapp.cxx:532 #28 0x00007f4dc594b357 in Application::Execute() () at .../libreoffice/vcl/source/app/svapp.cxx:444 #29 0x00007f4dcd2c4226 in desktop::Desktop::Main() (this=0x7ffc30a4c540) at .../libreoffice/desktop/source/app/app.cxx:1602 #30 0x00007f4dc5967cc6 in ImplSVMain() () at .../libreoffice/vcl/source/app/svmain.cxx:199 #31 0x00007f4dc5967de7 in SVMain() () at .../libreoffice/vcl/source/app/svmain.cxx:231 #32 0x00007f4dcd324e9f in soffice_main() () at .../libreoffice/desktop/source/app/sofficemain.cxx:98 #33 0x000055774613895d in sal_main () at .../libreoffice/desktop/source/app/main.c:49 #34 0x0000557746138943 in main (argc=2, argv=0x7ffc30a4c8b8) at .../libreoffice/desktop/source/app/main.c:47 [1] https://wiki.linuxfoundation.org/accessibility/iaccessible2/textattributes Change-Id: I5e9d5121e69340ff728a87b4a6cb5c182d9ad11b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119247 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
...as seen at least once during UITest_calc_tests9, with thread 1 at > Thread 1 (Thread 0x7f2c48958fc0 (LWP 439791) "soffice.bin"): > #0 0x00007f2caa2b17b0 in __lll_lock_wait () at /lib64/libpthread.so.0 > #1 0x00007f2caa2aa553 in pthread_mutex_lock () at /lib64/libpthread.so.0 > #2 0x00007f2ca399275b in __gthread_mutex_lock(pthread_mutex_t*) (__mutex=0x7f2ca40ce020 <cppu::getTypeEntries(cppu::class_data*)::aMutex>) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/x86_64-pc-linux-gnu/bits/gthr-default.h:749 > #3 0x00007f2ca39948cb in std::mutex::lock() (this=0x7f2ca40ce020 <cppu::getTypeEntries(cppu::class_data*)::aMutex>) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/std_mutex.h:100 > #4 0x00007f2ca39940eb in std::lock_guard<std::mutex>::lock_guard(std::mutex&) (this=0x7f2c4752d820, __m=...) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/std_mutex.h:229 > #5 0x00007f2ca3990fdb in cppu::getTypeEntries(cppu::class_data*) (cd=0x7f2c3eda4640 <cppu::detail::ImplClassData<cppu::WeakImplHelper<com::sun::star::i18n::XCollator, com::sun::star::lang::XServiceInfo>, com::sun::star::i18n::XCollator, com::sun::star::lang::XServiceInfo>::operator()()::s_cd>) at /home/sbergman/lo/core/cppuhelper/source/implbase_ex.cxx:71 > #6 0x00007f2ca398c616 in cppu::queryDeepNoXInterface(_typelib_TypeDescriptionReference const*, cppu::class_data*, void*) (pDemandedTDR=0x60f00020ec60, cd=0x7f2c3eda4640 <cppu::detail::ImplClassData<cppu::WeakImplHelper<com::sun::star::i18n::XCollator, com::sun::star::lang::XServiceInfo>, com::sun::star::i18n::XCollator, com::sun::star::lang::XServiceInfo>::operator()()::s_cd>, that=0x60e0002a2960) at /home/sbergman/lo/core/cppuhelper/source/implbase_ex.cxx:155 > #7 0x00007f2ca398ea93 in cppu::WeakImplHelper_query(com::sun::star::uno::Type const&, cppu::class_data*, void*, cppu::OWeakObject*) (rType=invalid uno::Type, cd=0x7f2c3eda4640 <cppu::detail::ImplClassData<cppu::WeakImplHelper<com::sun::star::i18n::XCollator, com::sun::star::lang::XServiceInfo>, com::sun::star::i18n::XCollator, com::sun::star::lang::XServiceInfo>::operator()()::s_cd>, that=0x60e0002a2960, pBase=0x60e0002a2960) at /home/sbergman/lo/core/cppuhelper/source/implbase_ex.cxx:283 > #8 0x00007f2c3ea61105 in cppu::WeakImplHelper<com::sun::star::i18n::XCollator, com::sun::star::lang::XServiceInfo>::queryInterface(com::sun::star::uno::Type const&) (this=0x60e0002a2960, aType=invalid uno::Type) at /home/sbergman/lo/core/include/cppuhelper/implbase.hxx:111 > #9 0x00007f2c7c491500 in com::sun::star::uno::BaseReference::iquery(com::sun::star::uno::XInterface*, com::sun::star::uno::Type const&) (pInterface=0x60e0002a2960, rType=invalid uno::Type) at /home/sbergman/lo/core/include/com/sun/star/uno/Reference.hxx:59 > #10 0x00007f2c7c8a1165 in com::sun::star::uno::Reference<com::sun::star::i18n::XCollator>::iquery(com::sun::star::uno::XInterface*) (pInterface=0x60e0002a2960) at /home/sbergman/lo/core/include/com/sun/star/uno/Reference.hxx:74 > #11 0x00007f2c7c8a015e in com::sun::star::uno::Reference<com::sun::star::i18n::XCollator>::Reference(com::sun::star::uno::BaseReference const&, com::sun::star::uno::UnoReference_Query) (this=0x7f2c47447020, rRef=...) at /home/sbergman/lo/core/include/com/sun/star/uno/Reference.hxx:176 > #12 0x00007f2c7c89ebaa in com::sun::star::i18n::Collator::create(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (the_context=uno::Reference to (class cppu::(anonymous namespace)::ComponentContext *) 0x611000005e50) at /home/sbergman/lo/core/workdir/UnoApiHeadersTarget/offapi/normal/com/sun/star/i18n/Collator.hpp:38 > #13 0x00007f2c7c89c324 in CollatorWrapper::CollatorWrapper(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x60200097c0f0, rxContext=uno::Reference to (class cppu::(anonymous namespace)::ComponentContext *) 0x611000005e50) at /home/sbergman/lo/core/unotools/source/i18n/collatorwrapper.cxx:30 > #14 0x00007f2c14889098 in ScGlobal::GetCaseCollator()::$_6::operator()() const (this=0x7f2c470e74a0) at /home/sbergman/lo/core/sc/source/core/data/global.cxx:1044 > #15 0x00007f2c14886efc in comphelper::doubleCheckedInit<CollatorWrapper, ScGlobal::GetCaseCollator()::$_6, osl::Guard<osl::Mutex>, osl::GetGlobalMutex>(std::atomic<CollatorWrapper*>&, ScGlobal::GetCaseCollator()::$_6, osl::GetGlobalMutex) (pointer=..., function=..., guardCtor=...) at /home/sbergman/lo/core/include/comphelper/doublecheckedinit.hxx:53 > #16 0x00007f2c14886d1c in ScGlobal::GetCaseCollator() () at /home/sbergman/lo/core/sc/source/core/data/global.cxx:1041 > #17 0x00007f2c1627adde in ScTypedStrData::LessCaseSensitive::operator()(ScTypedStrData const&, ScTypedStrData const&) const (this=0x7f2c471eab20, left=..., right=...) at /home/sbergman/lo/core/sc/source/core/tool/typedstrdata.cxx:26 > #18 0x00007f2c13ad7750 in std::sort<__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<ScTypedStrData*, std::__cxx1998::vector<ScTypedStrData, std::allocator<ScTypedStrData> > >, std::__debug::vector<ScTypedStrData, std::allocator<ScTypedStrData> >, std::random_access_iterator_tag>, ScTypedStrData::LessCaseSensitive>(__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<ScTypedStrData*, std::__cxx1998::vector<ScTypedStrData, std::allocator<ScTypedStrData> > >, std::__debug::vector<ScTypedStrData, std::allocator<ScTypedStrData> >, std::random_access_iterator_tag>, __gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<ScTypedStrData*, std::__cxx1998::vector<ScTypedStrData, std::allocator<ScTypedStrData> > >, std::__debug::vector<ScTypedStrData, std::allocator<ScTypedStrData> >, std::random_access_iterator_tag>, ScTypedStrData::LessCaseSensitive) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/stl_algo.h:4873 > #19 0x00007f2c13ab544d in (anonymous namespace)::sortAndRemoveDuplicates(std::__debug::vector<ScTypedStrData, std::allocator<ScTypedStrData> >&, bool) (rStrings=std::__debug::vector of length 1, capacity 1 = {...}, bCaseSens=true) at /home/sbergman/lo/core/sc/source/core/data/documen3.cxx:86 > #20 0x00007f2c13ab6bc9 in ScDocument::GetDataEntries(short, int, short, std::__debug::vector<ScTypedStrData, std::allocator<ScTypedStrData> >&, bool) (this=0x61e0000505c0, nCol=0, nRow=1, nTab=0, rStrings=std::__debug::vector of length 1, capacity 1 = {...}, bValidation=false) at /home/sbergman/lo/core/sc/source/core/data/documen3.cxx:1650 > #21 0x00007f2c1708a56e in ScInputHandler::GetColData() (this=0x614000068840) at /home/sbergman/lo/core/sc/source/ui/app/inputhdl.cxx:1943 > #22 0x00007f2c1709e132 in ScInputHandler::StartTable(char16_t, bool, bool, ScEditEngineDefaulter*) (this=0x614000068840, cTyped=66 u'B', bFromCommand=false, bInputActivated=false, pTopEngine=0x0) at /home/sbergman/lo/core/sc/source/ui/app/inputhdl.cxx:2501 > #23 0x00007f2c17057bc0 in ScInputHandler::DataChanging(char16_t, bool) (this=0x614000068840, cTyped=66 u'B', bFromCommand=false) at /home/sbergman/lo/core/sc/source/ui/app/inputhdl.cxx:2605 > #24 0x00007f2c170ad948 in ScInputHandler::KeyInput(KeyEvent const&, bool) (this=0x614000068840, rKEvt=..., bStartEdit=true) at /home/sbergman/lo/core/sc/source/ui/app/inputhdl.cxx:3714 > #25 0x00007f2c1723ac2b in ScModule::InputKeyEvent(KeyEvent const&, bool) (this=0x616000223880, rKEvt=..., bStartEdit=true) at /home/sbergman/lo/core/sc/source/ui/app/scmod.cxx:1356 > #26 0x00007f2c19ce48c9 in ScTabViewShell::TabKeyInput(KeyEvent const&) (this=0x61e000051080, rKEvt=...) at /home/sbergman/lo/core/sc/source/ui/view/tabvwsh4.cxx:1278 > #27 0x00007f2c196183ce in ScGridWindow::KeyInput(KeyEvent const&) (this=0x618000ee6880, rKEvt=...) at /home/sbergman/lo/core/sc/source/ui/view/gridwin.cxx:3414 > #28 0x00007f2c775e963f in WindowUIObject::execute(rtl::OUString const&, std::__debug::map<rtl::OUString, rtl::OUString, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::OUString> > > const&) at /home/sbergman/lo/core/vcl/source/uitest/uiobject.cxx:357 > #29 0x00007f2c186a5929 in ScGridWinUIObject::execute(rtl::OUString const&, std::__debug::map<rtl::OUString, rtl::OUString, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, rtl::OUString> > > const&) at /home/sbergman/lo/core/sc/source/ui/uitest/uiobject.cxx:317 > #30 0x00007f2c7766d9ba in UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0::operator()() const (this=0x603000f61240) at /home/sbergman/lo/core/vcl/source/uitest/uno/uiobject_uno.cxx:137 > #31 0x00007f2c7766d0dd in std::__invoke_impl<void, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&>(std::__invoke_other, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&) (__f=...) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/invoke.h:61 > #32 0x00007f2c7766cf8d in std::__invoke_r<void, UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&>(UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0&) (__fn=...) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/invoke.h:111 > #33 0x00007f2c7766ca9d in std::_Function_handler<void (), UIObjectUnoObj::executeAction(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)::$_0>::_M_invoke(std::_Any_data const&) (__functor=...) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/std_function.h:291 > #34 0x00007f2c744b3c22 in std::function<void ()>::operator()() const (this=0x6070001d4d80) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/std_function.h:560 > #35 0x00007f2c7766c35c in (anonymous namespace)::ExecuteWrapper::ExecuteActionHdl(Timer*) (this=0x6070001d4d80) at /home/sbergman/lo/core/vcl/source/uitest/uno/uiobject_uno.cxx:100 > #36 0x00007f2c77668e29 in (anonymous namespace)::ExecuteWrapper::LinkStubExecuteActionHdl(void*, Timer*) (instance=0x6070001d4d80, data=0x608000148e20) at /home/sbergman/lo/core/vcl/source/uitest/uno/uiobject_uno.cxx:95 > #37 0x00007f2c76c645de in Link<Timer*, void>::Call(Timer*) const (this=0x608000148e40, data=0x608000148e20) at /home/sbergman/lo/core/include/tools/link.hxx:111 > #38 0x00007f2c76c63b7d in Timer::Invoke() (this=0x608000148e20) at /home/sbergman/lo/core/vcl/source/app/timer.cxx:75 > #39 0x00007f2c76abfd6c in Scheduler::CallbackTaskScheduling() () at /home/sbergman/lo/core/vcl/source/app/scheduler.cxx:471 > #40 0x00007f2c77b9a1a4 in SalTimer::CallCallback() (this=0x6030002f0bc0) at /home/sbergman/lo/core/vcl/inc/saltimer.hxx:54 > #41 0x00007f2c77b8dda1 in SvpSalInstance::CheckTimeout(bool) (this=0x611000001bc0, bExecuteTimers=true) at /home/sbergman/lo/core/vcl/headless/svpinst.cxx:215 > #42 0x00007f2c77b949a0 in SvpSalInstance::DoYield(bool, bool) (this=0x611000001bc0, bWait=true, bHandleAllCurrentEvents=false) at /home/sbergman/lo/core/vcl/headless/svpinst.cxx:460 > #43 0x00007f2c76bb2462 in ImplYield(bool, bool) (i_bWait=true, i_bAllEvents=false) at /home/sbergman/lo/core/vcl/source/app/svapp.cxx:465 > #44 0x00007f2c76bb1588 in Application::Yield() () at /home/sbergman/lo/core/vcl/source/app/svapp.cxx:532 > #45 0x00007f2c76bb11bf in Application::Execute() () at /home/sbergman/lo/core/vcl/source/app/svapp.cxx:444 > #46 0x00007f2caae21016 in desktop::Desktop::Main() (this=0x7f2c472b8080) at /home/sbergman/lo/core/desktop/source/app/app.cxx:1602 having locked the osl global mutex in comphelper::doubleCheckedInit in frame 15 and trying to lock the cppu::getTypeEntries mutex, while thread 4 at > Thread 4 (Thread 0x7f2c275b6640 (LWP 440147) "InitUpdateCheck"): > #0 0x00007f2caa2b17b0 in __lll_lock_wait () at /lib64/libpthread.so.0 > #1 0x00007f2caa2aa5d0 in pthread_mutex_lock () at /lib64/libpthread.so.0 > #2 0x00007f2cabc21967 in osl_acquireMutex(oslMutex) (pMutex=0x604000090d50) at /home/sbergman/lo/core/sal/osl/unx/mutex.cxx:100 > #3 0x00007f2bf58684da in osl::Mutex::acquire() (this=0x7f2cabe45c60 <osl_getGlobalMutex::g_Mutex>) at /home/sbergman/lo/core/include/osl/mutex.hxx:61 > #4 0x00007f2bf586694a in osl::Guard<osl::Mutex>::Guard(osl::Mutex*) (this=0x7f2c262d7420, pT_=0x7f2cabe45c60 <osl_getGlobalMutex::g_Mutex>) at /home/sbergman/lo/core/include/osl/mutex.hxx:135 > #5 0x00007f2bf58762f9 in com::sun::star::lang::cppu_detail_getUnoType(com::sun::star::lang::XServiceInfo const*) () at /home/sbergman/lo/core/workdir/UnoApiHeadersTarget/udkapi/normal/com/sun/star/lang/XServiceInfo.hpp:73 > #6 0x00007f2bf5875f09 in cppu::UnoType<com::sun::star::lang::XServiceInfo>::get() () at /home/sbergman/lo/core/include/cppu/unotype.hxx:300 > #7 0x00007f2bf5875ce9 in com::sun::star::lang::XServiceInfo::static_type(void*) () at /home/sbergman/lo/core/workdir/UnoApiHeadersTarget/udkapi/normal/com/sun/star/lang/XServiceInfo.hpp:145 > #8 0x00007f2ca39913be in cppu::getTypeEntries(cppu::class_data*) (cd=0x7f2bf58c73a8 <cppu::detail::ImplClassData<cppu::WeakImplHelper<com::sun::star::deployment::XUpdateInformationProvider, com::sun::star::ucb::XWebDAVCommandEnvironment, com::sun::star::lang::XServiceInfo>, com::sun::star::deployment::XUpdateInformationProvider, com::sun::star::ucb::XWebDAVCommandEnvironment, com::sun::star::lang::XServiceInfo>::operator()()::s_cd>) at /home/sbergman/lo/core/cppuhelper/source/implbase_ex.cxx:78 > #9 0x00007f2ca398c616 in cppu::queryDeepNoXInterface(_typelib_TypeDescriptionReference const*, cppu::class_data*, void*) (pDemandedTDR=0x60f0001cf420, cd=0x7f2bf58c73a8 <cppu::detail::ImplClassData<cppu::WeakImplHelper<com::sun::star::deployment::XUpdateInformationProvider, com::sun::star::ucb::XWebDAVCommandEnvironment, com::sun::star::lang::XServiceInfo>, com::sun::star::deployment::XUpdateInformationProvider, com::sun::star::ucb::XWebDAVCommandEnvironment, com::sun::star::lang::XServiceInfo>::operator()()::s_cd>, that=0x60e00022e7c0) at /home/sbergman/lo/core/cppuhelper/source/implbase_ex.cxx:155 > #10 0x00007f2ca398ea93 in cppu::WeakImplHelper_query(com::sun::star::uno::Type const&, cppu::class_data*, void*, cppu::OWeakObject*) (rType=invalid uno::Type, cd=0x7f2bf58c73a8 <cppu::detail::ImplClassData<cppu::WeakImplHelper<com::sun::star::deployment::XUpdateInformationProvider, com::sun::star::ucb::XWebDAVCommandEnvironment, com::sun::star::lang::XServiceInfo>, com::sun::star::deployment::XUpdateInformationProvider, com::sun::star::ucb::XWebDAVCommandEnvironment, com::sun::star::lang::XServiceInfo>::operator()()::s_cd>, that=0x60e00022e7c0, pBase=0x60e00022e7c0) at /home/sbergman/lo/core/cppuhelper/source/implbase_ex.cxx:283 > #11 0x00007f2bf58629e5 in cppu::WeakImplHelper<com::sun::star::deployment::XUpdateInformationProvider, com::sun::star::ucb::XWebDAVCommandEnvironment, com::sun::star::lang::XServiceInfo>::queryInterface(com::sun::star::uno::Type const&) (this=0x60e00022e7c0, aType=invalid uno::Type) at /home/sbergman/lo/core/include/cppuhelper/implbase.hxx:111 > #12 0x00007f2c3015cf60 in com::sun::star::uno::BaseReference::iquery(com::sun::star::uno::XInterface*, com::sun::star::uno::Type const&) (pInterface=0x60e00022e7c0, rType=invalid uno::Type) at /home/sbergman/lo/core/include/com/sun/star/uno/Reference.hxx:59 > #13 0x00007f2c302419c5 in com::sun::star::uno::Reference<com::sun::star::deployment::XUpdateInformationProvider>::iquery(com::sun::star::uno::XInterface*) (pInterface=0x60e00022e7c0) at /home/sbergman/lo/core/include/com/sun/star/uno/Reference.hxx:74 > #14 0x00007f2c3024010e in com::sun::star::uno::Reference<com::sun::star::deployment::XUpdateInformationProvider>::Reference(com::sun::star::uno::BaseReference const&, com::sun::star::uno::UnoReference_Query) (this=0x7f2c262bd420, rRef=...) at /home/sbergman/lo/core/include/com/sun/star/uno/Reference.hxx:176 > #15 0x00007f2c3023e98a in com::sun::star::deployment::UpdateInformationProvider::create(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (the_context=uno::Reference to (class cppu::(anonymous namespace)::ComponentContext *) 0x611000005e50) at /home/sbergman/lo/core/workdir/UnoApiHeadersTarget/offapi/normal/com/sun/star/deployment/UpdateInformationProvider.hpp:38 > #16 0x00007f2c30235e85 in dp_info::(anonymous namespace)::PackageInformationProvider::PackageInformationProvider(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x607000afd3e0, xContext=uno::Reference to (class cppu::(anonymous namespace)::ComponentContext *) 0x611000005e50) at /home/sbergman/lo/core/desktop/source/deployment/manager/dp_informationprovider.cxx:92 > #17 0x00007f2c30235932 in com_sun_star_comp_deployment_PackageInformationProvider_get_implementation(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&) (context=0x611000005e50) at /home/sbergman/lo/core/desktop/source/deployment/manager/dp_informationprovider.cxx:336 > #18 0x00007f2ca3c92795 in std::__invoke_impl<com::sun::star::uno::XInterface*, com::sun::star::uno::XInterface* (*&)(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&), com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&>(std::__invoke_other, com::sun::star::uno::XInterface* (*&)(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&), com::sun::star::uno::XComponentContext*&&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&) (__f=@0x612000035088: 0x7f2c302357f0 <com_sun_star_comp_deployment_PackageInformationProvider_get_implementation(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)>, __args=@0x7f2c25ecd960: 0x611000005e50, __args=empty uno::Sequence) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/invoke.h:61 > #19 0x00007f2ca3c9248d in std::__invoke_r<com::sun::star::uno::XInterface*, com::sun::star::uno::XInterface* (*&)(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&), com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&>(com::sun::star::uno::XInterface* (*&)(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&), com::sun::star::uno::XComponentContext*&&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&) (__fn=@0x612000035088: 0x7f2c302357f0 <com_sun_star_comp_deployment_PackageInformationProvider_get_implementation(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)>, __args=@0x7f2c25ecd960: 0x611000005e50, __args=empty uno::Sequence) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/invoke.h:114 > #20 0x00007f2ca3c91ebd in std::_Function_handler<com::sun::star::uno::XInterface* (com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&), com::sun::star::uno::XInterface* (*)(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)>::_M_invoke(std::_Any_data const&, com::sun::star::uno::XComponentContext*&&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&) (__functor=..., __args=@0x7f2c25ecd960: 0x611000005e50, __args=empty uno::Sequence) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/std_function.h:291 > #21 0x00007f2ca3b7d419 in std::function<com::sun::star::uno::XInterface* (com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)>::operator()(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&) const (this=0x612000035088, __args=0x611000005e50, __args=empty uno::Sequence) at /home/sbergman/gcc/trunk/inst/include/c++/12.0.0/bits/std_function.h:560 > #22 0x00007f2ca3b30861 in cppuhelper::ServiceManager::Data::Implementation::doCreateInstance(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x612000034fd0, context=uno::Reference to (class cppu::(anonymous namespace)::ComponentContext *) 0x611000005e50) at /home/sbergman/lo/core/cppuhelper/source/servicemanager.cxx:703 > #23 0x00007f2ca3b30394 in cppuhelper::ServiceManager::Data::Implementation::createInstance(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, bool) (this=0x612000034fd0, context=uno::Reference to (class cppu::(anonymous namespace)::ComponentContext *) 0x611000005e50, singletonRequest=true) at /home/sbergman/lo/core/cppuhelper/source/servicemanager.cxx:672 > #24 0x00007f2ca3b6bb9c in (anonymous namespace)::SingletonFactory::createInstanceWithContext(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x60700003a4e0, Context=uno::Reference to (class cppu::(anonymous namespace)::ComponentContext *) 0x611000005e50) at /home/sbergman/lo/core/cppuhelper/source/servicemanager.cxx:532 > #25 0x00007f2ca3b6c0af in non-virtual thunk to (anonymous namespace)::SingletonFactory::createInstanceWithContext(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) () at /home/sbergman/lo/core/cppuhelper/source/servicemanager.cxx:541 > #26 0x00007f2ca38c5545 in cppu::(anonymous namespace)::ComponentContext::lookupMap(rtl::OUString const&) (this=0x611000005e00, rName="/singletons/com.sun.star.deployment.PackageInformationProvider") at /home/sbergman/lo/core/cppuhelper/source/component_context.cxx:300 > #27 0x00007f2ca38ae9ab in cppu::(anonymous namespace)::ComponentContext::getValueByName(rtl::OUString const&) (this=0x611000005e00, rName="/singletons/com.sun.star.deployment.PackageInformationProvider") at /home/sbergman/lo/core/cppuhelper/source/component_context.cxx:374 > #28 0x00007f2ca38b279f in non-virtual thunk to cppu::(anonymous namespace)::ComponentContext::getValueByName(rtl::OUString const&) () at /home/sbergman/lo/core/cppuhelper/source/component_context.cxx:266 > #29 0x00007f2c2791c7e0 in checkForPendingUpdates(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (rxContext=uno::Reference to (class cppu::(anonymous namespace)::ComponentContext *) 0x611000005e50) at /home/sbergman/lo/core/extensions/source/update/check/updateprotocol.cxx:289 > #30 0x00007f2c277d3db3 in UpdateCheck::initialize(com::sun::star::uno::Sequence<com::sun::star::beans::NamedValue> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (this=0x6130001c9dc0, rValues=uno::Sequence of length 8 = {...}, xContext=uno::Reference to (class cppu::(anonymous namespace)::ComponentContext *) 0x611000005e50) at /home/sbergman/lo/core/extensions/source/update/check/updatecheck.cxx:776 > #31 0x00007f2c278acd2a in (anonymous namespace)::InitUpdateCheckJobThread::run() (this=0x608000163d20) at /home/sbergman/lo/core/extensions/source/update/check/updatecheckjob.cxx:143 having locked the cppu::getTypeEntries mutex in frame 1 and now trying to lock the osl global mutex. Of the many functions in sc/source/core/data/global.cxx that (implicitly, by default) use the osl global mutex in comphelper::doubleCheckedInit, change at least those two that call a CollatorWrapper (and are thus susceptible to the described deadlock). Change-Id: Ie41a1116518146bffcefab2373f1386afc03e544 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119319 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Seen by vmiklos locally, and by myself on jenkins. I cannot reproduce this locally, so this is somewhat of a blind fix. Program terminated with signal SIGSEGV, Segmentation fault. $#0 0x00007f3e995c273a in sdr::properties::AttributeProperties::Notify (this=0x7f3e7000deb0, rBC=..., rHint=...) at /home/vmiklos/git/libreoffice/core/svx/source/sdr/properties/attributeproperties.cxx:464 464 pNewStSh = static_cast<SfxStyleSheet*>(rModel.GetStyleSheetPool()->Find( [Current thread is 1 (Thread 0x7f3e6d2566c0 (LWP 18774))] (gdb) bt $#0 0x00007f3e995c273a in sdr::properties::AttributeProperties::Notify(SfxBroadcaster&, SfxHint const&) (this=0x7f3e7000deb0, rBC=..., rHint=...) at /home/vmiklos/git/libreoffice/core/svx/source/sdr/properties/attributeproperties.cxx:464 $#1 0x00007f3e995bd674 in sdr::properties::TextProperties::Notify(SfxBroadcaster&, SfxHint const&) (this=0x7f3e7000deb0, rBC=..., rHint=...) at /home/vmiklos/git/libreoffice/core/svx/source/sdr/properties/textproperties.cxx:549 $#2 0x00007f3e9b421176 in SfxBroadcaster::Broadcast(SfxHint const&) (this=0x7f3e683ce5f0, rHint=...) at /home/vmiklos/git/libreoffice/core/svl/source/notify/SfxBroadcaster.cxx:40 $#3 0x00007f3e9b35fdad in (anonymous namespace)::StyleSheetDisposerFunctor::Dispose(rtl::Reference<SfxStyleSheetBase>) (this=0x7f3e6d2532a0, styleSheet=rtl::Reference to 0x7f3e6830c260) at /home/vmiklos/git/libreoffice/core/svl/source/items/style.cxx:762 $#4 0x00007f3e9b31b2bd in svl::IndexedStyleSheets::Clear(svl::StyleSheetDisposer&) (this=0x7f3e685ebd50, disposer=...) at /home/vmiklos/git/libreoffice/core/svl/source/items/IndexedStyleSheets.cxx:187 $#5 0x00007f3e9b35fe8d in SfxStyleSheetBasePool::Clear() (this=0x7f3e683ce5f0) at /home/vmiklos/git/libreoffice/core/svl/source/items/style.cxx:773 $#6 0x00007f3e9b35f0d7 in SfxStyleSheetBasePool::~SfxStyleSheetBasePool() (this=0x7f3e683ce5f0, __in_chrg=<optimized out>) at /home/vmiklos/git/libreoffice/core/svl/source/items/style.cxx:580 $#7 0x00007f3e4c4d217e in __static_initialization_and_destruction_0(int, int) (__initialize_p=32574, __priority=1748821488) at /usr/include/c++/12/iostream:74 $#8 0x00007f3e4c4cedba in std::construct_at<ScSortKeyState, ScSortKeyState>(ScSortKeyState*, ScSortKeyState&&) (__location=0x7f3e683ce5f0) at /usr/include/c++/12/bits/stl_construct.h:94 $#9 0x00007f3e683ce5f0 in () $#10 0x00007f3e6d253380 in () $#11 0x00007f3e4c4ceddc in std::construct_at<ScSortKeyState, ScSortKeyState>(ScSortKeyState*, ScSortKeyState&&) (__location=0x7f3e4c4ceddc <std::construct_at<ScSortKeyState, ScSortKeyState>(ScSortKeyState*, ScSortKeyState&&)+36>) at /usr/include/c++/12/bits/stl_construct.h:97 $#12 0x00007f3e9e756ce4 in cppu::OWeakObject::release() (this=0x7f3e683ce668) at /home/vmiklos/git/libreoffice/core/cppuhelper/source/weak.cxx:229 $#13 0x00007f3e4c460e26 in std::__uniq_ptr_impl<SvNumberFormatter, std::default_delete<SvNumberFormatter> >::operator=(std::__uniq_ptr_impl<SvNumberFormatter, std::default_delete<SvNumberFormatter> >&&) (this=0x7f3e683ce668, __u=...) at /usr/include/c++/12/bits/unique_ptr.h:184 $#14 0x00007f3e4c460c30 in rtl::Reference<ScStyleSheetPool>::~Reference() (this=0x7f3e683ce5f0, __in_chrg=<optimized out>) at /home/vmiklos/git/libreoffice/core/include/rtl/ref.hxx:126 $#15 0x00007f3e4c460175 in ScPoolHelper::ScPoolHelper(ScDocument&) (this=0x7f3e683ce5f0, rSourceDoc=...) at /home/vmiklos/git/libreoffice/core/sc/source/core/data/poolhelp.cxx:33 $#16 0x00007f3e4c4601fc in ScPoolHelper::ScPoolHelper(ScDocument&) (this=0x7f3e682a3370, rSourceDoc=...) at /home/vmiklos/git/libreoffice/core/sc/source/core/data/poolhelp.cxx:34 $#17 0x00007f3e4bddcf52 in cppu::OWeakObject::operator delete(void*) (pMem=0x7f3e4bddcf52 <cppu::OWeakObject::operator delete(void*)+3>) at /home/vmiklos/git/libreoffice/core/include/cppuhelper/weak.hxx:90 $#18 0x00007f3e682a3370 in () $#19 0x00007f3e6d253480 in () $#20 0x00007f3e4c0bda00 in VclPtr<VirtualDevice>::disposeAndClear() (this=Python Exception <class 'gdb.MemoryError'>: Cannot access memory at address 0xffffffffffffffd8 Change-Id: I936b5042a368b08a20ea9f545892ef8a6625f5fc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171235 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
I see the cow_wrapper up copies the ImplB2DPolyPolygon during construction when it doesn't need to do that. #9 0x5ad39043b7f4 in void std::__1::vector<basegfx::B2DPolygon, std::__1::allocator<basegfx::B2DPolygon>>::__construct_at_end<basegfx::B2DPolygon*, basegfx::B2DPolygon*>(basegfx::B2DPolygon*, basegfx::B2DPolygon*, unsigned long) /usr/local/include/c++/v1/vector:1144:25 #10 0x5ad39043b48d in void std::__1::vector<basegfx::B2DPolygon, std::__1::allocator<basegfx::B2DPolygon>>::__init_with_size[abi:v180000]<basegfx::B2DPolygon*, basegfx::B2DPolygon*>(basegfx::B2DPolygon*, basegfx::B2DPolygon*, unsigned long) /usr/local/include/c++/v1/vector:776:9 #11 0x5ad393935cee in vector /usr/local/include/c++/v1/vector:1279:3 #12 0x5ad393935cee in ImplB2DPolyPolygon /src/libreoffice/basegfx/source/polygon/b2dpolypolygon.cxx:46:9 #13 0x5ad393935cee in impl_t /src/libreoffice/include/o3tl/cow_wrapper.hxx:195:17 #14 0x5ad393935cee in cow_wrapper /src/libreoffice/include/o3tl/cow_wrapper.hxx:236:26 #15 0x5ad393935cee in basegfx::B2DPolyPolygon::B2DPolyPolygon(basegfx::B2DPolygon const&) /src/libreoffice/basegfx/source/polygon/b2dpolypolygon.cxx:221:9 #16 0x5ad390b31418 in CairoCommon::drawPolygon(unsigned int, Point const*, bool) /src/libreoffice/vcl/headless/CairoCommon.cxx:864:46 #17 0x5ad39014ec77 in OutputDevice::ImplDrawPolygon(tools::Polygon const&, tools::PolyPolygon const*) /src/libreoffice/vcl/source/outdev/polygon.cxx:451:21 Change-Id: I801cf20d7fbc815ea285fde5c1f80f5b2681e6f8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171336 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
Since commit ea36e05 Date: Tue Oct 4 12:42:33 2022 +0100 tdf#150786 use a 'standard' theme for form controls i.e. ignore system theme so we get the same results on export to pdf regardless of the theme (esp dark) and don't follow the system theme when hosted with a writer/calc/impress document (do continue to use system theme for StarBasic dialogs as seen in BasicIDE) Didn't reuse 'NativeWidgetLook' for this because is currently defaults off, while we currently do use the colors derived from the system theme even when this is off, its really the NWF flag to render using the platform theming engine , form controls in Writer/Calc/Impress documents are supposed to no longer make use of the system theme, but use style settings independent of the platform and system style/theme set. However, `ImplSmallBorderWindowView::Init` could still decide to enable native drawing of borders, in which case it would enable transparency for the control and the control background color would no longer be seen with at least the Qt-based VCL plugins after commit 0e14dbc Date: Thu May 4 10:24:53 2023 +0100 Resolves: tdf#155029 set StandardStyles before updateFromModel e.g. for the multiline edit control in attachment 195659 from tdf#155637, where `mbNWFBorder = true;` would be set like this: #0 ImplSmallBorderWindowView::Init(OutputDevice*, long, long) (this=0x55af6388e700, pDev=0x55af62d49770, nWidth=214, nHeight=365) at vcl/source/window/brdwin.cxx:458 #1 0x00007fed4de9f168 in ImplBorderWindow::InitView() (this=0x55af638bdb50) at vcl/source/window/brdwin.cxx:1793 #2 0x00007fed4dea08f4 in ImplBorderWindow::UpdateView(bool, Size const&) (this=0x55af638bdb50, bNewView=true, rNewOutSize=Size = {...}) at vcl/source/window/brdwin.cxx:1808 #3 0x00007fed4dea0847 in ImplBorderWindow::DataChanged(DataChangedEvent const&) (this=0x55af638bdb50, rDCEvt=...) at vcl/source/window/brdwin.cxx:1771 #4 0x00007fed4de6fc32 in vcl::WindowOutputDevice::SetSettings(AllSettings const&, bool) (this=0x55af62d49770, rSettings=..., bChild=false) at vcl/source/window/settings.cxx:68 #5 0x00007fed4de6fb19 in vcl::WindowOutputDevice::SetSettings(AllSettings const&, bool) (this=0x55af62d49420, rSettings=..., bChild=false) at vcl/source/window/settings.cxx:52 #6 0x00007fed4de6fa8f in vcl::WindowOutputDevice::SetSettings(AllSettings const&) (this=0x55af62d49420, rSettings=...) at vcl/source/window/settings.cxx:44 #7 0x00007fed4e12d376 in vcl::Window::SetSettings(AllSettings const&) (this=0x55af62fbb530, rSettings=...) at vcl/source/window/window3.cxx:209 #8 0x00007fed501e3374 in UnoControl::createPeer(com::sun::star::uno::Reference<com::sun::star::awt::XToolkit> const&, com::sun::star::uno::Reference<com::sun::star::awt::XWindowPeer> const&) (this=0x55af62c79380, rxToolkit=empty uno::Reference, rParentPeer=uno::Reference to (VCLXContainer *) 0x55af61cbc178) at toolkit/source/controls/unocontrol.cxx:1299 #9 0x00007fed5023dc39 in UnoEditControl::createPeer(com::sun::star::uno::Reference<com::sun::star::awt::XToolkit> const&, com::sun::star::uno::Reference<com::sun::star::awt::XWindowPeer> const&) (this=0x55af62c79380, rxToolkit=empty uno::Reference, rParentPeer=uno::Reference to (VCLXContainer *) 0x55af61cbc178) at toolkit/source/controls/unocontrols.cxx:241 #10 0x00007fed05f6009f in frm::ORichTextControl::createPeer(com::sun::star::uno::Reference<com::sun::star::awt::XToolkit> const&, com::sun::star::uno::Reference<com::sun::star::awt::XWindowPeer> const&) (this=0x55af62c79380, _rToolkit=empty uno::Reference, _rParentPeer=uno::Reference to (VCLXContainer *) 0x55af61cbc178) at forms/source/richtext/richtextcontrol.cxx:163 #11 0x00007fed05e34126 in frm::OControl::createPeer(com::sun::star::uno::Reference<com::sun::star::awt::XToolkit> const&, com::sun::star::uno::Reference<com::sun::star::awt::XWindowPeer> const&) (this=0x55af61e17c60, _rxToolkit=empty uno::Reference, _rxParent=uno::Reference to (VCLXContainer *) 0x55af61cbc178) at forms/source/component/FormComponent.cxx:272 #12 0x00007fed50201095 in UnoControlContainer::impl_createControlPeerIfNecessary(com::sun::star::uno::Reference<com::sun::star::awt::XControl> const&) (this=0x55af5eb108c0, _rxControl=uno::Reference to (frm::OEditControl *) 0x55af61e17cc8) at toolkit/source/controls/unocontrolcontainer.cxx:595 #13 0x00007fed501ff973 in UnoControlContainer::impl_addControl(com::sun::star::uno::Reference<com::sun::star::awt::XControl> const&, rtl::OUString const*) (this=0x55af5eb108c0, _rxControl=uno::Reference to (frm::OEditControl *) 0x55af61e17cc8, _pName=0x55af5f0d2670) at toolkit/source/controls/unocontrolcontainer.cxx:608 #14 0x00007fed50201183 in UnoControlContainer::addControl(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::awt::XControl> const&) (this=0x55af5eb108c0, rName="com.sun.star.form.control.TextField", rControl=uno::Reference to (frm::OEditControl *) 0x55af61e17cc8) at toolkit/source/controls/unocontrolcontainer.cxx:628 #15 0x00007fed517f1aff in sdr::contact::ViewObjectContactOfUnoControl_Impl::createControlForDevice(sdr::contact::(anonymous namespace)::IPageViewAccess const&, OutputDevice const&, SdrUnoObj const&, basegfx::B2DHomMatrix const&, basegfx::B2DHomMatrix const&, sdr::contact::(anonymous namespace)::ControlHolder&) (_rPageView=..., _rDevice=..., _rUnoObject=..., _rInitialViewTransformation=..., _rInitialZoomNormalization=..., _out_rControl=...) at svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx:1126 #16 0x00007fed517ee55b in sdr::contact::ViewObjectContactOfUnoControl_Impl::impl_ensureControl_nothrow(sdr::contact::(anonymous namespace)::IPageViewAccess const&, OutputDevice const&, basegfx::B2DHomMatrix const&) (this=0x55af6389c6b0, _rPageView=..., _rDevice=..., _rInitialViewTransformation=...) at svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx:1044 #17 0x00007fed517ee1d2 in sdr::contact::ViewObjectContactOfUnoControl_Impl::ensureControl(basegfx::B2DHomMatrix const*) (this=0x55af6389c6b0, _pInitialViewTransformationOrNULL=0x55af6380a1f0) at svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx:960 #18 0x00007fed517f36a1 in sdr::contact::(anonymous namespace)::LazyControlCreationPrimitive2D::create2DDecomposition(drawinglayer::geometry::ViewInformation2D const&) const (this=0x55af61d38c40, _rViewInformation=...) at svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx:1545 #19 0x00007fed5467691a in drawinglayer::primitive2d::BufferedDecompositionPrimitive2D::get2DDecomposition(drawinglayer::primitive2d::Primitive2DDecompositionVisitor&, drawinglayer::geometry::ViewInformation2D const&) const (this=0x55af61d38c40, rVisitor=..., rViewInformation=...) at drawinglayer/source/primitive2d/BufferedDecompositionPrimitive2D.cxx:133 #20 0x00007fed517f358c in sdr::contact::(anonymous namespace)::LazyControlCreationPrimitive2D::get2DDecomposition(drawinglayer::primitive2d::Primitive2DDecompositionVisitor&, drawinglayer::geometry::ViewInformation2D const&) const (this=0x55af61d38c40, rVisitor=..., _rViewInformation=...) at svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx:1530 [...] Introduce a new flag `WindowBorderStyle::NONATIVEBORDER` and set it for the newly created control in `UnoControl::createPeer` if the use of the "standard theme" instead of the system style is enabled. Evaluate the flag in `ImplSmallBorderWindowView::Init` to never enable native drawing if it is set to consistently not apply system styling for such controls. Change-Id: Ib12685a3cf98acba035899221feb536f40cda84c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171396 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
Since commit ea36e05 Date: Tue Oct 4 12:42:33 2022 +0100 tdf#150786 use a 'standard' theme for form controls i.e. ignore system theme so we get the same results on export to pdf regardless of the theme (esp dark) and don't follow the system theme when hosted with a writer/calc/impress document (do continue to use system theme for StarBasic dialogs as seen in BasicIDE) Didn't reuse 'NativeWidgetLook' for this because is currently defaults off, while we currently do use the colors derived from the system theme even when this is off, its really the NWF flag to render using the platform theming engine , form controls in Writer/Calc/Impress documents are supposed to no longer make use of the system theme, but use style settings independent of the platform and system style/theme set. However, `ImplSmallBorderWindowView::Init` could still decide to enable native drawing of borders, in which case it would enable transparency for the control and the control background color would no longer be seen with at least the Qt-based VCL plugins after commit 0e14dbc Date: Thu May 4 10:24:53 2023 +0100 Resolves: tdf#155029 set StandardStyles before updateFromModel e.g. for the multiline edit control in attachment 195659 from tdf#155637, where `mbNWFBorder = true;` would be set like this: #0 ImplSmallBorderWindowView::Init(OutputDevice*, long, long) (this=0x55af6388e700, pDev=0x55af62d49770, nWidth=214, nHeight=365) at vcl/source/window/brdwin.cxx:458 #1 0x00007fed4de9f168 in ImplBorderWindow::InitView() (this=0x55af638bdb50) at vcl/source/window/brdwin.cxx:1793 #2 0x00007fed4dea08f4 in ImplBorderWindow::UpdateView(bool, Size const&) (this=0x55af638bdb50, bNewView=true, rNewOutSize=Size = {...}) at vcl/source/window/brdwin.cxx:1808 #3 0x00007fed4dea0847 in ImplBorderWindow::DataChanged(DataChangedEvent const&) (this=0x55af638bdb50, rDCEvt=...) at vcl/source/window/brdwin.cxx:1771 #4 0x00007fed4de6fc32 in vcl::WindowOutputDevice::SetSettings(AllSettings const&, bool) (this=0x55af62d49770, rSettings=..., bChild=false) at vcl/source/window/settings.cxx:68 #5 0x00007fed4de6fb19 in vcl::WindowOutputDevice::SetSettings(AllSettings const&, bool) (this=0x55af62d49420, rSettings=..., bChild=false) at vcl/source/window/settings.cxx:52 #6 0x00007fed4de6fa8f in vcl::WindowOutputDevice::SetSettings(AllSettings const&) (this=0x55af62d49420, rSettings=...) at vcl/source/window/settings.cxx:44 #7 0x00007fed4e12d376 in vcl::Window::SetSettings(AllSettings const&) (this=0x55af62fbb530, rSettings=...) at vcl/source/window/window3.cxx:209 #8 0x00007fed501e3374 in UnoControl::createPeer(com::sun::star::uno::Reference<com::sun::star::awt::XToolkit> const&, com::sun::star::uno::Reference<com::sun::star::awt::XWindowPeer> const&) (this=0x55af62c79380, rxToolkit=empty uno::Reference, rParentPeer=uno::Reference to (VCLXContainer *) 0x55af61cbc178) at toolkit/source/controls/unocontrol.cxx:1299 #9 0x00007fed5023dc39 in UnoEditControl::createPeer(com::sun::star::uno::Reference<com::sun::star::awt::XToolkit> const&, com::sun::star::uno::Reference<com::sun::star::awt::XWindowPeer> const&) (this=0x55af62c79380, rxToolkit=empty uno::Reference, rParentPeer=uno::Reference to (VCLXContainer *) 0x55af61cbc178) at toolkit/source/controls/unocontrols.cxx:241 #10 0x00007fed05f6009f in frm::ORichTextControl::createPeer(com::sun::star::uno::Reference<com::sun::star::awt::XToolkit> const&, com::sun::star::uno::Reference<com::sun::star::awt::XWindowPeer> const&) (this=0x55af62c79380, _rToolkit=empty uno::Reference, _rParentPeer=uno::Reference to (VCLXContainer *) 0x55af61cbc178) at forms/source/richtext/richtextcontrol.cxx:163 #11 0x00007fed05e34126 in frm::OControl::createPeer(com::sun::star::uno::Reference<com::sun::star::awt::XToolkit> const&, com::sun::star::uno::Reference<com::sun::star::awt::XWindowPeer> const&) (this=0x55af61e17c60, _rxToolkit=empty uno::Reference, _rxParent=uno::Reference to (VCLXContainer *) 0x55af61cbc178) at forms/source/component/FormComponent.cxx:272 #12 0x00007fed50201095 in UnoControlContainer::impl_createControlPeerIfNecessary(com::sun::star::uno::Reference<com::sun::star::awt::XControl> const&) (this=0x55af5eb108c0, _rxControl=uno::Reference to (frm::OEditControl *) 0x55af61e17cc8) at toolkit/source/controls/unocontrolcontainer.cxx:595 #13 0x00007fed501ff973 in UnoControlContainer::impl_addControl(com::sun::star::uno::Reference<com::sun::star::awt::XControl> const&, rtl::OUString const*) (this=0x55af5eb108c0, _rxControl=uno::Reference to (frm::OEditControl *) 0x55af61e17cc8, _pName=0x55af5f0d2670) at toolkit/source/controls/unocontrolcontainer.cxx:608 #14 0x00007fed50201183 in UnoControlContainer::addControl(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::awt::XControl> const&) (this=0x55af5eb108c0, rName="com.sun.star.form.control.TextField", rControl=uno::Reference to (frm::OEditControl *) 0x55af61e17cc8) at toolkit/source/controls/unocontrolcontainer.cxx:628 #15 0x00007fed517f1aff in sdr::contact::ViewObjectContactOfUnoControl_Impl::createControlForDevice(sdr::contact::(anonymous namespace)::IPageViewAccess const&, OutputDevice const&, SdrUnoObj const&, basegfx::B2DHomMatrix const&, basegfx::B2DHomMatrix const&, sdr::contact::(anonymous namespace)::ControlHolder&) (_rPageView=..., _rDevice=..., _rUnoObject=..., _rInitialViewTransformation=..., _rInitialZoomNormalization=..., _out_rControl=...) at svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx:1126 #16 0x00007fed517ee55b in sdr::contact::ViewObjectContactOfUnoControl_Impl::impl_ensureControl_nothrow(sdr::contact::(anonymous namespace)::IPageViewAccess const&, OutputDevice const&, basegfx::B2DHomMatrix const&) (this=0x55af6389c6b0, _rPageView=..., _rDevice=..., _rInitialViewTransformation=...) at svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx:1044 #17 0x00007fed517ee1d2 in sdr::contact::ViewObjectContactOfUnoControl_Impl::ensureControl(basegfx::B2DHomMatrix const*) (this=0x55af6389c6b0, _pInitialViewTransformationOrNULL=0x55af6380a1f0) at svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx:960 #18 0x00007fed517f36a1 in sdr::contact::(anonymous namespace)::LazyControlCreationPrimitive2D::create2DDecomposition(drawinglayer::geometry::ViewInformation2D const&) const (this=0x55af61d38c40, _rViewInformation=...) at svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx:1545 #19 0x00007fed5467691a in drawinglayer::primitive2d::BufferedDecompositionPrimitive2D::get2DDecomposition(drawinglayer::primitive2d::Primitive2DDecompositionVisitor&, drawinglayer::geometry::ViewInformation2D const&) const (this=0x55af61d38c40, rVisitor=..., rViewInformation=...) at drawinglayer/source/primitive2d/BufferedDecompositionPrimitive2D.cxx:133 #20 0x00007fed517f358c in sdr::contact::(anonymous namespace)::LazyControlCreationPrimitive2D::get2DDecomposition(drawinglayer::primitive2d::Primitive2DDecompositionVisitor&, drawinglayer::geometry::ViewInformation2D const&) const (this=0x55af61d38c40, rVisitor=..., _rViewInformation=...) at svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx:1530 [...] Introduce a new flag `WindowBorderStyle::NONATIVEBORDER` and set it for the newly created control in `UnoControl::createPeer` if the use of the "standard theme" instead of the system style is enabled. Evaluate the flag in `ImplSmallBorderWindowView::Init` to never enable native drawing if it is set to consistently not apply system styling for such controls. Change-Id: Ib12685a3cf98acba035899221feb536f40cda84c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171396 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins (cherry picked from commit 001c093) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171409 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
The stack trace was: Thread 1 "soffice.bin" received signal SIGSEGV, Segmentation fault. 0x00007ffff32175ee in rtl::OUString::OUString (this=0x7fffffffaac0, str=...) at /home/cono/git/lo/libreoffice/include/rtl/ustring.hxx:197 197 pData = str.pData; #0 0x00007ffff32175ee in rtl::OUString::OUString(rtl::OUString const&) (this=0x7fffffffaac0, str=...) at /home/cono/git/lo/libreoffice/include/rtl/ustring.hxx:197 #1 0x00007ffff3521e4f in GalleryBrowser1::GetItemText(SgaObject const&, GalleryItemFlags) (rObj=..., nItemTextFlags=GalleryItemFlags::Title) at /home/cono/git/lo/libreoffice/svx/source/gallery2/galbrws1.cxx:1412 #2 0x00007ffff352265d in GalleryBrowser1::FillThemeEntries() (this=0x55555c0c9240) at /home/cono/git/lo/libreoffice/svx/source/gallery2/galbrws1.cxx:1505 #3 0x00007ffff351a602 in GalleryBrowser1::GalleryBrowser1(weld::Builder&, Gallery*) (this=0x55555c0c9240, rBuilder=..., pGallery=0x55555c0a4aa0) at /home/cono/git/lo/libreoffice/svx/source/gallery2/galbrws1.cxx:196 #4 0x00007ffff354c291 in svx::sidebar::GalleryControl::GalleryControl(weld::Widget*) (this=0x55555c04e470, pParent=0x55555be85558) at /home/cono/git/lo/libreoffice/svx/source/gallery2/GalleryControl.cxx:32 #5 0x00007ffff45c72ea in std::make_unique<svx::sidebar::GalleryControl, weld::Widget*&>(weld::Widget*&) () at /usr/include/c++/12/bits/unique_ptr.h:1065 #6 0x00007ffff45c5f7a in (anonymous namespace)::PanelFactory::createUIElement(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x55555c0494e0, rsResourceURL=..., rArguments=...) at /home/cono/git/lo/libreoffice/svx/source/sidebar/PanelFactory.cxx:180 #7 0x00007ffff6412417 in (anonymous namespace)::UIElementFactoryManager::createUIElement(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x5555564db3e0, ResourceURL=..., Args=...) at /home/cono/git/lo/libreoffice/framework/source/uifactory/uielementfactorymanager.cxx:440 #8 0x00007ffff5593a35 in sfx2::sidebar::SidebarController::CreateUIElement(com::sun::star::uno::Reference<com::sun::star::awt::XWindow> const&, rtl::OUString const&, bool, sfx2::sidebar::Context const&) (this=0x55555b0a8100, rxWindow=..., rsImplementationURL=..., bWantsCanvas=false, rContext=...) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:1044 #9 0x00007ffff5593341 in sfx2::sidebar::SidebarController::CreatePanel(std::basic_string_view<char16_t, std::char_traits<char16_t> >, weld::Widget*, bool, sfx2::sidebar::Context const&, VclPtr<sfx2::sidebar::Deck> const&) (this=0x55555b0a8100, rsPanelId=u"GalleryPanel", pParentWindow=0x55555c040718, bIsInitiallyExpanded=true, rContext=..., pDeck=...) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:989 #10 0x00007ffff5592150 in sfx2::sidebar::SidebarController::CreatePanels(std::basic_string_view<char16_t, std::char_traits<char16_t> >, sfx2::sidebar::Context const&) (this=0x55555b0a8100, rDeckId=u"GalleryDeck", rContext=...) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:789 #11 0x00007ffff5591dbe in sfx2::sidebar::SidebarController::CreateDeck(std::basic_string_view<char16_t, std::char_traits<char16_t> >, sfx2::sidebar::Context const&, bool) (this=0x55555b0a8100, rDeckId=u"GalleryDeck", rContext=..., bForceCreate=false) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:737 #12 0x00007ffff5592b96 in sfx2::sidebar::SidebarController::SwitchToDeck(sfx2::sidebar::DeckDescriptor const&, sfx2::sidebar::Context const&) (this=0x55555b0a8100, rDeckDescriptor=..., rContext=...) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:899 #13 0x00007ffff5591b89 in sfx2::sidebar::SidebarController::SwitchToDeck(std::basic_string_view<char16_t, std::char_traits<char16_t> >) (this=0x55555b0a8100, rsDeckId=u"GalleryDeck") at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:708 #14 0x00007ffff5591936 in sfx2::sidebar::SidebarController::OpenThenToggleDeck(rtl::OUString const&) (this=0x55555b0a8100, rsDeckId=...) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:664 #15 0x00007ffff558d884 in operator()(rtl::OUString const&) const (__closure=0x7fffffffb7c0, rsDeckId=...) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:123 #16 0x00007ffff5598e13 in std::__invoke_impl<void, sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, const SfxViewFrame*)::<lambda(const rtl::OUString&)>&, const rtl::OUString&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/12/bits/invoke.h:61 #17 0x00007ffff559851c in std::__invoke_r<void, sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, const SfxViewFrame*)::<lambda(const rtl::OUString&)>&, const rtl::OUString&>(struct {...} &) (__fn=...) at /usr/include/c++/12/bits/invoke.h:111 #18 0x00007ffff5597b76 in std::_Function_handler<void(const rtl::OUString&), sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, const SfxViewFrame*)::<lambda(const rtl::OUString&)> >::_M_invoke(const std::_Any_data &, const rtl::OUString &) (__functor=..., __args#0=...) at /usr/include/c++/12/bits/std_function.h:290 #19 0x00007ffff55e2bed in std::function<void (rtl::OUString const&)>::operator()(rtl::OUString const&) const (this=0x7fffffffb7c0, __args#0=...) at /usr/include/c++/12/bits/std_function.h:591 #20 0x00007ffff55e09aa in sfx2::sidebar::TabBar::Item::HandleClick(rtl::OUString const&) (this=0x55555b133290) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/TabBar.cxx:274 #21 0x00007ffff55e0933 in sfx2::sidebar::TabBar::Item::LinkStubHandleClick(void*, rtl::OUString const&) (instance=0x55555b133290, data=...) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/TabBar.cxx:264 #22 0x00007fffe688a6b7 in Link<rtl::OUString const&, void>::Call(rtl::OUString const&) const (this=0x555556f7ee38, data=...) at /home/cono/git/lo/libreoffice/include/tools/link.hxx:111 #23 0x00007fffe68821c9 in weld::Toolbar::signal_clicked(rtl::OUString const&) (this=0x555556f7ee30, rIdent=...) at /home/cono/git/lo/libreoffice/include/vcl/weld.hxx:2512 #24 0x00007fffe683260b in (anonymous namespace)::GtkInstanceToolbar::signal_item_clicked(GtkToolButton*) (this=0x555556f7ebe0, pItem=0x55555b13a9a0) at /home/cono/git/lo/libreoffice/vcl/unx/gtk3/gtkinst.cxx:12009 #25 0x00007fffe6832553 in (anonymous namespace)::GtkInstanceToolbar::signalItemClicked(GtkToolButton*, gpointer) (pItem=0x55555b13a9a0, widget=0x555556f7ebe0) at /home/cono/git/lo/libreoffice/vcl/unx/gtk3/gtkinst.cxx:12000 ... I suspect that there is a corner case of some element giving a nullptr in xSgaObject; but since I can't repro locally, it's just a guess. Other places using AcquireObject in the file do check its return, so it seems reasonable to do the same here. Change-Id: I40c0d64a7219d483ec94f56c56a6df0ce79e9c51 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172280 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Creating or modifying native Qt UI elements needs to happen in the main thread. This commit takes care of the obvious cases where such interaction happens. Otherwise, the tdf#162696 scenario triggers asserts like the following with a Qt debug build: ASSERT failure in QWidget: "Widgets must be created in the GUI thread.", file /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidget.cpp, line 958 terminate called after throwing an instance of 'com::sun::star::uno::RuntimeException' Fatal exception: Signal 6 Stack: #0 sal::backtrace_get(unsigned int) at /home/michi/development/git/libreoffice/sal/osl/unx/backtraceapi.cxx:42 #1 (anonymous namespace)::printStack(int) at /home/michi/development/git/libreoffice/sal/osl/unx/signal.cxx:289 #2 (anonymous namespace)::callSystemHandler(int, siginfo_t*, void*) at /home/michi/development/git/libreoffice/sal/osl/unx/signal.cxx:330 #3 (anonymous namespace)::signalHandlerFunction(int, siginfo_t*, void*) at /home/michi/development/git/libreoffice/sal/osl/unx/signal.cxx:427 #4 /lib/x86_64-linux-gnu/libc.so.6(+0x3f590) [0x7fdb05455590] #5 __pthread_kill_implementation at ./nptl/pthread_kill.c:44 (discriminator 1) #6 raise at ./signal/../sysdeps/posix/raise.c:27 #7 abort at ./stdlib/abort.c:81 #8 /lib/x86_64-linux-gnu/libstdc++.so.6(+0xa1a3d) [0x7fdb050a1a3d] #9 /lib/x86_64-linux-gnu/libstdc++.so.6(+0xb306a) [0x7fdb050b306a] #10 std::unexpected() in /lib/x86_64-linux-gnu/libstdc++.so.6 #11 /home/michi/development/git/qt5/qtbase/lib/libQt6Core.so.6(+0xed562) [0x7fdaf0eed562] #12 QMessageLogger::fatal() const at /home/michi/development/git/qt5/qtbase/src/corelib/global/qlogging.cpp:901 #13 qt_assert_x(char const*, char const*, char const*, int) at /home/michi/development/git/qt5/qtbase/src/corelib/global/qassert.cpp:0 #14 QWidgetPrivate::init(QWidget*, QFlags<Qt::WindowType>) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidget.cpp:959 #15 QWidget::QWidget(QWidgetPrivate&, QWidget*, QFlags<Qt::WindowType>) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidget.cpp:878 #16 QDialog::QDialog(QDialogPrivate&, QWidget*, QFlags<Qt::WindowType>) at /home/michi/development/git/qt5/qtbase/src/widgets/dialogs/qdialog.cpp:377 #17 QMessageBox::QMessageBox(QWidget*) at /home/michi/development/git/qt5/qtbase/src/widgets/dialogs/qmessagebox.cpp:838 #18 QtInstance::CreateMessageDialog(weld::Widget*, VclMessageType, VclButtonsType, rtl::OUString const&) at /home/michi/development/git/libreoffice/vcl/qt6/../qt5/QtInstance.cxx:825 #19 Application::CreateMessageDialog(weld::Widget*, VclMessageType, VclButtonsType, rtl::OUString const&, vcl::ILibreOfficeKitNotifier const*) at /home/michi/development/git/libreoffice/vcl/source/window/builder.cxx:224 #20 dp_gui::DialogHelper::installExtensionWarn(std::basic_string_view<char16_t, std::char_traits<char16_t>>) at /home/michi/development/git/libreoffice/desktop/source/deployment/gui/dp_gui_dialog2.cxx:371 #21 dp_gui::(anonymous namespace)::ProgressCmdEnv::handle(com::sun::star::uno::Reference<com::sun::star::task::XInteractionRequest> const&) at /home/michi/development/git/libreoffice/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx:477 #22 dp_misc::interactContinuation(com::sun::star::uno::Any const&, com::sun::star::uno::Type const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&, bool*, bool*) at /home/michi/development/git/libreoffice/desktop/source/deployment/misc/dp_interact.cxx:114 #23 dp_manager::ExtensionManager::checkInstall(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) at /home/michi/development/git/libreoffice/desktop/source/deployment/manager/dp_extensionmanager.cxx:1315 #24 dp_manager::ExtensionManager::doChecksForAddExtension(com::sun::star::uno::Reference<com::sun::star::deployment::XPackageManager> const&, com::sun::star::uno::Sequence<com::sun::star::beans::NamedValue> const&, com::sun::star::uno::Reference<com::sun::star::deployment::XPackage> const&, com::sun::star::uno::Reference<com::sun::star::task::XAbortChannel> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&, com::sun::star::uno::Reference<com::sun::star::deployment::XPackage>&) at /home/michi/development/git/libreoffice/desktop/source/deployment/manager/dp_extensionmanager.cxx:565 #25 dp_manager::ExtensionManager::addExtension(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::NamedValue> const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::task::XAbortChannel> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) at /home/michi/development/git/libreoffice/desktop/source/deployment/manager/dp_extensionmanager.cxx:655 #26 non-virtual thunk to dp_manager::ExtensionManager::addExtension(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::NamedValue> const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::task::XAbortChannel> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) at /home/michi/development/git/libreoffice/desktop/source/deployment/manager/dp_extensionmanager.cxx:0 #27 dp_gui::ExtensionCmdQueue::Thread::_addExtension(rtl::Reference<dp_gui::(anonymous namespace)::ProgressCmdEnv> const&, rtl::OUString const&, rtl::OUString const&, bool) at /home/michi/development/git/libreoffice/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx:864 #28 dp_gui::ExtensionCmdQueue::Thread::execute() at /home/michi/development/git/libreoffice/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx:738 #29 salhelper::Thread::run() at /home/michi/development/git/libreoffice/salhelper/source/thread.cxx:39 #30 threadFunc at /home/michi/development/git/libreoffice/include/osl/thread.hxx:190 #31 osl_thread_start_Impl(void*) at /home/michi/development/git/libreoffice/sal/osl/unx/thread.cxx:245 #32 start_thread at ./nptl/pthread_create.c:447 #33 clone3 at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:80 Change-Id: Ifa84a038fc56f34958cd732caeb9c436b48b3c75 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172642 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Besides the obvious cases handled in previous commit Change-Id: Ifa84a038fc56f34958cd732caeb9c436b48b3c75 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Fri Aug 30 10:12:21 2024 +0200 tdf#162696 qt weld: Do GUI things in main thread , the destruction of `QtInstanceDialog::m_pDialog` (that previously implicitly happened due to it being a `std::unique_ptr`) also needs to happen in the main thread. Otherwise, it triggers this assert with a debug Qt build for the tdf#162696 of installing an extension via drag'n'drop into the start center: ASSERT failure in QCoreApplication::sendEvent: "Cannot send events to objects owned by a different thread. Current thread QThread(0x7f4b14003390). Receiver 'QDialog(0x562e6ba77450)' was created in thread QThread(0x562e69709f60, name = "Qt mainThread")", file /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp, line 551 terminate called after throwing an instance of 'com::sun::star::uno::RuntimeException' Fatal exception: Signal 6 Stack: #0 sal::backtrace_get(unsigned int) at /home/michi/development/git/libreoffice/sal/osl/unx/backtraceapi.cxx:42 #1 (anonymous namespace)::printStack(int) at /home/michi/development/git/libreoffice/sal/osl/unx/signal.cxx:289 #2 (anonymous namespace)::callSystemHandler(int, siginfo_t*, void*) at /home/michi/development/git/libreoffice/sal/osl/unx/signal.cxx:330 #3 (anonymous namespace)::signalHandlerFunction(int, siginfo_t*, void*) at /home/michi/development/git/libreoffice/sal/osl/unx/signal.cxx:427 #4 /lib/x86_64-linux-gnu/libc.so.6(+0x3f590) [0x7f4be7455590] #5 __pthread_kill_implementation at ./nptl/pthread_kill.c:44 (discriminator 1) #6 raise at ./signal/../sysdeps/posix/raise.c:27 #7 abort at ./stdlib/abort.c:81 #8 /lib/x86_64-linux-gnu/libstdc++.so.6(+0xa1a3d) [0x7f4be70a1a3d] #9 /lib/x86_64-linux-gnu/libstdc++.so.6(+0xb306a) [0x7f4be70b306a] #10 std::unexpected() in /lib/x86_64-linux-gnu/libstdc++.so.6 #11 /home/michi/development/git/qt5/qtbase/lib/libQt6Core.so.6(+0xed562) [0x7f4bd2eed562] #12 QMessageLogger::fatal() const at /home/michi/development/git/qt5/qtbase/src/corelib/global/qlogging.cpp:901 #13 qt_assert_x(char const*, char const*, char const*, int) at /home/michi/development/git/qt5/qtbase/src/corelib/global/qassert.cpp:0 #14 QCoreApplicationPrivate::checkReceiverThread(QObject*) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:0 #15 QApplication::notify(QObject*, QEvent*) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:2583 #16 QCoreApplication::notifyInternal2(QObject*, QEvent*) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1170 #17 QCoreApplication::sendEvent(QObject*, QEvent*) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1614 #18 QWidgetPrivate::setVisible(bool) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidget.cpp:8415 #19 QDialogPrivate::setVisible(bool) at /home/michi/development/git/qt5/qtbase/src/widgets/dialogs/qdialog.cpp:832 #20 QMessageBoxPrivate::setVisible(bool) at /home/michi/development/git/qt5/qtbase/src/widgets/dialogs/qmessagebox.cpp:1676 #21 QDialog::setVisible(bool) at /home/michi/development/git/qt5/qtbase/src/widgets/dialogs/qdialog.cpp:750 #22 QWidget::hide() at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidget.cpp:8176 #23 QDialog::~QDialog() at /home/michi/development/git/qt5/qtbase/src/widgets/dialogs/qdialog.cpp:390 #24 QMessageBox::~QMessageBox() at /home/michi/development/git/qt5/qtbase/src/widgets/dialogs/qmessagebox.cpp:879 #25 QMessageBox::~QMessageBox() at /home/michi/development/git/qt5/qtbase/src/widgets/dialogs/qmessagebox.cpp:878 #26 std::default_delete<QDialog>::operator()(QDialog*) const at /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:94 #27 std::unique_ptr<QDialog, std::default_delete<QDialog>>::~unique_ptr() at /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:398 #28 QtInstanceDialog::~QtInstanceDialog() at /home/michi/development/git/libreoffice/vcl/inc/qt6/../qt5/QtInstanceDialog.hxx:14 #29 QtInstanceMessageDialog::~QtInstanceMessageDialog() at /home/michi/development/git/libreoffice/vcl/inc/qt6/../qt5/QtInstanceMessageDialog.hxx:16 #30 QtInstanceMessageDialog::~QtInstanceMessageDialog() at /home/michi/development/git/libreoffice/vcl/inc/qt6/../qt5/QtInstanceMessageDialog.hxx:16 #31 QtInstanceMessageDialog::~QtInstanceMessageDialog() at /home/michi/development/git/libreoffice/vcl/inc/qt6/../qt5/QtInstanceMessageDialog.hxx:16 #32 std::default_delete<weld::MessageDialog>::operator()(weld::MessageDialog*) const at /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:94 #33 std::__uniq_ptr_impl<weld::MessageDialog, std::default_delete<weld::MessageDialog>>::reset(weld::MessageDialog*) at /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:206 #34 std::unique_ptr<weld::MessageDialog, std::default_delete<weld::MessageDialog>>::reset(weld::MessageDialog*) at /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:504 #35 dp_gui::DialogHelper::installExtensionWarn(std::basic_string_view<char16_t, std::char_traits<char16_t>>) at /home/michi/development/git/libreoffice/desktop/source/deployment/gui/dp_gui_dialog2.cxx:379 #36 dp_gui::(anonymous namespace)::ProgressCmdEnv::handle(com::sun::star::uno::Reference<com::sun::star::task::XInteractionRequest> const&) at /home/michi/development/git/libreoffice/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx:477 #37 dp_misc::interactContinuation(com::sun::star::uno::Any const&, com::sun::star::uno::Type const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&, bool*, bool*) at /home/michi/development/git/libreoffice/desktop/source/deployment/misc/dp_interact.cxx:114 #38 dp_manager::ExtensionManager::checkInstall(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) at /home/michi/development/git/libreoffice/desktop/source/deployment/manager/dp_extensionmanager.cxx:1315 #39 dp_manager::ExtensionManager::doChecksForAddExtension(com::sun::star::uno::Reference<com::sun::star::deployment::XPackageManager> const&, com::sun::star::uno::Sequence<com::sun::star::beans::NamedValue> const&, com::sun::star::uno::Reference<com::sun::star::deployment::XPackage> const&, com::sun::star::uno::Reference<com::sun::star::task::XAbortChannel> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&, com::sun::star::uno::Reference<com::sun::star::deployment::XPackage>&) at /home/michi/development/git/libreoffice/desktop/source/deployment/manager/dp_extensionmanager.cxx:565 #40 dp_manager::ExtensionManager::addExtension(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::NamedValue> const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::task::XAbortChannel> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) at /home/michi/development/git/libreoffice/desktop/source/deployment/manager/dp_extensionmanager.cxx:655 #41 non-virtual thunk to dp_manager::ExtensionManager::addExtension(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::NamedValue> const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::task::XAbortChannel> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) at /home/michi/development/git/libreoffice/desktop/source/deployment/manager/dp_extensionmanager.cxx:0 #42 dp_gui::ExtensionCmdQueue::Thread::_addExtension(rtl::Reference<dp_gui::(anonymous namespace)::ProgressCmdEnv> const&, rtl::OUString const&, rtl::OUString const&, bool) at /home/michi/development/git/libreoffice/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx:864 #43 dp_gui::ExtensionCmdQueue::Thread::execute() at /home/michi/development/git/libreoffice/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx:738 #44 salhelper::Thread::run() at /home/michi/development/git/libreoffice/salhelper/source/thread.cxx:39 #45 threadFunc at /home/michi/development/git/libreoffice/include/osl/thread.hxx:190 #46 osl_thread_start_Impl(void*) at /home/michi/development/git/libreoffice/sal/osl/unx/thread.cxx:245 #47 start_thread at ./nptl/pthread_create.c:447 #48 clone3 at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:80 Change-Id: Idb5b20bde8c306ed14efd5467887d55fdf470202 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172643 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
Creating or modifying native Qt UI elements needs to happen in the main thread. This commit takes care of the obvious cases where such interaction happens. Otherwise, the tdf#162696 scenario triggers asserts like the following with a Qt debug build: ASSERT failure in QWidget: "Widgets must be created in the GUI thread.", file /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidget.cpp, line 958 terminate called after throwing an instance of 'com::sun::star::uno::RuntimeException' Fatal exception: Signal 6 Stack: #0 sal::backtrace_get(unsigned int) at /home/michi/development/git/libreoffice/sal/osl/unx/backtraceapi.cxx:42 #1 (anonymous namespace)::printStack(int) at /home/michi/development/git/libreoffice/sal/osl/unx/signal.cxx:289 #2 (anonymous namespace)::callSystemHandler(int, siginfo_t*, void*) at /home/michi/development/git/libreoffice/sal/osl/unx/signal.cxx:330 #3 (anonymous namespace)::signalHandlerFunction(int, siginfo_t*, void*) at /home/michi/development/git/libreoffice/sal/osl/unx/signal.cxx:427 #4 /lib/x86_64-linux-gnu/libc.so.6(+0x3f590) [0x7fdb05455590] #5 __pthread_kill_implementation at ./nptl/pthread_kill.c:44 (discriminator 1) #6 raise at ./signal/../sysdeps/posix/raise.c:27 #7 abort at ./stdlib/abort.c:81 #8 /lib/x86_64-linux-gnu/libstdc++.so.6(+0xa1a3d) [0x7fdb050a1a3d] #9 /lib/x86_64-linux-gnu/libstdc++.so.6(+0xb306a) [0x7fdb050b306a] #10 std::unexpected() in /lib/x86_64-linux-gnu/libstdc++.so.6 #11 /home/michi/development/git/qt5/qtbase/lib/libQt6Core.so.6(+0xed562) [0x7fdaf0eed562] #12 QMessageLogger::fatal() const at /home/michi/development/git/qt5/qtbase/src/corelib/global/qlogging.cpp:901 #13 qt_assert_x(char const*, char const*, char const*, int) at /home/michi/development/git/qt5/qtbase/src/corelib/global/qassert.cpp:0 #14 QWidgetPrivate::init(QWidget*, QFlags<Qt::WindowType>) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidget.cpp:959 #15 QWidget::QWidget(QWidgetPrivate&, QWidget*, QFlags<Qt::WindowType>) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidget.cpp:878 #16 QDialog::QDialog(QDialogPrivate&, QWidget*, QFlags<Qt::WindowType>) at /home/michi/development/git/qt5/qtbase/src/widgets/dialogs/qdialog.cpp:377 #17 QMessageBox::QMessageBox(QWidget*) at /home/michi/development/git/qt5/qtbase/src/widgets/dialogs/qmessagebox.cpp:838 #18 QtInstance::CreateMessageDialog(weld::Widget*, VclMessageType, VclButtonsType, rtl::OUString const&) at /home/michi/development/git/libreoffice/vcl/qt6/../qt5/QtInstance.cxx:825 #19 Application::CreateMessageDialog(weld::Widget*, VclMessageType, VclButtonsType, rtl::OUString const&, vcl::ILibreOfficeKitNotifier const*) at /home/michi/development/git/libreoffice/vcl/source/window/builder.cxx:224 #20 dp_gui::DialogHelper::installExtensionWarn(std::basic_string_view<char16_t, std::char_traits<char16_t>>) at /home/michi/development/git/libreoffice/desktop/source/deployment/gui/dp_gui_dialog2.cxx:371 #21 dp_gui::(anonymous namespace)::ProgressCmdEnv::handle(com::sun::star::uno::Reference<com::sun::star::task::XInteractionRequest> const&) at /home/michi/development/git/libreoffice/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx:477 #22 dp_misc::interactContinuation(com::sun::star::uno::Any const&, com::sun::star::uno::Type const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&, bool*, bool*) at /home/michi/development/git/libreoffice/desktop/source/deployment/misc/dp_interact.cxx:114 #23 dp_manager::ExtensionManager::checkInstall(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) at /home/michi/development/git/libreoffice/desktop/source/deployment/manager/dp_extensionmanager.cxx:1315 #24 dp_manager::ExtensionManager::doChecksForAddExtension(com::sun::star::uno::Reference<com::sun::star::deployment::XPackageManager> const&, com::sun::star::uno::Sequence<com::sun::star::beans::NamedValue> const&, com::sun::star::uno::Reference<com::sun::star::deployment::XPackage> const&, com::sun::star::uno::Reference<com::sun::star::task::XAbortChannel> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&, com::sun::star::uno::Reference<com::sun::star::deployment::XPackage>&) at /home/michi/development/git/libreoffice/desktop/source/deployment/manager/dp_extensionmanager.cxx:565 #25 dp_manager::ExtensionManager::addExtension(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::NamedValue> const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::task::XAbortChannel> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) at /home/michi/development/git/libreoffice/desktop/source/deployment/manager/dp_extensionmanager.cxx:655 #26 non-virtual thunk to dp_manager::ExtensionManager::addExtension(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::NamedValue> const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::task::XAbortChannel> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) at /home/michi/development/git/libreoffice/desktop/source/deployment/manager/dp_extensionmanager.cxx:0 #27 dp_gui::ExtensionCmdQueue::Thread::_addExtension(rtl::Reference<dp_gui::(anonymous namespace)::ProgressCmdEnv> const&, rtl::OUString const&, rtl::OUString const&, bool) at /home/michi/development/git/libreoffice/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx:864 #28 dp_gui::ExtensionCmdQueue::Thread::execute() at /home/michi/development/git/libreoffice/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx:738 #29 salhelper::Thread::run() at /home/michi/development/git/libreoffice/salhelper/source/thread.cxx:39 #30 threadFunc at /home/michi/development/git/libreoffice/include/osl/thread.hxx:190 #31 osl_thread_start_Impl(void*) at /home/michi/development/git/libreoffice/sal/osl/unx/thread.cxx:245 #32 start_thread at ./nptl/pthread_create.c:447 #33 clone3 at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:80 Change-Id: Ifa84a038fc56f34958cd732caeb9c436b48b3c75 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172642 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> (cherry picked from commit 5e4c163) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172652 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
Besides the obvious cases handled in previous commit Change-Id: Ifa84a038fc56f34958cd732caeb9c436b48b3c75 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Fri Aug 30 10:12:21 2024 +0200 tdf#162696 qt weld: Do GUI things in main thread , the destruction of `QtInstanceDialog::m_pDialog` (that previously implicitly happened due to it being a `std::unique_ptr`) also needs to happen in the main thread. Otherwise, it triggers this assert with a debug Qt build for the tdf#162696 of installing an extension via drag'n'drop into the start center: ASSERT failure in QCoreApplication::sendEvent: "Cannot send events to objects owned by a different thread. Current thread QThread(0x7f4b14003390). Receiver 'QDialog(0x562e6ba77450)' was created in thread QThread(0x562e69709f60, name = "Qt mainThread")", file /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp, line 551 terminate called after throwing an instance of 'com::sun::star::uno::RuntimeException' Fatal exception: Signal 6 Stack: #0 sal::backtrace_get(unsigned int) at /home/michi/development/git/libreoffice/sal/osl/unx/backtraceapi.cxx:42 #1 (anonymous namespace)::printStack(int) at /home/michi/development/git/libreoffice/sal/osl/unx/signal.cxx:289 #2 (anonymous namespace)::callSystemHandler(int, siginfo_t*, void*) at /home/michi/development/git/libreoffice/sal/osl/unx/signal.cxx:330 #3 (anonymous namespace)::signalHandlerFunction(int, siginfo_t*, void*) at /home/michi/development/git/libreoffice/sal/osl/unx/signal.cxx:427 #4 /lib/x86_64-linux-gnu/libc.so.6(+0x3f590) [0x7f4be7455590] #5 __pthread_kill_implementation at ./nptl/pthread_kill.c:44 (discriminator 1) #6 raise at ./signal/../sysdeps/posix/raise.c:27 #7 abort at ./stdlib/abort.c:81 #8 /lib/x86_64-linux-gnu/libstdc++.so.6(+0xa1a3d) [0x7f4be70a1a3d] #9 /lib/x86_64-linux-gnu/libstdc++.so.6(+0xb306a) [0x7f4be70b306a] #10 std::unexpected() in /lib/x86_64-linux-gnu/libstdc++.so.6 #11 /home/michi/development/git/qt5/qtbase/lib/libQt6Core.so.6(+0xed562) [0x7f4bd2eed562] #12 QMessageLogger::fatal() const at /home/michi/development/git/qt5/qtbase/src/corelib/global/qlogging.cpp:901 #13 qt_assert_x(char const*, char const*, char const*, int) at /home/michi/development/git/qt5/qtbase/src/corelib/global/qassert.cpp:0 #14 QCoreApplicationPrivate::checkReceiverThread(QObject*) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:0 #15 QApplication::notify(QObject*, QEvent*) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:2583 #16 QCoreApplication::notifyInternal2(QObject*, QEvent*) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1170 #17 QCoreApplication::sendEvent(QObject*, QEvent*) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1614 #18 QWidgetPrivate::setVisible(bool) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidget.cpp:8415 #19 QDialogPrivate::setVisible(bool) at /home/michi/development/git/qt5/qtbase/src/widgets/dialogs/qdialog.cpp:832 #20 QMessageBoxPrivate::setVisible(bool) at /home/michi/development/git/qt5/qtbase/src/widgets/dialogs/qmessagebox.cpp:1676 #21 QDialog::setVisible(bool) at /home/michi/development/git/qt5/qtbase/src/widgets/dialogs/qdialog.cpp:750 #22 QWidget::hide() at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidget.cpp:8176 #23 QDialog::~QDialog() at /home/michi/development/git/qt5/qtbase/src/widgets/dialogs/qdialog.cpp:390 #24 QMessageBox::~QMessageBox() at /home/michi/development/git/qt5/qtbase/src/widgets/dialogs/qmessagebox.cpp:879 #25 QMessageBox::~QMessageBox() at /home/michi/development/git/qt5/qtbase/src/widgets/dialogs/qmessagebox.cpp:878 #26 std::default_delete<QDialog>::operator()(QDialog*) const at /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:94 #27 std::unique_ptr<QDialog, std::default_delete<QDialog>>::~unique_ptr() at /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:398 #28 QtInstanceDialog::~QtInstanceDialog() at /home/michi/development/git/libreoffice/vcl/inc/qt6/../qt5/QtInstanceDialog.hxx:14 #29 QtInstanceMessageDialog::~QtInstanceMessageDialog() at /home/michi/development/git/libreoffice/vcl/inc/qt6/../qt5/QtInstanceMessageDialog.hxx:16 #30 QtInstanceMessageDialog::~QtInstanceMessageDialog() at /home/michi/development/git/libreoffice/vcl/inc/qt6/../qt5/QtInstanceMessageDialog.hxx:16 #31 QtInstanceMessageDialog::~QtInstanceMessageDialog() at /home/michi/development/git/libreoffice/vcl/inc/qt6/../qt5/QtInstanceMessageDialog.hxx:16 #32 std::default_delete<weld::MessageDialog>::operator()(weld::MessageDialog*) const at /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:94 #33 std::__uniq_ptr_impl<weld::MessageDialog, std::default_delete<weld::MessageDialog>>::reset(weld::MessageDialog*) at /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:206 #34 std::unique_ptr<weld::MessageDialog, std::default_delete<weld::MessageDialog>>::reset(weld::MessageDialog*) at /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:504 #35 dp_gui::DialogHelper::installExtensionWarn(std::basic_string_view<char16_t, std::char_traits<char16_t>>) at /home/michi/development/git/libreoffice/desktop/source/deployment/gui/dp_gui_dialog2.cxx:379 #36 dp_gui::(anonymous namespace)::ProgressCmdEnv::handle(com::sun::star::uno::Reference<com::sun::star::task::XInteractionRequest> const&) at /home/michi/development/git/libreoffice/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx:477 #37 dp_misc::interactContinuation(com::sun::star::uno::Any const&, com::sun::star::uno::Type const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&, bool*, bool*) at /home/michi/development/git/libreoffice/desktop/source/deployment/misc/dp_interact.cxx:114 #38 dp_manager::ExtensionManager::checkInstall(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) at /home/michi/development/git/libreoffice/desktop/source/deployment/manager/dp_extensionmanager.cxx:1315 #39 dp_manager::ExtensionManager::doChecksForAddExtension(com::sun::star::uno::Reference<com::sun::star::deployment::XPackageManager> const&, com::sun::star::uno::Sequence<com::sun::star::beans::NamedValue> const&, com::sun::star::uno::Reference<com::sun::star::deployment::XPackage> const&, com::sun::star::uno::Reference<com::sun::star::task::XAbortChannel> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&, com::sun::star::uno::Reference<com::sun::star::deployment::XPackage>&) at /home/michi/development/git/libreoffice/desktop/source/deployment/manager/dp_extensionmanager.cxx:565 #40 dp_manager::ExtensionManager::addExtension(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::NamedValue> const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::task::XAbortChannel> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) at /home/michi/development/git/libreoffice/desktop/source/deployment/manager/dp_extensionmanager.cxx:655 #41 non-virtual thunk to dp_manager::ExtensionManager::addExtension(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::NamedValue> const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::task::XAbortChannel> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) at /home/michi/development/git/libreoffice/desktop/source/deployment/manager/dp_extensionmanager.cxx:0 #42 dp_gui::ExtensionCmdQueue::Thread::_addExtension(rtl::Reference<dp_gui::(anonymous namespace)::ProgressCmdEnv> const&, rtl::OUString const&, rtl::OUString const&, bool) at /home/michi/development/git/libreoffice/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx:864 #43 dp_gui::ExtensionCmdQueue::Thread::execute() at /home/michi/development/git/libreoffice/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx:738 #44 salhelper::Thread::run() at /home/michi/development/git/libreoffice/salhelper/source/thread.cxx:39 #45 threadFunc at /home/michi/development/git/libreoffice/include/osl/thread.hxx:190 #46 osl_thread_start_Impl(void*) at /home/michi/development/git/libreoffice/sal/osl/unx/thread.cxx:245 #47 start_thread at ./nptl/pthread_create.c:447 #48 clone3 at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:80 Change-Id: Idb5b20bde8c306ed14efd5467887d55fdf470202 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172643 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172653 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
This fixes the following assert seen with the qt6 VCL plugin when run with a current Qt 6 dev debug build for the tdf#162696 scenario when when native Qt widgets (currently only message dialogs are implmeneted) are explicitly disabled using `SAL_VCL_QT_NO_WELDED_WIDGETS=1`. ASSERT failure in QWidget: "Widgets must be created in the GUI thread.", file /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidget.cpp, line 958 terminate called after throwing an instance of 'com::sun::star::uno::RuntimeException' Fatal exception: Signal 6 Stack: #0 sal::backtrace_get(unsigned int) at /home/michi/development/git/libreoffice/sal/osl/unx/backtraceapi.cxx:42 #1 (anonymous namespace)::printStack(int) at /home/michi/development/git/libreoffice/sal/osl/unx/signal.cxx:289 #2 (anonymous namespace)::callSystemHandler(int, siginfo_t*, void*) at /home/michi/development/git/libreoffice/sal/osl/unx/signal.cxx:330 #3 (anonymous namespace)::signalHandlerFunction(int, siginfo_t*, void*) at /home/michi/development/git/libreoffice/sal/osl/unx/signal.cxx:427 #4 /lib/x86_64-linux-gnu/libc.so.6(+0x3f590) [0x7f73cbe55590] #5 __pthread_kill_implementation at ./nptl/pthread_kill.c:44 (discriminator 1) #6 raise at ./signal/../sysdeps/posix/raise.c:27 #7 abort at ./stdlib/abort.c:81 #8 /lib/x86_64-linux-gnu/libstdc++.so.6(+0xa1a3d) [0x7f73cbaa1a3d] #9 /lib/x86_64-linux-gnu/libstdc++.so.6(+0xb306a) [0x7f73cbab306a] #10 std::unexpected() in /lib/x86_64-linux-gnu/libstdc++.so.6 #11 /home/michi/development/git/qt5/qtbase/lib/libQt6Core.so.6(+0xed562) [0x7f73b78ed562] #12 QMessageLogger::fatal() const at /home/michi/development/git/qt5/qtbase/src/corelib/global/qlogging.cpp:901 #13 qt_assert_x(char const*, char const*, char const*, int) at /home/michi/development/git/qt5/qtbase/src/corelib/global/qassert.cpp:0 #14 QWidgetPrivate::init(QWidget*, QFlags<Qt::WindowType>) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidget.cpp:959 #15 QWidget::QWidget(QWidgetPrivate&, QWidget*, QFlags<Qt::WindowType>) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidget.cpp:878 #16 QMenuBar::QMenuBar(QWidget*) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qmenubar.cpp:715 #17 QMainWindow::menuBar() const at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qmainwindow.cpp:468 #18 QtFrame::menuBarOffset() const at /home/michi/development/git/libreoffice/vcl/qt6/../qt5/QtFrame.cxx:462 #19 QtFrame::SetDefaultPos() at /home/michi/development/git/libreoffice/vcl/qt6/../qt5/QtFrame.cxx:479 #20 QtFrame::SetPosSize(long, long, long, long, unsigned short) at /home/michi/development/git/libreoffice/vcl/qt6/../qt5/QtFrame.cxx:565 #21 vcl::Window::setPosSizePixel(long, long, long, long, PosSizeFlags) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:2786 #22 vcl::Window::SetSizePixel(Size const&) at /home/michi/development/git/libreoffice/vcl/source/window/window2.cxx:1344 #23 SystemWindow::setOptimalLayoutSize(bool) at /home/michi/development/git/libreoffice/vcl/source/window/syswin.cxx:1085 #24 SystemWindow::DoInitialLayout() at /home/michi/development/git/libreoffice/vcl/source/window/syswin.cxx:1098 #25 Dialog::StateChanged(StateChangedType) at /home/michi/development/git/libreoffice/vcl/source/window/dialog.cxx:761 #26 MessageDialog::StateChanged(StateChangedType) at /home/michi/development/git/libreoffice/vcl/source/window/layout.cxx:2706 #27 vcl::Window::CompatStateChanged(StateChangedType) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:3921 #28 vcl::Window::ImplCallInitShow() at /home/michi/development/git/libreoffice/vcl/source/window/event.cxx:496 #29 vcl::Window::Show(bool, ShowFlags) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:2312 #30 Dialog::ImplStartExecute() at /home/michi/development/git/libreoffice/vcl/source/window/dialog.cxx:1021 #31 Dialog::Execute() at /home/michi/development/git/libreoffice/vcl/source/window/dialog.cxx:1071 #32 SalInstanceDialog::run() at /home/michi/development/git/libreoffice/vcl/source/app/salvtables.cxx:1898 #33 dp_gui::(anonymous namespace)::ProgressCmdEnv::handle(com::sun::star::uno::Reference<com::sun::star::task::XInteractionRequest> const&) at /home/michi/development/git/libreoffice/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx:459 #34 dp_misc::interactContinuation(com::sun::star::uno::Any const&, com::sun::star::uno::Type const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&, bool*, bool*) at /home/michi/development/git/libreoffice/desktop/source/deployment/misc/dp_interact.cxx:114 #35 dp_manager::ExtensionManager::checkUpdate(rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::deployment::XPackage> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) at /home/michi/development/git/libreoffice/desktop/source/deployment/manager/dp_extensionmanager.cxx:1348 [...] Change-Id: I9eb0ac63c50de3c713328d0466cb01ea90251741 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172685 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
This fixes the following assert seen with the qt6 VCL plugin when run with a current Qt 6 dev debug build for the tdf#162696 scenario when when native Qt widgets (currently only message dialogs are implmeneted) are explicitly disabled using `SAL_VCL_QT_NO_WELDED_WIDGETS=1`. ASSERT failure in QWidget: "Widgets must be created in the GUI thread.", file /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidget.cpp, line 958 terminate called after throwing an instance of 'com::sun::star::uno::RuntimeException' Fatal exception: Signal 6 Stack: #0 sal::backtrace_get(unsigned int) at /home/michi/development/git/libreoffice/sal/osl/unx/backtraceapi.cxx:42 #1 (anonymous namespace)::printStack(int) at /home/michi/development/git/libreoffice/sal/osl/unx/signal.cxx:289 #2 (anonymous namespace)::callSystemHandler(int, siginfo_t*, void*) at /home/michi/development/git/libreoffice/sal/osl/unx/signal.cxx:330 #3 (anonymous namespace)::signalHandlerFunction(int, siginfo_t*, void*) at /home/michi/development/git/libreoffice/sal/osl/unx/signal.cxx:427 #4 /lib/x86_64-linux-gnu/libc.so.6(+0x3f590) [0x7f73cbe55590] #5 __pthread_kill_implementation at ./nptl/pthread_kill.c:44 (discriminator 1) #6 raise at ./signal/../sysdeps/posix/raise.c:27 #7 abort at ./stdlib/abort.c:81 #8 /lib/x86_64-linux-gnu/libstdc++.so.6(+0xa1a3d) [0x7f73cbaa1a3d] #9 /lib/x86_64-linux-gnu/libstdc++.so.6(+0xb306a) [0x7f73cbab306a] #10 std::unexpected() in /lib/x86_64-linux-gnu/libstdc++.so.6 #11 /home/michi/development/git/qt5/qtbase/lib/libQt6Core.so.6(+0xed562) [0x7f73b78ed562] #12 QMessageLogger::fatal() const at /home/michi/development/git/qt5/qtbase/src/corelib/global/qlogging.cpp:901 #13 qt_assert_x(char const*, char const*, char const*, int) at /home/michi/development/git/qt5/qtbase/src/corelib/global/qassert.cpp:0 #14 QWidgetPrivate::init(QWidget*, QFlags<Qt::WindowType>) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidget.cpp:959 #15 QWidget::QWidget(QWidgetPrivate&, QWidget*, QFlags<Qt::WindowType>) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidget.cpp:878 #16 QMenuBar::QMenuBar(QWidget*) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qmenubar.cpp:715 #17 QMainWindow::menuBar() const at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qmainwindow.cpp:468 #18 QtFrame::menuBarOffset() const at /home/michi/development/git/libreoffice/vcl/qt6/../qt5/QtFrame.cxx:462 #19 QtFrame::SetDefaultPos() at /home/michi/development/git/libreoffice/vcl/qt6/../qt5/QtFrame.cxx:479 #20 QtFrame::SetPosSize(long, long, long, long, unsigned short) at /home/michi/development/git/libreoffice/vcl/qt6/../qt5/QtFrame.cxx:565 #21 vcl::Window::setPosSizePixel(long, long, long, long, PosSizeFlags) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:2786 #22 vcl::Window::SetSizePixel(Size const&) at /home/michi/development/git/libreoffice/vcl/source/window/window2.cxx:1344 #23 SystemWindow::setOptimalLayoutSize(bool) at /home/michi/development/git/libreoffice/vcl/source/window/syswin.cxx:1085 #24 SystemWindow::DoInitialLayout() at /home/michi/development/git/libreoffice/vcl/source/window/syswin.cxx:1098 #25 Dialog::StateChanged(StateChangedType) at /home/michi/development/git/libreoffice/vcl/source/window/dialog.cxx:761 #26 MessageDialog::StateChanged(StateChangedType) at /home/michi/development/git/libreoffice/vcl/source/window/layout.cxx:2706 #27 vcl::Window::CompatStateChanged(StateChangedType) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:3921 #28 vcl::Window::ImplCallInitShow() at /home/michi/development/git/libreoffice/vcl/source/window/event.cxx:496 #29 vcl::Window::Show(bool, ShowFlags) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:2312 #30 Dialog::ImplStartExecute() at /home/michi/development/git/libreoffice/vcl/source/window/dialog.cxx:1021 #31 Dialog::Execute() at /home/michi/development/git/libreoffice/vcl/source/window/dialog.cxx:1071 #32 SalInstanceDialog::run() at /home/michi/development/git/libreoffice/vcl/source/app/salvtables.cxx:1898 #33 dp_gui::(anonymous namespace)::ProgressCmdEnv::handle(com::sun::star::uno::Reference<com::sun::star::task::XInteractionRequest> const&) at /home/michi/development/git/libreoffice/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx:459 #34 dp_misc::interactContinuation(com::sun::star::uno::Any const&, com::sun::star::uno::Type const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&, bool*, bool*) at /home/michi/development/git/libreoffice/desktop/source/deployment/misc/dp_interact.cxx:114 #35 dp_manager::ExtensionManager::checkUpdate(rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::deployment::XPackage> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) at /home/michi/development/git/libreoffice/desktop/source/deployment/manager/dp_extensionmanager.cxx:1348 [...] Change-Id: I9eb0ac63c50de3c713328d0466cb01ea90251741 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172685 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> (cherry picked from commit 5ef991f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172674 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
The stack trace was: Thread 1 "soffice.bin" received signal SIGSEGV, Segmentation fault. 0x00007ffff32175ee in rtl::OUString::OUString (this=0x7fffffffaac0, str=...) at /home/cono/git/lo/libreoffice/include/rtl/ustring.hxx:197 197 pData = str.pData; #0 0x00007ffff32175ee in rtl::OUString::OUString(rtl::OUString const&) (this=0x7fffffffaac0, str=...) at /home/cono/git/lo/libreoffice/include/rtl/ustring.hxx:197 #1 0x00007ffff3521e4f in GalleryBrowser1::GetItemText(SgaObject const&, GalleryItemFlags) (rObj=..., nItemTextFlags=GalleryItemFlags::Title) at /home/cono/git/lo/libreoffice/svx/source/gallery2/galbrws1.cxx:1412 #2 0x00007ffff352265d in GalleryBrowser1::FillThemeEntries() (this=0x55555c0c9240) at /home/cono/git/lo/libreoffice/svx/source/gallery2/galbrws1.cxx:1505 #3 0x00007ffff351a602 in GalleryBrowser1::GalleryBrowser1(weld::Builder&, Gallery*) (this=0x55555c0c9240, rBuilder=..., pGallery=0x55555c0a4aa0) at /home/cono/git/lo/libreoffice/svx/source/gallery2/galbrws1.cxx:196 #4 0x00007ffff354c291 in svx::sidebar::GalleryControl::GalleryControl(weld::Widget*) (this=0x55555c04e470, pParent=0x55555be85558) at /home/cono/git/lo/libreoffice/svx/source/gallery2/GalleryControl.cxx:32 #5 0x00007ffff45c72ea in std::make_unique<svx::sidebar::GalleryControl, weld::Widget*&>(weld::Widget*&) () at /usr/include/c++/12/bits/unique_ptr.h:1065 #6 0x00007ffff45c5f7a in (anonymous namespace)::PanelFactory::createUIElement(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x55555c0494e0, rsResourceURL=..., rArguments=...) at /home/cono/git/lo/libreoffice/svx/source/sidebar/PanelFactory.cxx:180 #7 0x00007ffff6412417 in (anonymous namespace)::UIElementFactoryManager::createUIElement(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x5555564db3e0, ResourceURL=..., Args=...) at /home/cono/git/lo/libreoffice/framework/source/uifactory/uielementfactorymanager.cxx:440 #8 0x00007ffff5593a35 in sfx2::sidebar::SidebarController::CreateUIElement(com::sun::star::uno::Reference<com::sun::star::awt::XWindow> const&, rtl::OUString const&, bool, sfx2::sidebar::Context const&) (this=0x55555b0a8100, rxWindow=..., rsImplementationURL=..., bWantsCanvas=false, rContext=...) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:1044 #9 0x00007ffff5593341 in sfx2::sidebar::SidebarController::CreatePanel(std::basic_string_view<char16_t, std::char_traits<char16_t> >, weld::Widget*, bool, sfx2::sidebar::Context const&, VclPtr<sfx2::sidebar::Deck> const&) (this=0x55555b0a8100, rsPanelId=u"GalleryPanel", pParentWindow=0x55555c040718, bIsInitiallyExpanded=true, rContext=..., pDeck=...) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:989 #10 0x00007ffff5592150 in sfx2::sidebar::SidebarController::CreatePanels(std::basic_string_view<char16_t, std::char_traits<char16_t> >, sfx2::sidebar::Context const&) (this=0x55555b0a8100, rDeckId=u"GalleryDeck", rContext=...) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:789 #11 0x00007ffff5591dbe in sfx2::sidebar::SidebarController::CreateDeck(std::basic_string_view<char16_t, std::char_traits<char16_t> >, sfx2::sidebar::Context const&, bool) (this=0x55555b0a8100, rDeckId=u"GalleryDeck", rContext=..., bForceCreate=false) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:737 #12 0x00007ffff5592b96 in sfx2::sidebar::SidebarController::SwitchToDeck(sfx2::sidebar::DeckDescriptor const&, sfx2::sidebar::Context const&) (this=0x55555b0a8100, rDeckDescriptor=..., rContext=...) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:899 #13 0x00007ffff5591b89 in sfx2::sidebar::SidebarController::SwitchToDeck(std::basic_string_view<char16_t, std::char_traits<char16_t> >) (this=0x55555b0a8100, rsDeckId=u"GalleryDeck") at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:708 #14 0x00007ffff5591936 in sfx2::sidebar::SidebarController::OpenThenToggleDeck(rtl::OUString const&) (this=0x55555b0a8100, rsDeckId=...) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:664 #15 0x00007ffff558d884 in operator()(rtl::OUString const&) const (__closure=0x7fffffffb7c0, rsDeckId=...) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:123 #16 0x00007ffff5598e13 in std::__invoke_impl<void, sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, const SfxViewFrame*)::<lambda(const rtl::OUString&)>&, const rtl::OUString&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/12/bits/invoke.h:61 #17 0x00007ffff559851c in std::__invoke_r<void, sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, const SfxViewFrame*)::<lambda(const rtl::OUString&)>&, const rtl::OUString&>(struct {...} &) (__fn=...) at /usr/include/c++/12/bits/invoke.h:111 #18 0x00007ffff5597b76 in std::_Function_handler<void(const rtl::OUString&), sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, const SfxViewFrame*)::<lambda(const rtl::OUString&)> >::_M_invoke(const std::_Any_data &, const rtl::OUString &) (__functor=..., __args#0=...) at /usr/include/c++/12/bits/std_function.h:290 #19 0x00007ffff55e2bed in std::function<void (rtl::OUString const&)>::operator()(rtl::OUString const&) const (this=0x7fffffffb7c0, __args#0=...) at /usr/include/c++/12/bits/std_function.h:591 #20 0x00007ffff55e09aa in sfx2::sidebar::TabBar::Item::HandleClick(rtl::OUString const&) (this=0x55555b133290) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/TabBar.cxx:274 #21 0x00007ffff55e0933 in sfx2::sidebar::TabBar::Item::LinkStubHandleClick(void*, rtl::OUString const&) (instance=0x55555b133290, data=...) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/TabBar.cxx:264 #22 0x00007fffe688a6b7 in Link<rtl::OUString const&, void>::Call(rtl::OUString const&) const (this=0x555556f7ee38, data=...) at /home/cono/git/lo/libreoffice/include/tools/link.hxx:111 #23 0x00007fffe68821c9 in weld::Toolbar::signal_clicked(rtl::OUString const&) (this=0x555556f7ee30, rIdent=...) at /home/cono/git/lo/libreoffice/include/vcl/weld.hxx:2512 #24 0x00007fffe683260b in (anonymous namespace)::GtkInstanceToolbar::signal_item_clicked(GtkToolButton*) (this=0x555556f7ebe0, pItem=0x55555b13a9a0) at /home/cono/git/lo/libreoffice/vcl/unx/gtk3/gtkinst.cxx:12009 #25 0x00007fffe6832553 in (anonymous namespace)::GtkInstanceToolbar::signalItemClicked(GtkToolButton*, gpointer) (pItem=0x55555b13a9a0, widget=0x555556f7ebe0) at /home/cono/git/lo/libreoffice/vcl/unx/gtk3/gtkinst.cxx:12000 ... I suspect that there is a corner case of some element giving a nullptr in xSgaObject; but since I can't repro locally, it's just a guess. Other places using AcquireObject in the file do check its return, so it seems reasonable to do the same here. Change-Id: I40c0d64a7219d483ec94f56c56a6df0ce79e9c51 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172280 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173027 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
The stack trace was: Thread 1 "soffice.bin" received signal SIGSEGV, Segmentation fault. 0x00007ffff32175ee in rtl::OUString::OUString (this=0x7fffffffaac0, str=...) at /home/cono/git/lo/libreoffice/include/rtl/ustring.hxx:197 197 pData = str.pData; #0 0x00007ffff32175ee in rtl::OUString::OUString(rtl::OUString const&) (this=0x7fffffffaac0, str=...) at /home/cono/git/lo/libreoffice/include/rtl/ustring.hxx:197 #1 0x00007ffff3521e4f in GalleryBrowser1::GetItemText(SgaObject const&, GalleryItemFlags) (rObj=..., nItemTextFlags=GalleryItemFlags::Title) at /home/cono/git/lo/libreoffice/svx/source/gallery2/galbrws1.cxx:1412 #2 0x00007ffff352265d in GalleryBrowser1::FillThemeEntries() (this=0x55555c0c9240) at /home/cono/git/lo/libreoffice/svx/source/gallery2/galbrws1.cxx:1505 #3 0x00007ffff351a602 in GalleryBrowser1::GalleryBrowser1(weld::Builder&, Gallery*) (this=0x55555c0c9240, rBuilder=..., pGallery=0x55555c0a4aa0) at /home/cono/git/lo/libreoffice/svx/source/gallery2/galbrws1.cxx:196 #4 0x00007ffff354c291 in svx::sidebar::GalleryControl::GalleryControl(weld::Widget*) (this=0x55555c04e470, pParent=0x55555be85558) at /home/cono/git/lo/libreoffice/svx/source/gallery2/GalleryControl.cxx:32 #5 0x00007ffff45c72ea in std::make_unique<svx::sidebar::GalleryControl, weld::Widget*&>(weld::Widget*&) () at /usr/include/c++/12/bits/unique_ptr.h:1065 #6 0x00007ffff45c5f7a in (anonymous namespace)::PanelFactory::createUIElement(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x55555c0494e0, rsResourceURL=..., rArguments=...) at /home/cono/git/lo/libreoffice/svx/source/sidebar/PanelFactory.cxx:180 #7 0x00007ffff6412417 in (anonymous namespace)::UIElementFactoryManager::createUIElement(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x5555564db3e0, ResourceURL=..., Args=...) at /home/cono/git/lo/libreoffice/framework/source/uifactory/uielementfactorymanager.cxx:440 #8 0x00007ffff5593a35 in sfx2::sidebar::SidebarController::CreateUIElement(com::sun::star::uno::Reference<com::sun::star::awt::XWindow> const&, rtl::OUString const&, bool, sfx2::sidebar::Context const&) (this=0x55555b0a8100, rxWindow=..., rsImplementationURL=..., bWantsCanvas=false, rContext=...) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:1044 #9 0x00007ffff5593341 in sfx2::sidebar::SidebarController::CreatePanel(std::basic_string_view<char16_t, std::char_traits<char16_t> >, weld::Widget*, bool, sfx2::sidebar::Context const&, VclPtr<sfx2::sidebar::Deck> const&) (this=0x55555b0a8100, rsPanelId=u"GalleryPanel", pParentWindow=0x55555c040718, bIsInitiallyExpanded=true, rContext=..., pDeck=...) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:989 #10 0x00007ffff5592150 in sfx2::sidebar::SidebarController::CreatePanels(std::basic_string_view<char16_t, std::char_traits<char16_t> >, sfx2::sidebar::Context const&) (this=0x55555b0a8100, rDeckId=u"GalleryDeck", rContext=...) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:789 #11 0x00007ffff5591dbe in sfx2::sidebar::SidebarController::CreateDeck(std::basic_string_view<char16_t, std::char_traits<char16_t> >, sfx2::sidebar::Context const&, bool) (this=0x55555b0a8100, rDeckId=u"GalleryDeck", rContext=..., bForceCreate=false) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:737 #12 0x00007ffff5592b96 in sfx2::sidebar::SidebarController::SwitchToDeck(sfx2::sidebar::DeckDescriptor const&, sfx2::sidebar::Context const&) (this=0x55555b0a8100, rDeckDescriptor=..., rContext=...) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:899 #13 0x00007ffff5591b89 in sfx2::sidebar::SidebarController::SwitchToDeck(std::basic_string_view<char16_t, std::char_traits<char16_t> >) (this=0x55555b0a8100, rsDeckId=u"GalleryDeck") at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:708 #14 0x00007ffff5591936 in sfx2::sidebar::SidebarController::OpenThenToggleDeck(rtl::OUString const&) (this=0x55555b0a8100, rsDeckId=...) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:664 #15 0x00007ffff558d884 in operator()(rtl::OUString const&) const (__closure=0x7fffffffb7c0, rsDeckId=...) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/SidebarController.cxx:123 #16 0x00007ffff5598e13 in std::__invoke_impl<void, sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, const SfxViewFrame*)::<lambda(const rtl::OUString&)>&, const rtl::OUString&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/12/bits/invoke.h:61 #17 0x00007ffff559851c in std::__invoke_r<void, sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, const SfxViewFrame*)::<lambda(const rtl::OUString&)>&, const rtl::OUString&>(struct {...} &) (__fn=...) at /usr/include/c++/12/bits/invoke.h:111 #18 0x00007ffff5597b76 in std::_Function_handler<void(const rtl::OUString&), sfx2::sidebar::SidebarController::SidebarController(sfx2::sidebar::SidebarDockingWindow*, const SfxViewFrame*)::<lambda(const rtl::OUString&)> >::_M_invoke(const std::_Any_data &, const rtl::OUString &) (__functor=..., __args#0=...) at /usr/include/c++/12/bits/std_function.h:290 #19 0x00007ffff55e2bed in std::function<void (rtl::OUString const&)>::operator()(rtl::OUString const&) const (this=0x7fffffffb7c0, __args#0=...) at /usr/include/c++/12/bits/std_function.h:591 #20 0x00007ffff55e09aa in sfx2::sidebar::TabBar::Item::HandleClick(rtl::OUString const&) (this=0x55555b133290) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/TabBar.cxx:274 #21 0x00007ffff55e0933 in sfx2::sidebar::TabBar::Item::LinkStubHandleClick(void*, rtl::OUString const&) (instance=0x55555b133290, data=...) at /home/cono/git/lo/libreoffice/sfx2/source/sidebar/TabBar.cxx:264 #22 0x00007fffe688a6b7 in Link<rtl::OUString const&, void>::Call(rtl::OUString const&) const (this=0x555556f7ee38, data=...) at /home/cono/git/lo/libreoffice/include/tools/link.hxx:111 #23 0x00007fffe68821c9 in weld::Toolbar::signal_clicked(rtl::OUString const&) (this=0x555556f7ee30, rIdent=...) at /home/cono/git/lo/libreoffice/include/vcl/weld.hxx:2512 #24 0x00007fffe683260b in (anonymous namespace)::GtkInstanceToolbar::signal_item_clicked(GtkToolButton*) (this=0x555556f7ebe0, pItem=0x55555b13a9a0) at /home/cono/git/lo/libreoffice/vcl/unx/gtk3/gtkinst.cxx:12009 #25 0x00007fffe6832553 in (anonymous namespace)::GtkInstanceToolbar::signalItemClicked(GtkToolButton*, gpointer) (pItem=0x55555b13a9a0, widget=0x555556f7ebe0) at /home/cono/git/lo/libreoffice/vcl/unx/gtk3/gtkinst.cxx:12000 ... I suspect that there is a corner case of some element giving a nullptr in xSgaObject; but since I can't repro locally, it's just a guess. Other places using AcquireObject in the file do check its return, so it seems reasonable to do the same here. Change-Id: I40c0d64a7219d483ec94f56c56a6df0ce79e9c51 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172280 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173027 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173031 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
At least with one ASan/UBSan setup of mine using LODE's Clang 12.0.1, ./autogen.sh would occasionally detect -std=gnu11 as the required CC "option to enable C11 features" (which would in turn cause building external/firebird to fail oddly; an issue worth investigations of its own), because Clang would occasionally crash with a SEGV on the corresponding configure test program's first invocation (without -std=gnu11) when invoked with -O2 (and happen to succeed on second invocation with -std=gnu11, so configure thinks that's needed), see below for a relevant config.log excerpt. When CC/CXX are already set (as is the case in this scenario), we could arguably skip the AC_PROG_CC/CXX checks entirely (and thus avoid configure potentially adding -std=gnu11 to CC), but at least AC_PROG_CC also internally sets the GCC shell var, which we use in configure.ac. So better be conservative and just avoid -O2 during AC_PROG_CC/CXX (whatever the autoconf motivation to include it in the first place). > configure:8165: checking for /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=local-bounds -fsanitize-blacklist=/home/sberg/lo0/core/sanitize-ubsan-excludelist option to enable C11 features > configure:8180: /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=local-bounds -fsanitize-blacklist=/home/sberg/lo0/core/sanitize-ubsan-excludelist -c -g -O2 conftest.c >&5 > PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script. > Stack dump: > 0. Program arguments: /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=local-bounds -fsanitize-blacklist=/home/sberg/lo0/core/sanitize-ubsan-excludelist -c -g -O2 conftest.c > 1. <eof> parser at end of file > 2. Code generation > #0 0x000055f3a890caf2 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1c3eaf2) > #1 0x000055f3a890a734 llvm::sys::RunSignalHandlers() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1c3c734) > #2 0x000055f3a887b998 CrashRecoverySignalHandler(int) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1bad998) > #3 0x00007f750d24e520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520) > #4 0x000055f3a93f9cd4 llvm::DIE::getUnitDie() const (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x272bcd4) > #5 0x000055f3a9404574 llvm::DwarfDebug::finishEntityDefinitions() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2736574) > #6 0x000055f3a941df99 llvm::DwarfDebug::finalizeModuleInfo() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x274ff99) > #7 0x000055f3a9421128 llvm::DwarfDebug::endModule() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2753128) > #8 0x000055f3a93f1219 llvm::AsmPrinter::doFinalization(llvm::Module&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2723219) > #9 0x000055f3a82478f5 llvm::FPPassManager::doFinalization(llvm::Module&) (.localalias) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x15798f5) > #10 0x000055f3a8253900 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1585900) > #11 0x000055f3a8bb57d3 (anonymous namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (.constprop.0) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1ee77d3) > #12 0x000055f3a8bb76ea clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1ee96ea) > #13 0x000055f3a9825876 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2b57876) > #14 0x000055f3aa35c549 clang::ParseAST(clang::Sema&, bool, bool) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x368e549) > #15 0x000055f3a91ef2d9 clang::FrontendAction::Execute() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x25212d9) > #16 0x000055f3a91903a3 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x24c23a3) > #17 0x000055f3a92a2fd8 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x25d4fd8) > #18 0x000055f3a7798815 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0xaca815) > #19 0x000055f3a77961a7 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0xac81a7) > #20 0x000055f3a9039689 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const::'lambda'()>(long) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x236b689) > #21 0x000055f3a887baa7 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1badaa7) > #22 0x000055f3a903a802 clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const (.part.0) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x236c802) > #23 0x000055f3a900fbec clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2341bec) > #24 0x000055f3a9010679 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2342679) > #25 0x000055f3a901e8f1 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x23508f1) > #26 0x000055f3a7717e6f main (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0xa49e6f) > #27 0x00007f750d235d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90) > #28 0x00007f750d235e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40) > #29 0x000055f3a7795b55 _start (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0xac7b55) > clang-12: error: clang frontend command failed with exit code 139 (use -v to see invocation) > clang version 12.0.1 (https://github.com/llvm/llvm-project.git fed41342a82f5a3a9201819a82bf7a48313e296b) > Target: x86_64-unknown-linux-gnu > Thread model: posix > InstalledDir: /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin > clang-12: note: diagnostic msg: > ******************** > > PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT: > Preprocessed source(s) and associated run script(s) are located at: > clang-12: note: diagnostic msg: /tmp/conftest-968380.c > clang-12: note: diagnostic msg: /tmp/conftest-968380.sh > clang-12: note: diagnostic msg: > > ******************** > configure:8180: $? = 139 > configure: failed program was: > | /* confdefs.h */ > | #define PACKAGE_NAME "LibreOffice" > | #define PACKAGE_TARNAME "libreoffice" > | #define PACKAGE_VERSION "24.8.0.0.alpha0+" > | #define PACKAGE_STRING "LibreOffice 24.8.0.0.alpha0+" > | #define PACKAGE_BUGREPORT "" > | #define PACKAGE_URL "http://documentfoundation.org/" > | #define LIBO_VERSION_MAJOR 24 > | #define LIBO_VERSION_MINOR 8 > | #define LIBO_VERSION_MICRO 0 > | #define LIBO_VERSION_PATCH 0 > | #define LIBO_THIS_YEAR 2024 > | #define SRCDIR "/home/sberg/lo0/core" > | #define SRC_ROOT "/home/sberg/lo0/core" > | #define BUILDDIR "/home/sberg/lo0/core" > | #define USE_HEADLESS_CODE 1 > | #define ENABLE_HEADLESS 1 > | /* end confdefs.h. */ > | > | /* Does the compiler advertise C89 conformance? > | Do not test the value of __STDC__, because some compilers set it to 0 > | while being otherwise adequately conformant. */ > | #if !defined __STDC__ > | # error "Compiler does not advertise C89 conformance" > | #endif > | > | #include <stddef.h> > | #include <stdarg.h> > | struct stat; > | /* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ > | struct buf { int x; }; > | struct buf * (*rcsopen) (struct buf *, struct stat *, int); > | static char *e (p, i) > | char **p; > | int i; > | { > | return p[i]; > | } > | static char *f (char * (*g) (char **, int), char **p, ...) > | { > | char *s; > | va_list v; > | va_start (v,p); > | s = g (p, va_arg (v,int)); > | va_end (v); > | return s; > | } > | > | /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has > | function prototypes and stuff, but not \xHH hex character constants. > | These do not provoke an error unfortunately, instead are silently treated > | as an "x". The following induces an error, until -std is added to get > | proper ANSI mode. Curiously \x00 != x always comes out true, for an > | array size at least. It is necessary to write \x00 == 0 to get something > | that is true only with -std. */ > | int osf4_cc_array ['\x00' == 0 ? 1 : -1]; > | > | /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters > | inside strings and character constants. */ > | #define FOO(x) 'x' > | int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; > | > | int test (int i, double x); > | struct s1 {int (*f) (int a);}; > | struct s2 {int (*f) (double a);}; > | int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), > | int, int); > | > | // Does the compiler advertise C99 conformance? > | #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L > | # error "Compiler does not advertise C99 conformance" > | #endif > | > | #include <stdbool.h> > | extern int puts (const char *); > | extern int printf (const char *, ...); > | extern int dprintf (int, const char *, ...); > | extern void *malloc (size_t); > | > | // Check varargs macros. These examples are taken from C99 6.10.3.5. > | // dprintf is used instead of fprintf to avoid needing to declare > | // FILE and stderr. > | #define debug(...) dprintf (2, __VA_ARGS__) > | #define showlist(...) puts (#__VA_ARGS__) > | #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) > | static void > | test_varargs_macros (void) > | { > | int x = 1234; > | int y = 5678; > | debug ("Flag"); > | debug ("X = %d\n", x); > | showlist (The first, second, and third items.); > | report (x>y, "x is %d but y is %d", x, y); > | } > | > | // Check long long types. > | #define BIG64 18446744073709551615ull > | #define BIG32 4294967295ul > | #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) > | #if !BIG_OK > | #error "your preprocessor is broken" > | #endif > | #if BIG_OK > | #else > | #error "your preprocessor is broken" > | #endif > | static long long int bignum = -9223372036854775807LL; > | static unsigned long long int ubignum = BIG64; > | > | struct incomplete_array > | { > | int datasize; > | double data[]; > | }; > | > | struct named_init { > | int number; > | const wchar_t *name; > | double average; > | }; > | > | typedef const char *ccp; > | > | static inline int > | test_restrict (ccp restrict text) > | { > | // See if C++-style comments work. > | // Iterate through items via the restricted pointer. > | // Also check for declarations in for loops. > | for (unsigned int i = 0; *(text+i) != '\0'; ++i) > | continue; > | return 0; > | } > | > | // Check varargs and va_copy. > | static bool > | test_varargs (const char *format, ...) > | { > | va_list args; > | va_start (args, format); > | va_list args_copy; > | va_copy (args_copy, args); > | > | const char *str = ""; > | int number = 0; > | float fnumber = 0; > | > | while (*format) > | { > | switch (*format++) > | { > | case 's': // string > | str = va_arg (args_copy, const char *); > | break; > | case 'd': // int > | number = va_arg (args_copy, int); > | break; > | case 'f': // float > | fnumber = va_arg (args_copy, double); > | break; > | default: > | break; > | } > | } > | va_end (args_copy); > | va_end (args); > | > | return *str && number && fnumber; > | } > | > | > | // Does the compiler advertise C11 conformance? > | #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L > | # error "Compiler does not advertise C11 conformance" > | #endif > | > | // Check _Alignas. > | char _Alignas (double) aligned_as_double; > | char _Alignas (0) no_special_alignment; > | extern char aligned_as_int; > | char _Alignas (0) _Alignas (int) aligned_as_int; > | > | // Check _Alignof. > | enum > | { > | int_alignment = _Alignof (int), > | int_array_alignment = _Alignof (int[100]), > | char_alignment = _Alignof (char) > | }; > | _Static_assert (0 < -_Alignof (int), "_Alignof is signed"); > | > | // Check _Noreturn. > | int _Noreturn does_not_return (void) { for (;;) continue; } > | > | // Check _Static_assert. > | struct test_static_assert > | { > | int x; > | _Static_assert (sizeof (int) <= sizeof (long int), > | "_Static_assert does not work in struct"); > | long int y; > | }; > | > | // Check UTF-8 literals. > | #define u8 syntax error! > | char const utf8_literal[] = u8"happens to be ASCII" "another string"; > | > | // Check duplicate typedefs. > | typedef long *long_ptr; > | typedef long int *long_ptr; > | typedef long_ptr long_ptr; > | > | // Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. > | struct anonymous > | { > | union { > | struct { int i; int j; }; > | struct { int k; long int l; } w; > | }; > | int m; > | } v1; > | > | > | int > | main (int argc, char **argv) > | { > | int ok = 0; > | > | ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); > | > | > | // Check bool. > | _Bool success = false; > | success |= (argc != 0); > | > | // Check restrict. > | if (test_restrict ("String literal") == 0) > | success = true; > | char *restrict newvar = "Another string"; > | > | // Check varargs. > | success &= test_varargs ("s, d' f .", "string", 65, 34.234); > | test_varargs_macros (); > | > | // Check flexible array members. > | struct incomplete_array *ia = > | malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); > | ia->datasize = 10; > | for (int i = 0; i < ia->datasize; ++i) > | ia->data[i] = i * 1.234; > | > | // Check named initializers. > | struct named_init ni = { > | .number = 34, > | .name = L"Test wide string", > | .average = 543.34343, > | }; > | > | ni.number = 58; > | > | int dynamic_array[ni.number]; > | dynamic_array[0] = argv[0][0]; > | dynamic_array[ni.number - 1] = 543; > | > | // work around unused variable warnings > | ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' > | || dynamic_array[ni.number - 1] != 543); > | > | > | _Static_assert ((offsetof (struct anonymous, i) > | == offsetof (struct anonymous, w.k)), > | "Anonymous union alignment botch"); > | v1.i = 2; > | v1.w.k = 5; > | ok |= v1.i != 5; > | > | return ok; > | } > | > configure:8180: /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=local-bounds -fsanitize-blacklist=/home/sberg/lo0/core/sanitize-ubsan-excludelist -std=gnu11 -c -g -O2 conftest.c >&5 > configure:8180: $? = 0 > configure:8201: result: -std=gnu11 Change-Id: I9122d0d853d0010155d57cb1d1d56f7c453d5208 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165904 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> (cherry picked from commit 42f6e89) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173098 Tested-by: allotropia jenkins <jenkins@allotropia.de>
At least with one ASan/UBSan setup of mine using LODE's Clang 12.0.1, ./autogen.sh would occasionally detect -std=gnu11 as the required CC "option to enable C11 features" (which would in turn cause building external/firebird to fail oddly; an issue worth investigations of its own), because Clang would occasionally crash with a SEGV on the corresponding configure test program's first invocation (without -std=gnu11) when invoked with -O2 (and happen to succeed on second invocation with -std=gnu11, so configure thinks that's needed), see below for a relevant config.log excerpt. When CC/CXX are already set (as is the case in this scenario), we could arguably skip the AC_PROG_CC/CXX checks entirely (and thus avoid configure potentially adding -std=gnu11 to CC), but at least AC_PROG_CC also internally sets the GCC shell var, which we use in configure.ac. So better be conservative and just avoid -O2 during AC_PROG_CC/CXX (whatever the autoconf motivation to include it in the first place). > configure:8165: checking for /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=local-bounds -fsanitize-blacklist=/home/sberg/lo0/core/sanitize-ubsan-excludelist option to enable C11 features > configure:8180: /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=local-bounds -fsanitize-blacklist=/home/sberg/lo0/core/sanitize-ubsan-excludelist -c -g -O2 conftest.c >&5 > PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script. > Stack dump: > 0. Program arguments: /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=local-bounds -fsanitize-blacklist=/home/sberg/lo0/core/sanitize-ubsan-excludelist -c -g -O2 conftest.c > 1. <eof> parser at end of file > 2. Code generation > #0 0x000055f3a890caf2 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1c3eaf2) > #1 0x000055f3a890a734 llvm::sys::RunSignalHandlers() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1c3c734) > #2 0x000055f3a887b998 CrashRecoverySignalHandler(int) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1bad998) > #3 0x00007f750d24e520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520) > #4 0x000055f3a93f9cd4 llvm::DIE::getUnitDie() const (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x272bcd4) > #5 0x000055f3a9404574 llvm::DwarfDebug::finishEntityDefinitions() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2736574) > #6 0x000055f3a941df99 llvm::DwarfDebug::finalizeModuleInfo() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x274ff99) > #7 0x000055f3a9421128 llvm::DwarfDebug::endModule() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2753128) > #8 0x000055f3a93f1219 llvm::AsmPrinter::doFinalization(llvm::Module&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2723219) > #9 0x000055f3a82478f5 llvm::FPPassManager::doFinalization(llvm::Module&) (.localalias) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x15798f5) > #10 0x000055f3a8253900 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1585900) > #11 0x000055f3a8bb57d3 (anonymous namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (.constprop.0) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1ee77d3) > #12 0x000055f3a8bb76ea clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1ee96ea) > #13 0x000055f3a9825876 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2b57876) > #14 0x000055f3aa35c549 clang::ParseAST(clang::Sema&, bool, bool) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x368e549) > #15 0x000055f3a91ef2d9 clang::FrontendAction::Execute() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x25212d9) > #16 0x000055f3a91903a3 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x24c23a3) > #17 0x000055f3a92a2fd8 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x25d4fd8) > #18 0x000055f3a7798815 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0xaca815) > #19 0x000055f3a77961a7 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0xac81a7) > #20 0x000055f3a9039689 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const::'lambda'()>(long) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x236b689) > #21 0x000055f3a887baa7 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1badaa7) > #22 0x000055f3a903a802 clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const (.part.0) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x236c802) > #23 0x000055f3a900fbec clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2341bec) > #24 0x000055f3a9010679 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2342679) > #25 0x000055f3a901e8f1 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x23508f1) > #26 0x000055f3a7717e6f main (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0xa49e6f) > #27 0x00007f750d235d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90) > #28 0x00007f750d235e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40) > #29 0x000055f3a7795b55 _start (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0xac7b55) > clang-12: error: clang frontend command failed with exit code 139 (use -v to see invocation) > clang version 12.0.1 (https://github.com/llvm/llvm-project.git fed41342a82f5a3a9201819a82bf7a48313e296b) > Target: x86_64-unknown-linux-gnu > Thread model: posix > InstalledDir: /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin > clang-12: note: diagnostic msg: > ******************** > > PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT: > Preprocessed source(s) and associated run script(s) are located at: > clang-12: note: diagnostic msg: /tmp/conftest-968380.c > clang-12: note: diagnostic msg: /tmp/conftest-968380.sh > clang-12: note: diagnostic msg: > > ******************** > configure:8180: $? = 139 > configure: failed program was: > | /* confdefs.h */ > | #define PACKAGE_NAME "LibreOffice" > | #define PACKAGE_TARNAME "libreoffice" > | #define PACKAGE_VERSION "24.8.0.0.alpha0+" > | #define PACKAGE_STRING "LibreOffice 24.8.0.0.alpha0+" > | #define PACKAGE_BUGREPORT "" > | #define PACKAGE_URL "http://documentfoundation.org/" > | #define LIBO_VERSION_MAJOR 24 > | #define LIBO_VERSION_MINOR 8 > | #define LIBO_VERSION_MICRO 0 > | #define LIBO_VERSION_PATCH 0 > | #define LIBO_THIS_YEAR 2024 > | #define SRCDIR "/home/sberg/lo0/core" > | #define SRC_ROOT "/home/sberg/lo0/core" > | #define BUILDDIR "/home/sberg/lo0/core" > | #define USE_HEADLESS_CODE 1 > | #define ENABLE_HEADLESS 1 > | /* end confdefs.h. */ > | > | /* Does the compiler advertise C89 conformance? > | Do not test the value of __STDC__, because some compilers set it to 0 > | while being otherwise adequately conformant. */ > | #if !defined __STDC__ > | # error "Compiler does not advertise C89 conformance" > | #endif > | > | #include <stddef.h> > | #include <stdarg.h> > | struct stat; > | /* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ > | struct buf { int x; }; > | struct buf * (*rcsopen) (struct buf *, struct stat *, int); > | static char *e (p, i) > | char **p; > | int i; > | { > | return p[i]; > | } > | static char *f (char * (*g) (char **, int), char **p, ...) > | { > | char *s; > | va_list v; > | va_start (v,p); > | s = g (p, va_arg (v,int)); > | va_end (v); > | return s; > | } > | > | /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has > | function prototypes and stuff, but not \xHH hex character constants. > | These do not provoke an error unfortunately, instead are silently treated > | as an "x". The following induces an error, until -std is added to get > | proper ANSI mode. Curiously \x00 != x always comes out true, for an > | array size at least. It is necessary to write \x00 == 0 to get something > | that is true only with -std. */ > | int osf4_cc_array ['\x00' == 0 ? 1 : -1]; > | > | /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters > | inside strings and character constants. */ > | #define FOO(x) 'x' > | int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; > | > | int test (int i, double x); > | struct s1 {int (*f) (int a);}; > | struct s2 {int (*f) (double a);}; > | int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), > | int, int); > | > | // Does the compiler advertise C99 conformance? > | #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L > | # error "Compiler does not advertise C99 conformance" > | #endif > | > | #include <stdbool.h> > | extern int puts (const char *); > | extern int printf (const char *, ...); > | extern int dprintf (int, const char *, ...); > | extern void *malloc (size_t); > | > | // Check varargs macros. These examples are taken from C99 6.10.3.5. > | // dprintf is used instead of fprintf to avoid needing to declare > | // FILE and stderr. > | #define debug(...) dprintf (2, __VA_ARGS__) > | #define showlist(...) puts (#__VA_ARGS__) > | #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) > | static void > | test_varargs_macros (void) > | { > | int x = 1234; > | int y = 5678; > | debug ("Flag"); > | debug ("X = %d\n", x); > | showlist (The first, second, and third items.); > | report (x>y, "x is %d but y is %d", x, y); > | } > | > | // Check long long types. > | #define BIG64 18446744073709551615ull > | #define BIG32 4294967295ul > | #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) > | #if !BIG_OK > | #error "your preprocessor is broken" > | #endif > | #if BIG_OK > | #else > | #error "your preprocessor is broken" > | #endif > | static long long int bignum = -9223372036854775807LL; > | static unsigned long long int ubignum = BIG64; > | > | struct incomplete_array > | { > | int datasize; > | double data[]; > | }; > | > | struct named_init { > | int number; > | const wchar_t *name; > | double average; > | }; > | > | typedef const char *ccp; > | > | static inline int > | test_restrict (ccp restrict text) > | { > | // See if C++-style comments work. > | // Iterate through items via the restricted pointer. > | // Also check for declarations in for loops. > | for (unsigned int i = 0; *(text+i) != '\0'; ++i) > | continue; > | return 0; > | } > | > | // Check varargs and va_copy. > | static bool > | test_varargs (const char *format, ...) > | { > | va_list args; > | va_start (args, format); > | va_list args_copy; > | va_copy (args_copy, args); > | > | const char *str = ""; > | int number = 0; > | float fnumber = 0; > | > | while (*format) > | { > | switch (*format++) > | { > | case 's': // string > | str = va_arg (args_copy, const char *); > | break; > | case 'd': // int > | number = va_arg (args_copy, int); > | break; > | case 'f': // float > | fnumber = va_arg (args_copy, double); > | break; > | default: > | break; > | } > | } > | va_end (args_copy); > | va_end (args); > | > | return *str && number && fnumber; > | } > | > | > | // Does the compiler advertise C11 conformance? > | #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L > | # error "Compiler does not advertise C11 conformance" > | #endif > | > | // Check _Alignas. > | char _Alignas (double) aligned_as_double; > | char _Alignas (0) no_special_alignment; > | extern char aligned_as_int; > | char _Alignas (0) _Alignas (int) aligned_as_int; > | > | // Check _Alignof. > | enum > | { > | int_alignment = _Alignof (int), > | int_array_alignment = _Alignof (int[100]), > | char_alignment = _Alignof (char) > | }; > | _Static_assert (0 < -_Alignof (int), "_Alignof is signed"); > | > | // Check _Noreturn. > | int _Noreturn does_not_return (void) { for (;;) continue; } > | > | // Check _Static_assert. > | struct test_static_assert > | { > | int x; > | _Static_assert (sizeof (int) <= sizeof (long int), > | "_Static_assert does not work in struct"); > | long int y; > | }; > | > | // Check UTF-8 literals. > | #define u8 syntax error! > | char const utf8_literal[] = u8"happens to be ASCII" "another string"; > | > | // Check duplicate typedefs. > | typedef long *long_ptr; > | typedef long int *long_ptr; > | typedef long_ptr long_ptr; > | > | // Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. > | struct anonymous > | { > | union { > | struct { int i; int j; }; > | struct { int k; long int l; } w; > | }; > | int m; > | } v1; > | > | > | int > | main (int argc, char **argv) > | { > | int ok = 0; > | > | ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); > | > | > | // Check bool. > | _Bool success = false; > | success |= (argc != 0); > | > | // Check restrict. > | if (test_restrict ("String literal") == 0) > | success = true; > | char *restrict newvar = "Another string"; > | > | // Check varargs. > | success &= test_varargs ("s, d' f .", "string", 65, 34.234); > | test_varargs_macros (); > | > | // Check flexible array members. > | struct incomplete_array *ia = > | malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); > | ia->datasize = 10; > | for (int i = 0; i < ia->datasize; ++i) > | ia->data[i] = i * 1.234; > | > | // Check named initializers. > | struct named_init ni = { > | .number = 34, > | .name = L"Test wide string", > | .average = 543.34343, > | }; > | > | ni.number = 58; > | > | int dynamic_array[ni.number]; > | dynamic_array[0] = argv[0][0]; > | dynamic_array[ni.number - 1] = 543; > | > | // work around unused variable warnings > | ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' > | || dynamic_array[ni.number - 1] != 543); > | > | > | _Static_assert ((offsetof (struct anonymous, i) > | == offsetof (struct anonymous, w.k)), > | "Anonymous union alignment botch"); > | v1.i = 2; > | v1.w.k = 5; > | ok |= v1.i != 5; > | > | return ok; > | } > | > configure:8180: /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=local-bounds -fsanitize-blacklist=/home/sberg/lo0/core/sanitize-ubsan-excludelist -std=gnu11 -c -g -O2 conftest.c >&5 > configure:8180: $? = 0 > configure:8201: result: -std=gnu11 Change-Id: I9122d0d853d0010155d57cb1d1d56f7c453d5208 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165904 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> (cherry picked from commit 42f6e89) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173098 Tested-by: allotropia jenkins <jenkins@allotropia.de>
...in code newly introduced in 135ce25 "tdf#146487 Don't show generic diagram title when there is an empty title given", which caused CppunitTest_chart2_export2 to fail with > /oox/inc/drawingml/chart/plotareaconverter.hxx:78:62: runtime error: load of value 222, which is not a valid value for type 'bool' > #0 0x7f95cd9ed87c in oox::drawingml::chart::PlotAreaConverter::isSingleSeriesTitle() const /oox/inc/drawingml/chart/plotareaconverter.hxx:78:62 > #1 0x7f95cd9e506f in oox::drawingml::chart::ChartSpaceConverter::convertFromModel(com::sun::star::uno::Reference<com::sun::star::drawing::XShapes> const&, com::sun::star::awt::Point const&) /oox/source/drawingml/chart/chartspaceconverter.cxx:189:53 > #2 0x7f95cd9b6c34 in oox::drawingml::chart::ChartConverter::convertFromModel(oox::core::XmlFilterBase&, oox::drawingml::chart::ChartSpaceModel&, com::sun::star::uno::Reference<com::sun::star::chart2::XChartDocument> const&, com::sun::star::uno::Reference<com::sun::star::drawing::XShapes> const&, com::sun::star::awt::Point const&, com::sun::star::awt::Size const&) /oox/source/drawingml/chart/chartconverter.cxx:93:20 > #3 0x7f95ce548f59 in oox::drawingml::Shape::finalizeXShape(oox::core::XmlFilterBase&, com::sun::star::uno::Reference<com::sun::star::drawing::XShapes> const&) /oox/source/drawingml/shape.cxx:2245:50 > #4 0x7f95438150b2 in oox::xls::Shape::finalizeXShape(oox::core::XmlFilterBase&, com::sun::star::uno::Reference<com::sun::star::drawing::XShapes> const&) /sc/source/filter/oox/drawingfragment.cxx:113:30 > #5 0x7f95ce5267bb in oox::drawingml::Shape::createAndInsert(oox::core::XmlFilterBase&, rtl::OUString const&, oox::drawingml::Theme const*, com::sun::star::uno::Reference<com::sun::star::drawing::XShapes> const&, bool, bool, basegfx::B2DHomMatrix&, oox::drawingml::FillProperties const&, std::shared_ptr<oox::drawingml::Shape>) /oox/source/drawingml/shape.cxx:1964:9 > #6 0x7f95ce4edb54 in oox::drawingml::Shape::addShape(oox::core::XmlFilterBase&, oox::drawingml::Theme const*, com::sun::star::uno::Reference<com::sun::star::drawing::XShapes> const&, basegfx::B2DHomMatrix const&, oox::drawingml::FillProperties const&, std::__debug::map<rtl::OUString, std::shared_ptr<oox::drawingml::Shape>, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, std::shared_ptr<oox::drawingml::Shape> > > >*, std::shared_ptr<oox::drawingml::Shape>) /oox/source/drawingml/shape.cxx:366:41 > #7 0x7f954381ef79 in oox::xls::DrawingFragment::onEndElement() /sc/source/filter/oox/drawingfragment.cxx:335:30 > #8 0x7f95cdcaee54 in oox::core::ContextHandler2Helper::implEndElement(int) /oox/source/core/contexthandler2.cxx:125:9 > #9 0x7f95cdd5c116 in oox::core::FragmentHandler2::endFastElement(int) /oox/source/core/fragmenthandler2.cxx:91:5 > #10 0x7f95caf68fca in (anonymous namespace)::Entity::endElement() /sax/source/fastparser/fastparser.cxx:514:27 > #11 0x7f95caf68998 in sax_fastparser::FastSaxParserImpl::callbackEndElement() /sax/source/fastparser/fastparser.cxx:1331:17 > #12 0x7f95caf58444 in (anonymous namespace)::call_callbackEndElement(void*, unsigned char const*, unsigned char const*, unsigned char const*) /sax/source/fastparser/fastparser.cxx:338:18 > #13 0x7f960adebeda in xmlParseEndTag2 /workdir/UnpackedTarball/libxml2/parser.c:10090:2 > #14 0x7f960ad929b5 in xmlParseTryOrFinish /workdir/UnpackedTarball/libxml2/parser.c:11868:14 > #15 0x7f960ad86334 in xmlParseChunk /workdir/UnpackedTarball/libxml2/parser.c:12151:5 > #16 0x7f95caf53231 in sax_fastparser::FastSaxParserImpl::parse() /sax/source/fastparser/fastparser.cxx:1085:21 > #17 0x7f95caf4cd18 in sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) /sax/source/fastparser/fastparser.cxx:890:9 > #18 0x7f95caf6e950 in sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) /sax/source/fastparser/fastparser.cxx:1470:13 > #19 0x7f95cdce50d1 in oox::core::FastParser::parseStream(com::sun::star::xml::sax::InputSource const&, bool) /oox/source/core/fastparser.cxx:121:15 > #20 0x7f95cdce5868 in oox::core::FastParser::parseStream(com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, rtl::OUString const&) /oox/source/core/fastparser.cxx:129:5 > #21 0x7f95cddbb234 in oox::core::XmlFilterBase::importFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) /oox/source/core/xmlfilterbase.cxx:414:21 > #22 0x7f95cddb9b8d in oox::core::XmlFilterBase::importFragment(rtl::Reference<oox::core::FragmentHandler> const&) /oox/source/core/xmlfilterbase.cxx:344:12 > #23 0x7f95441ceaa8 in oox::xls::WorkbookHelper::importOoxFragment(rtl::Reference<oox::core::FragmentHandler> const&) /sc/source/filter/oox/workbookhelper.cxx:1046:27 > #24 0x7f95442797f1 in oox::xls::WorksheetGlobals::finalizeDrawings() /sc/source/filter/oox/worksheethelper.cxx:1373:9 > #25 0x7f95442789e0 in oox::xls::WorksheetGlobals::finalizeDrawingImport() /sc/source/filter/oox/worksheethelper.cxx:996:5 > #26 0x7f954428744d in oox::xls::WorksheetHelper::finalizeDrawingImport() /sc/source/filter/oox/worksheethelper.cxx:1637:17 > #27 0x7f95441771de in oox::xls::WorkbookFragment::finalizeImport() /sc/source/filter/oox/workbookfragment.cxx:511:18 > #28 0x7f95cdd5b3ae in oox::core::FragmentHandler2::endDocument() /oox/source/core/fragmenthandler2.cxx:53:5 > #29 0x7f95caf4cfc2 in sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) /sax/source/fastparser/fastparser.cxx:896:36 > #30 0x7f95caf6e950 in sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) /sax/source/fastparser/fastparser.cxx:1470:13 > #31 0x7f95cdce50d1 in oox::core::FastParser::parseStream(com::sun::star::xml::sax::InputSource const&, bool) /oox/source/core/fastparser.cxx:121:15 > #32 0x7f95cdce5868 in oox::core::FastParser::parseStream(com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, rtl::OUString const&) /oox/source/core/fastparser.cxx:129:5 > #33 0x7f95cddbb234 in oox::core::XmlFilterBase::importFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) /oox/source/core/xmlfilterbase.cxx:414:21 > #34 0x7f95cddb9b8d in oox::core::XmlFilterBase::importFragment(rtl::Reference<oox::core::FragmentHandler> const&) /oox/source/core/xmlfilterbase.cxx:344:12 > #35 0x7f95435c4daa in oox::xls::ExcelFilter::importDocument() /sc/source/filter/oox/excelfilter.cxx:113:25 > #36 0x7f95cdcf953b in oox::core::FilterBase::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /oox/source/core/filterbase.cxx:488:49 > #37 0x7f95435c7733 in oox::xls::ExcelFilter::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /sc/source/filter/oox/excelfilter.cxx:176:25 > #38 0x7f95857c5b40 in SfxObjectShell::ImportFrom(SfxMedium&, com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&) /sfx2/source/doc/objstor.cxx:2393:34 > #39 0x7f9585781c6a in SfxObjectShell::DoLoad(SfxMedium*) /sfx2/source/doc/objstor.cxx:761:23 > #40 0x7f95859a9652 in SfxBaseModel::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /sfx2/source/doc/sfxbasemodel.cxx:1980:36 > #41 0x7f95862145e9 in (anonymous namespace)::SfxFrameLoader_Impl::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) /sfx2/source/view/frmload.cxx:720:28 > #42 0x7f95536a9900 in framework::LoadEnv::impl_loadContent() /framework/source/loadenv/loadenv.cxx:1176:37 > #43 0x7f95536a091b in framework::LoadEnv::start() /framework/source/loadenv/loadenv.cxx:412:20 > #44 0x7f9553698f59 in framework::LoadEnv::startLoading(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, rtl::OUString const&, int, LoadEnvFeatures) /framework/source/loadenv/loadenv.cxx:308:5 > #45 0x7f95536946e7 in framework::LoadEnv::loadComponentFromURL(com::sun::star::uno::Reference<com::sun::star::frame::XComponentLoader> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /framework/source/loadenv/loadenv.cxx:168:14 > #46 0x7f955376867d in framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /framework/source/services/desktop.cxx:591:16 > #47 0x7f95537688a6 in non-virtual thunk to framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /framework/source/services/desktop.cxx > #48 0x7f9569f7cafa in unotest::MacrosTest::loadFromDesktop(rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /unotest/source/cpp/macros_test.cxx:71:62 > #49 0x7f9580718c56 in UnoApiTest::loadWithParams(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /test/source/unoapi_test.cxx:126:19 > #50 0x7f9580717ef8 in UnoApiTest::load(rtl::OUString const&, char const*) /test/source/unoapi_test.cxx:108:5 > #51 0x7f9580719254 in UnoApiTest::loadFromFile(std::basic_string_view<char16_t, std::char_traits<char16_t> >, char const*) /test/source/unoapi_test.cxx:132:5 > #52 0x7f95d8bf1018 in testTdf123647::TestBody() /chart2/qa/extras/chart2export2.cxx:1242:5 (<https://ci.libreoffice.org//job/lo_ubsan/3048/>) Change-Id: I870d811e78b8c55b84627ae609f98f623465dd9d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162294 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> (cherry picked from commit 3fb9859)
we want this to get through because of a scenario like #0 ignoreLibreOfficeKitViewCallback (nType=13, pImpl=0xf9bd620) at /home/caolan/LibreOffice/co-24.04/sfx2/source/view/viewsh.cxx:3219 #1 0x00007fd4a2428979 in SfxViewShell::libreOfficeKitViewCallback (this=0xf9bd090, nType=13, pPayload=...) at /home/caolan/LibreOffice/co-24.04/sfx2/source/view/viewsh.cxx:3278 #2 0x00007fd4a23ab80b in SfxLokHelper::notifyDocumentSizeChanged (pThisView=0xf9bd090, rPayload=..., pDoc=0xec53578, bInvalidateAll=true) at /home/caolan/LibreOffice/co-24.04/sfx2/source/view/lokhelper.cxx:711 #3 0x00007fd484eba265 in SwViewShell::SizeChgNotify (this=0xf9bf3c0) at /home/caolan/LibreOffice/co-24.04/sw/source/core/view/viewsh.cxx:1154 #4 0x00007fd484775a62 in AdjustSizeChgNotify (pRoot=0xed16880) at /home/caolan/LibreOffice/co-24.04/sw/source/core/layout/pagechg.cxx:842 #5 0x00007fd48477e029 in SwRootFrame::CheckViewLayout (this=0xed16880, pViewOpt=0x0, pVisArea=0x0) at /home/caolan/LibreOffice/co-24.04/sw/source/core/layout/pagechg.cxx:2436 #6 0x00007fd484775da2 in SwPageFrame::Cut (this=0x120350f0) at /home/caolan/LibreOffice/co-24.04/sw/source/core/layout/pagechg.cxx:914 #7 0x00007fd484779ec8 in SwRootFrame::RemovePage (this=0xed16880, pDelRef=0x7ffe90279548, eResult=SwRemoveResult::Prev) at /home/caolan/LibreOffice/co-24.04/sw/source/core/layout/pagechg.cxx:1511 #8 0x00007fd48477a187 in SwRootFrame::RemoveSuperfluous (this=0xed16880) at /home/caolan/LibreOffice/co-24.04/sw/source/core/layout/pagechg.cxx:1550 #9 0x00007fd4847336b2 in SwLayAction::InternalAction (this=0x7ffe90279a60, pRenderContext=0xf9bb5f0) at /home/caolan/LibreOffice/co-24.04/sw/source/core/layout/layact.cxx:694 #10 0x00007fd4847323b8 in SwLayAction::Action (this=0x7ffe90279a60, pRenderContext=0xf9bb5f0) at /home/caolan/LibreOffice/co-24.04/sw/source/core/layout/layact.cxx:396 #11 0x00007fd484eb5fc2 in SwViewShell::ImplEndAction (this=0xf9bf3c0, bIdleEnd=false) at /home/caolan/LibreOffice/co-24.04/sw/source/core/view/viewsh.cxx:309 #12 0x00007fd483fa3f78 in SwViewShell::EndAction (this=0xf9bf3c0, bIdleEnd=false) at /home/caolan/LibreOffice/co-24.04/sw/inc/viewsh.hxx:637 #13 0x00007fd484ebf56b in SwViewShell::ApplyViewOptions (this=0xeddec90, rOpt=...) at /home/caolan/LibreOffice/co-24.04/sw/source/core/view/viewsh.cxx:2235 #14 0x00007fd484577013 in SwEditShell::ApplyViewOptions (this=0xeddec90, rOpt=...) at /home/caolan/LibreOffice/co-24.04/sw/source/core/edit/editsh.cxx:1094 #15 0x00007fd48574a5cf in SwWrtShell::ApplyViewOptions (this=0xeddec90, rOpt=...) at /home/caolan/LibreOffice/co-24.04/sw/source/uibase/wrtsh/wrtsh1.cxx:2137 #16 0x00007fd484ebe79e in SwViewShell::PaintTile (this=0xeddec90, rDevice=..., contextWidth=1792, contextHeight=768, tilePosX=0, tilePosY=113280, tileWidth=13440, tileHeight=5760) at /home/caolan/LibreOffice/co-24.04/sw/source/core/view/viewsh.cxx:2019 #17 0x00007fd4855fc5f0 in SwXTextDocument::paintTile (this=0xec53280, rDevice=..., nOutputWidth=1792, nOutputHeight=768, nTilePosX=0, nTilePosY=113280, nTileWidth=13440, nTileHeight=5760) at /home/caolan/LibreOffice/co-24.04/sw/source/uibase/uno/unotxdoc.cxx:3145 #18 0x00007fd4a24c5ada in doc_paintTile (pThis=0xed2fa10, pBuffer=0x12871f30 "", nCanvasWidth=1792, nCanvasHeight=768, nTilePosX=0, nTilePosY=113280, nTileWidth=13440, nTileHeight=5760) at /home/caolan/LibreOffice/co-24.04/desktop/source/lib/init.cxx:4431 #19 0x00007fd4a24c6bb3 in doc_paintPartTile (pThis=0xed2fa10, pBuffer=0x12871f30 "", nPart=0, nMode=0, nCanvasWidth=1792, nCanvasHeight=768, nTilePosX=0, nTilePosY=113280, nTileWidth=13440, nTileHeight=5760) at /home/caolan/LibreOffice/co-24.04/desktop/source/lib/init.cxx:4629 #20 0x00000000005f0f0e in lok::Document::paintPartTile (this=0xf521420, pBuffer=0x12871f30 "", nPart=0, nMode=0, nCanvasWidth=1792, nCanvasHeight=768, nTilePosX=0, nTilePosY=113280, nTileWidth=13440, nTileHeight=5760) at /home/caolan/LibreOffice/co-24.04/include/LibreOfficeKit/LibreOfficeKit.hxx:621 #21 0x00000000005c2627 in RenderTiles::doRender(std::shared_ptr<lok::Document> const&, DeltaGenerator&, TileCombined&, ThreadPool&, std::function<void (unsigned char*, int, int, unsigned long, unsigned long, int, int, LibreOfficeKitTileMode)> const&, std::function<void (char const*, unsigned long)> const&, unsigned int, int, bool) (document=..., deltaGen=..., tileCombined=..., pngPool=..., blendWatermark=..., outputMessage=..., mobileAppDocId=3, canonicalViewId=1000, dumpTiles=false) at ./common/RenderTiles.hpp:123 #22 0x00000000005cd29d in Document::renderTiles (this=0xe6eefc0, tileCombined=...) at kit/Kit.cpp:933 where otherwise the browser gets no update of the document size. Change-Id: I396daa9c7ee5c306ee107839f6fba6b26a70683d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173936 Tested-by: Miklos Vajna <vmiklos@collabora.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
we want this to get through because of a scenario like #0 ignoreLibreOfficeKitViewCallback (nType=13, pImpl=0xf9bd620) at /home/caolan/LibreOffice/co-24.04/sfx2/source/view/viewsh.cxx:3219 #1 0x00007fd4a2428979 in SfxViewShell::libreOfficeKitViewCallback (this=0xf9bd090, nType=13, pPayload=...) at /home/caolan/LibreOffice/co-24.04/sfx2/source/view/viewsh.cxx:3278 #2 0x00007fd4a23ab80b in SfxLokHelper::notifyDocumentSizeChanged (pThisView=0xf9bd090, rPayload=..., pDoc=0xec53578, bInvalidateAll=true) at /home/caolan/LibreOffice/co-24.04/sfx2/source/view/lokhelper.cxx:711 #3 0x00007fd484eba265 in SwViewShell::SizeChgNotify (this=0xf9bf3c0) at /home/caolan/LibreOffice/co-24.04/sw/source/core/view/viewsh.cxx:1154 #4 0x00007fd484775a62 in AdjustSizeChgNotify (pRoot=0xed16880) at /home/caolan/LibreOffice/co-24.04/sw/source/core/layout/pagechg.cxx:842 #5 0x00007fd48477e029 in SwRootFrame::CheckViewLayout (this=0xed16880, pViewOpt=0x0, pVisArea=0x0) at /home/caolan/LibreOffice/co-24.04/sw/source/core/layout/pagechg.cxx:2436 #6 0x00007fd484775da2 in SwPageFrame::Cut (this=0x120350f0) at /home/caolan/LibreOffice/co-24.04/sw/source/core/layout/pagechg.cxx:914 #7 0x00007fd484779ec8 in SwRootFrame::RemovePage (this=0xed16880, pDelRef=0x7ffe90279548, eResult=SwRemoveResult::Prev) at /home/caolan/LibreOffice/co-24.04/sw/source/core/layout/pagechg.cxx:1511 #8 0x00007fd48477a187 in SwRootFrame::RemoveSuperfluous (this=0xed16880) at /home/caolan/LibreOffice/co-24.04/sw/source/core/layout/pagechg.cxx:1550 #9 0x00007fd4847336b2 in SwLayAction::InternalAction (this=0x7ffe90279a60, pRenderContext=0xf9bb5f0) at /home/caolan/LibreOffice/co-24.04/sw/source/core/layout/layact.cxx:694 #10 0x00007fd4847323b8 in SwLayAction::Action (this=0x7ffe90279a60, pRenderContext=0xf9bb5f0) at /home/caolan/LibreOffice/co-24.04/sw/source/core/layout/layact.cxx:396 #11 0x00007fd484eb5fc2 in SwViewShell::ImplEndAction (this=0xf9bf3c0, bIdleEnd=false) at /home/caolan/LibreOffice/co-24.04/sw/source/core/view/viewsh.cxx:309 #12 0x00007fd483fa3f78 in SwViewShell::EndAction (this=0xf9bf3c0, bIdleEnd=false) at /home/caolan/LibreOffice/co-24.04/sw/inc/viewsh.hxx:637 #13 0x00007fd484ebf56b in SwViewShell::ApplyViewOptions (this=0xeddec90, rOpt=...) at /home/caolan/LibreOffice/co-24.04/sw/source/core/view/viewsh.cxx:2235 #14 0x00007fd484577013 in SwEditShell::ApplyViewOptions (this=0xeddec90, rOpt=...) at /home/caolan/LibreOffice/co-24.04/sw/source/core/edit/editsh.cxx:1094 #15 0x00007fd48574a5cf in SwWrtShell::ApplyViewOptions (this=0xeddec90, rOpt=...) at /home/caolan/LibreOffice/co-24.04/sw/source/uibase/wrtsh/wrtsh1.cxx:2137 #16 0x00007fd484ebe79e in SwViewShell::PaintTile (this=0xeddec90, rDevice=..., contextWidth=1792, contextHeight=768, tilePosX=0, tilePosY=113280, tileWidth=13440, tileHeight=5760) at /home/caolan/LibreOffice/co-24.04/sw/source/core/view/viewsh.cxx:2019 #17 0x00007fd4855fc5f0 in SwXTextDocument::paintTile (this=0xec53280, rDevice=..., nOutputWidth=1792, nOutputHeight=768, nTilePosX=0, nTilePosY=113280, nTileWidth=13440, nTileHeight=5760) at /home/caolan/LibreOffice/co-24.04/sw/source/uibase/uno/unotxdoc.cxx:3145 #18 0x00007fd4a24c5ada in doc_paintTile (pThis=0xed2fa10, pBuffer=0x12871f30 "", nCanvasWidth=1792, nCanvasHeight=768, nTilePosX=0, nTilePosY=113280, nTileWidth=13440, nTileHeight=5760) at /home/caolan/LibreOffice/co-24.04/desktop/source/lib/init.cxx:4431 #19 0x00007fd4a24c6bb3 in doc_paintPartTile (pThis=0xed2fa10, pBuffer=0x12871f30 "", nPart=0, nMode=0, nCanvasWidth=1792, nCanvasHeight=768, nTilePosX=0, nTilePosY=113280, nTileWidth=13440, nTileHeight=5760) at /home/caolan/LibreOffice/co-24.04/desktop/source/lib/init.cxx:4629 #20 0x00000000005f0f0e in lok::Document::paintPartTile (this=0xf521420, pBuffer=0x12871f30 "", nPart=0, nMode=0, nCanvasWidth=1792, nCanvasHeight=768, nTilePosX=0, nTilePosY=113280, nTileWidth=13440, nTileHeight=5760) at /home/caolan/LibreOffice/co-24.04/include/LibreOfficeKit/LibreOfficeKit.hxx:621 #21 0x00000000005c2627 in RenderTiles::doRender(std::shared_ptr<lok::Document> const&, DeltaGenerator&, TileCombined&, ThreadPool&, std::function<void (unsigned char*, int, int, unsigned long, unsigned long, int, int, LibreOfficeKitTileMode)> const&, std::function<void (char const*, unsigned long)> const&, unsigned int, int, bool) (document=..., deltaGen=..., tileCombined=..., pngPool=..., blendWatermark=..., outputMessage=..., mobileAppDocId=3, canonicalViewId=1000, dumpTiles=false) at ./common/RenderTiles.hpp:123 #22 0x00000000005cd29d in Document::renderTiles (this=0xe6eefc0, tileCombined=...) at kit/Kit.cpp:933 where otherwise the browser gets no update of the document size. Change-Id: I396daa9c7ee5c306ee107839f6fba6b26a70683d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173936 Tested-by: Miklos Vajna <vmiklos@collabora.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
we want this to get through because of a scenario like #0 ignoreLibreOfficeKitViewCallback (nType=13, pImpl=0xf9bd620) at /home/caolan/LibreOffice/co-24.04/sfx2/source/view/viewsh.cxx:3219 #1 0x00007fd4a2428979 in SfxViewShell::libreOfficeKitViewCallback (this=0xf9bd090, nType=13, pPayload=...) at /home/caolan/LibreOffice/co-24.04/sfx2/source/view/viewsh.cxx:3278 #2 0x00007fd4a23ab80b in SfxLokHelper::notifyDocumentSizeChanged (pThisView=0xf9bd090, rPayload=..., pDoc=0xec53578, bInvalidateAll=true) at /home/caolan/LibreOffice/co-24.04/sfx2/source/view/lokhelper.cxx:711 #3 0x00007fd484eba265 in SwViewShell::SizeChgNotify (this=0xf9bf3c0) at /home/caolan/LibreOffice/co-24.04/sw/source/core/view/viewsh.cxx:1154 #4 0x00007fd484775a62 in AdjustSizeChgNotify (pRoot=0xed16880) at /home/caolan/LibreOffice/co-24.04/sw/source/core/layout/pagechg.cxx:842 #5 0x00007fd48477e029 in SwRootFrame::CheckViewLayout (this=0xed16880, pViewOpt=0x0, pVisArea=0x0) at /home/caolan/LibreOffice/co-24.04/sw/source/core/layout/pagechg.cxx:2436 #6 0x00007fd484775da2 in SwPageFrame::Cut (this=0x120350f0) at /home/caolan/LibreOffice/co-24.04/sw/source/core/layout/pagechg.cxx:914 #7 0x00007fd484779ec8 in SwRootFrame::RemovePage (this=0xed16880, pDelRef=0x7ffe90279548, eResult=SwRemoveResult::Prev) at /home/caolan/LibreOffice/co-24.04/sw/source/core/layout/pagechg.cxx:1511 #8 0x00007fd48477a187 in SwRootFrame::RemoveSuperfluous (this=0xed16880) at /home/caolan/LibreOffice/co-24.04/sw/source/core/layout/pagechg.cxx:1550 #9 0x00007fd4847336b2 in SwLayAction::InternalAction (this=0x7ffe90279a60, pRenderContext=0xf9bb5f0) at /home/caolan/LibreOffice/co-24.04/sw/source/core/layout/layact.cxx:694 #10 0x00007fd4847323b8 in SwLayAction::Action (this=0x7ffe90279a60, pRenderContext=0xf9bb5f0) at /home/caolan/LibreOffice/co-24.04/sw/source/core/layout/layact.cxx:396 #11 0x00007fd484eb5fc2 in SwViewShell::ImplEndAction (this=0xf9bf3c0, bIdleEnd=false) at /home/caolan/LibreOffice/co-24.04/sw/source/core/view/viewsh.cxx:309 #12 0x00007fd483fa3f78 in SwViewShell::EndAction (this=0xf9bf3c0, bIdleEnd=false) at /home/caolan/LibreOffice/co-24.04/sw/inc/viewsh.hxx:637 #13 0x00007fd484ebf56b in SwViewShell::ApplyViewOptions (this=0xeddec90, rOpt=...) at /home/caolan/LibreOffice/co-24.04/sw/source/core/view/viewsh.cxx:2235 #14 0x00007fd484577013 in SwEditShell::ApplyViewOptions (this=0xeddec90, rOpt=...) at /home/caolan/LibreOffice/co-24.04/sw/source/core/edit/editsh.cxx:1094 #15 0x00007fd48574a5cf in SwWrtShell::ApplyViewOptions (this=0xeddec90, rOpt=...) at /home/caolan/LibreOffice/co-24.04/sw/source/uibase/wrtsh/wrtsh1.cxx:2137 #16 0x00007fd484ebe79e in SwViewShell::PaintTile (this=0xeddec90, rDevice=..., contextWidth=1792, contextHeight=768, tilePosX=0, tilePosY=113280, tileWidth=13440, tileHeight=5760) at /home/caolan/LibreOffice/co-24.04/sw/source/core/view/viewsh.cxx:2019 #17 0x00007fd4855fc5f0 in SwXTextDocument::paintTile (this=0xec53280, rDevice=..., nOutputWidth=1792, nOutputHeight=768, nTilePosX=0, nTilePosY=113280, nTileWidth=13440, nTileHeight=5760) at /home/caolan/LibreOffice/co-24.04/sw/source/uibase/uno/unotxdoc.cxx:3145 #18 0x00007fd4a24c5ada in doc_paintTile (pThis=0xed2fa10, pBuffer=0x12871f30 "", nCanvasWidth=1792, nCanvasHeight=768, nTilePosX=0, nTilePosY=113280, nTileWidth=13440, nTileHeight=5760) at /home/caolan/LibreOffice/co-24.04/desktop/source/lib/init.cxx:4431 #19 0x00007fd4a24c6bb3 in doc_paintPartTile (pThis=0xed2fa10, pBuffer=0x12871f30 "", nPart=0, nMode=0, nCanvasWidth=1792, nCanvasHeight=768, nTilePosX=0, nTilePosY=113280, nTileWidth=13440, nTileHeight=5760) at /home/caolan/LibreOffice/co-24.04/desktop/source/lib/init.cxx:4629 #20 0x00000000005f0f0e in lok::Document::paintPartTile (this=0xf521420, pBuffer=0x12871f30 "", nPart=0, nMode=0, nCanvasWidth=1792, nCanvasHeight=768, nTilePosX=0, nTilePosY=113280, nTileWidth=13440, nTileHeight=5760) at /home/caolan/LibreOffice/co-24.04/include/LibreOfficeKit/LibreOfficeKit.hxx:621 #21 0x00000000005c2627 in RenderTiles::doRender(std::shared_ptr<lok::Document> const&, DeltaGenerator&, TileCombined&, ThreadPool&, std::function<void (unsigned char*, int, int, unsigned long, unsigned long, int, int, LibreOfficeKitTileMode)> const&, std::function<void (char const*, unsigned long)> const&, unsigned int, int, bool) (document=..., deltaGen=..., tileCombined=..., pngPool=..., blendWatermark=..., outputMessage=..., mobileAppDocId=3, canonicalViewId=1000, dumpTiles=false) at ./common/RenderTiles.hpp:123 #22 0x00000000005cd29d in Document::renderTiles (this=0xe6eefc0, tileCombined=...) at kit/Kit.cpp:933 where otherwise the browser gets no update of the document size. Change-Id: I396daa9c7ee5c306ee107839f6fba6b26a70683d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173936 Tested-by: Miklos Vajna <vmiklos@collabora.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com> (cherry picked from commit ed75469) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173907 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
#2 0x0000000000ac8c3e in std::__glibcxx_assert_fail(char const*, int, char const*, char const*) () #3 0x00007fa92f2fa26f in std::unique_ptr<WindowImpl, std::default_delete<WindowImpl> >::operator* (this=<optimized out>) at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:443 #4 std::unique_ptr<WindowImpl, std::default_delete<WindowImpl> >::operator* (this=<optimized out>) at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:443 #5 vcl::Window::CallEventListeners (this=this@entry=0x34eb4f40, nEvent=nEvent@entry=VclEventId::ObjectDying, pData=pData@entry=0x0) at libreoffice/vcl/source/window/event.cxx:272 #6 0x00007fa92f38277a in vcl::Window::dispose (this=0x34eb4f40) at libreoffice/vcl/source/window/window.cxx:159 #7 0x00007fa92f678064 in VclPtr<HelpTextWindow>::disposeAndClear (this=<synthetic pointer>) at libreoffice/include/rtl/ref.hxx:88 #8 ImplDestroyHelpWindow (rHelpData=..., bUpdateHideTime=<optimized out>) at libreoffice/vcl/source/app/help.cxx:576 #9 0x00007fa92f6780f8 in ImplDestroyHelpWindow (bUpdateHideTime=<optimized out>) at libreoffice/vcl/source/app/help.cxx:565 #10 0x00007fa92f679125 in ImplShowHelpWindow (pParent=0x334cfb90, nHelpWinStyle=<optimized out>, nStyle=QuickHelpFlags::NONE, rHelpText="Chart Area", rScreenPos=Point = {...}, rHelpArea=...) at libreoffice/vcl/source/app/help.cxx:532 #11 0x00007fa92f679544 in Help::ShowQuickHelp (pParent=pParent@entry=0x334cfb90, rScreenRect=..., rHelpText="Chart Area", nStyle=nStyle@entry=QuickHelpFlags::NONE) at libreoffice/vcl/source/app/help.cxx:189 #12 0x00007fa91ae862e0 in chart::ChartWindow::RequestHelp (this=0x334cfb90, rHEvt=...) at libreoffice/chart2/source/controller/main/ChartWindow.cxx:227 #13 0x00007fa92e2e88a0 in (anonymous namespace)::LOKPostAsyncEvent (pEv=0x35b4a320) at libreoffice/sfx2/source/view/lokhelper.cxx:1103 #14 0x00007fa92e2e076a in LokChartHelper::postMouseEvent (this=this@entry=0x7ffd226dd650, nType=nType@entry=2, nX=nX@entry=15405, nY=nY@entry=4089, nCount=nCount@entry=1, nButtons=nButtons@entry=0, nModifier=0, fScaleX=fScaleX@entry=0.10000000000000001, fScaleY=fScaleY@entry=0.10000000000000001) at libreoffice/sfx2/source/view/lokcharthelper.cxx:294 #15 0x00007fa92e2e5b80 in SfxLokHelper::testInPlaceComponentMouseEventHit (pViewShell=pViewShell@entry=0x337e52a0, nType=nType@entry=2, nX=nX@entry=15405, nY=nY@entry=4089, nCount=nCount@entry=1, nButtons=nButtons@entry=0, nModifier=0, fScaleX=0.10000000000000001, fScaleY=0.10000000000000001, bNegativeX=false) at libreoffice/include/rtl/ref.hxx:69 #16 0x00007fa91dba1e0e in ScModelObj::postMouseEvent (this=0x4593d10, nType=2, nX=15405, nY=4089, nCount=1, nButtons=0, nModifier=0) at libreoffice/sc/source/ui/unoobj/docuno.cxx:799 #17 0x00007fa92e39567f in doc_postMouseEvent (pThis=0x334b8290, nType=2, nX=15405, nY=4089, nCount=1, nButtons=0, nModifier=0) at libreoffice/desktop/source/lib/init.cxx:5597 #18 0x0000000000578631 in lok::Document::postMouseEvent (nModifier=0, nButtons=0, nCount=1, nY=<optimized out>, nX=<optimized out>, nType=<optimized out>, this=<optimized out>) at libreoffice/include/LibreOfficeKit/LibreOfficeKit.hxx:297 #19 ChildSession::mouseEvent (this=this@entry=0x317e3cf0, tokens=..., target=target@entry=LokEventTargetEnum::Document) at kit/ChildSession.cpp:1906 #20 0x0000000000588485 in ChildSession::_handleInput (this=<optimized out>, buffer=<optimized out>, length=<optimized out>) at kit/ChildSession.cpp:634 Change-Id: Ic67c8b7c4553853d0ab36dd448642564b6b6fb69 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173986 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
#2 0x0000000000ac8c3e in std::__glibcxx_assert_fail(char const*, int, char const*, char const*) () #3 0x00007fa92f2fa26f in std::unique_ptr<WindowImpl, std::default_delete<WindowImpl> >::operator* (this=<optimized out>) at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:443 #4 std::unique_ptr<WindowImpl, std::default_delete<WindowImpl> >::operator* (this=<optimized out>) at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:443 #5 vcl::Window::CallEventListeners (this=this@entry=0x34eb4f40, nEvent=nEvent@entry=VclEventId::ObjectDying, pData=pData@entry=0x0) at libreoffice/vcl/source/window/event.cxx:272 #6 0x00007fa92f38277a in vcl::Window::dispose (this=0x34eb4f40) at libreoffice/vcl/source/window/window.cxx:159 #7 0x00007fa92f678064 in VclPtr<HelpTextWindow>::disposeAndClear (this=<synthetic pointer>) at libreoffice/include/rtl/ref.hxx:88 #8 ImplDestroyHelpWindow (rHelpData=..., bUpdateHideTime=<optimized out>) at libreoffice/vcl/source/app/help.cxx:576 #9 0x00007fa92f6780f8 in ImplDestroyHelpWindow (bUpdateHideTime=<optimized out>) at libreoffice/vcl/source/app/help.cxx:565 #10 0x00007fa92f679125 in ImplShowHelpWindow (pParent=0x334cfb90, nHelpWinStyle=<optimized out>, nStyle=QuickHelpFlags::NONE, rHelpText="Chart Area", rScreenPos=Point = {...}, rHelpArea=...) at libreoffice/vcl/source/app/help.cxx:532 #11 0x00007fa92f679544 in Help::ShowQuickHelp (pParent=pParent@entry=0x334cfb90, rScreenRect=..., rHelpText="Chart Area", nStyle=nStyle@entry=QuickHelpFlags::NONE) at libreoffice/vcl/source/app/help.cxx:189 #12 0x00007fa91ae862e0 in chart::ChartWindow::RequestHelp (this=0x334cfb90, rHEvt=...) at libreoffice/chart2/source/controller/main/ChartWindow.cxx:227 #13 0x00007fa92e2e88a0 in (anonymous namespace)::LOKPostAsyncEvent (pEv=0x35b4a320) at libreoffice/sfx2/source/view/lokhelper.cxx:1103 #14 0x00007fa92e2e076a in LokChartHelper::postMouseEvent (this=this@entry=0x7ffd226dd650, nType=nType@entry=2, nX=nX@entry=15405, nY=nY@entry=4089, nCount=nCount@entry=1, nButtons=nButtons@entry=0, nModifier=0, fScaleX=fScaleX@entry=0.10000000000000001, fScaleY=fScaleY@entry=0.10000000000000001) at libreoffice/sfx2/source/view/lokcharthelper.cxx:294 #15 0x00007fa92e2e5b80 in SfxLokHelper::testInPlaceComponentMouseEventHit (pViewShell=pViewShell@entry=0x337e52a0, nType=nType@entry=2, nX=nX@entry=15405, nY=nY@entry=4089, nCount=nCount@entry=1, nButtons=nButtons@entry=0, nModifier=0, fScaleX=0.10000000000000001, fScaleY=0.10000000000000001, bNegativeX=false) at libreoffice/include/rtl/ref.hxx:69 #16 0x00007fa91dba1e0e in ScModelObj::postMouseEvent (this=0x4593d10, nType=2, nX=15405, nY=4089, nCount=1, nButtons=0, nModifier=0) at libreoffice/sc/source/ui/unoobj/docuno.cxx:799 #17 0x00007fa92e39567f in doc_postMouseEvent (pThis=0x334b8290, nType=2, nX=15405, nY=4089, nCount=1, nButtons=0, nModifier=0) at libreoffice/desktop/source/lib/init.cxx:5597 #18 0x0000000000578631 in lok::Document::postMouseEvent (nModifier=0, nButtons=0, nCount=1, nY=<optimized out>, nX=<optimized out>, nType=<optimized out>, this=<optimized out>) at libreoffice/include/LibreOfficeKit/LibreOfficeKit.hxx:297 #19 ChildSession::mouseEvent (this=this@entry=0x317e3cf0, tokens=..., target=target@entry=LokEventTargetEnum::Document) at kit/ChildSession.cpp:1906 #20 0x0000000000588485 in ChildSession::_handleInput (this=<optimized out>, buffer=<optimized out>, length=<optimized out>) at kit/ChildSession.cpp:634 Change-Id: Ic67c8b7c4553853d0ab36dd448642564b6b6fb69 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173922 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
#2 0x0000000000ac8c3e in std::__glibcxx_assert_fail(char const*, int, char const*, char const*) () #3 0x00007fa92f2fa26f in std::unique_ptr<WindowImpl, std::default_delete<WindowImpl> >::operator* (this=<optimized out>) at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:443 #4 std::unique_ptr<WindowImpl, std::default_delete<WindowImpl> >::operator* (this=<optimized out>) at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:443 #5 vcl::Window::CallEventListeners (this=this@entry=0x34eb4f40, nEvent=nEvent@entry=VclEventId::ObjectDying, pData=pData@entry=0x0) at libreoffice/vcl/source/window/event.cxx:272 #6 0x00007fa92f38277a in vcl::Window::dispose (this=0x34eb4f40) at libreoffice/vcl/source/window/window.cxx:159 #7 0x00007fa92f678064 in VclPtr<HelpTextWindow>::disposeAndClear (this=<synthetic pointer>) at libreoffice/include/rtl/ref.hxx:88 #8 ImplDestroyHelpWindow (rHelpData=..., bUpdateHideTime=<optimized out>) at libreoffice/vcl/source/app/help.cxx:576 #9 0x00007fa92f6780f8 in ImplDestroyHelpWindow (bUpdateHideTime=<optimized out>) at libreoffice/vcl/source/app/help.cxx:565 #10 0x00007fa92f679125 in ImplShowHelpWindow (pParent=0x334cfb90, nHelpWinStyle=<optimized out>, nStyle=QuickHelpFlags::NONE, rHelpText="Chart Area", rScreenPos=Point = {...}, rHelpArea=...) at libreoffice/vcl/source/app/help.cxx:532 #11 0x00007fa92f679544 in Help::ShowQuickHelp (pParent=pParent@entry=0x334cfb90, rScreenRect=..., rHelpText="Chart Area", nStyle=nStyle@entry=QuickHelpFlags::NONE) at libreoffice/vcl/source/app/help.cxx:189 #12 0x00007fa91ae862e0 in chart::ChartWindow::RequestHelp (this=0x334cfb90, rHEvt=...) at libreoffice/chart2/source/controller/main/ChartWindow.cxx:227 #13 0x00007fa92e2e88a0 in (anonymous namespace)::LOKPostAsyncEvent (pEv=0x35b4a320) at libreoffice/sfx2/source/view/lokhelper.cxx:1103 #14 0x00007fa92e2e076a in LokChartHelper::postMouseEvent (this=this@entry=0x7ffd226dd650, nType=nType@entry=2, nX=nX@entry=15405, nY=nY@entry=4089, nCount=nCount@entry=1, nButtons=nButtons@entry=0, nModifier=0, fScaleX=fScaleX@entry=0.10000000000000001, fScaleY=fScaleY@entry=0.10000000000000001) at libreoffice/sfx2/source/view/lokcharthelper.cxx:294 #15 0x00007fa92e2e5b80 in SfxLokHelper::testInPlaceComponentMouseEventHit (pViewShell=pViewShell@entry=0x337e52a0, nType=nType@entry=2, nX=nX@entry=15405, nY=nY@entry=4089, nCount=nCount@entry=1, nButtons=nButtons@entry=0, nModifier=0, fScaleX=0.10000000000000001, fScaleY=0.10000000000000001, bNegativeX=false) at libreoffice/include/rtl/ref.hxx:69 #16 0x00007fa91dba1e0e in ScModelObj::postMouseEvent (this=0x4593d10, nType=2, nX=15405, nY=4089, nCount=1, nButtons=0, nModifier=0) at libreoffice/sc/source/ui/unoobj/docuno.cxx:799 #17 0x00007fa92e39567f in doc_postMouseEvent (pThis=0x334b8290, nType=2, nX=15405, nY=4089, nCount=1, nButtons=0, nModifier=0) at libreoffice/desktop/source/lib/init.cxx:5597 #18 0x0000000000578631 in lok::Document::postMouseEvent (nModifier=0, nButtons=0, nCount=1, nY=<optimized out>, nX=<optimized out>, nType=<optimized out>, this=<optimized out>) at libreoffice/include/LibreOfficeKit/LibreOfficeKit.hxx:297 #19 ChildSession::mouseEvent (this=this@entry=0x317e3cf0, tokens=..., target=target@entry=LokEventTargetEnum::Document) at kit/ChildSession.cpp:1906 #20 0x0000000000588485 in ChildSession::_handleInput (this=<optimized out>, buffer=<optimized out>, length=<optimized out>) at kit/ChildSession.cpp:634 Change-Id: Ic67c8b7c4553853d0ab36dd448642564b6b6fb69 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173986 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
#2 0x0000000000ac8c3e in std::__glibcxx_assert_fail(char const*, int, char const*, char const*) () #3 0x00007fa92f2fa26f in std::unique_ptr<WindowImpl, std::default_delete<WindowImpl> >::operator* (this=<optimized out>) at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:443 #4 std::unique_ptr<WindowImpl, std::default_delete<WindowImpl> >::operator* (this=<optimized out>) at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:443 #5 vcl::Window::CallEventListeners (this=this@entry=0x34eb4f40, nEvent=nEvent@entry=VclEventId::ObjectDying, pData=pData@entry=0x0) at libreoffice/vcl/source/window/event.cxx:272 #6 0x00007fa92f38277a in vcl::Window::dispose (this=0x34eb4f40) at libreoffice/vcl/source/window/window.cxx:159 #7 0x00007fa92f678064 in VclPtr<HelpTextWindow>::disposeAndClear (this=<synthetic pointer>) at libreoffice/include/rtl/ref.hxx:88 #8 ImplDestroyHelpWindow (rHelpData=..., bUpdateHideTime=<optimized out>) at libreoffice/vcl/source/app/help.cxx:576 #9 0x00007fa92f6780f8 in ImplDestroyHelpWindow (bUpdateHideTime=<optimized out>) at libreoffice/vcl/source/app/help.cxx:565 #10 0x00007fa92f679125 in ImplShowHelpWindow (pParent=0x334cfb90, nHelpWinStyle=<optimized out>, nStyle=QuickHelpFlags::NONE, rHelpText="Chart Area", rScreenPos=Point = {...}, rHelpArea=...) at libreoffice/vcl/source/app/help.cxx:532 #11 0x00007fa92f679544 in Help::ShowQuickHelp (pParent=pParent@entry=0x334cfb90, rScreenRect=..., rHelpText="Chart Area", nStyle=nStyle@entry=QuickHelpFlags::NONE) at libreoffice/vcl/source/app/help.cxx:189 #12 0x00007fa91ae862e0 in chart::ChartWindow::RequestHelp (this=0x334cfb90, rHEvt=...) at libreoffice/chart2/source/controller/main/ChartWindow.cxx:227 #13 0x00007fa92e2e88a0 in (anonymous namespace)::LOKPostAsyncEvent (pEv=0x35b4a320) at libreoffice/sfx2/source/view/lokhelper.cxx:1103 #14 0x00007fa92e2e076a in LokChartHelper::postMouseEvent (this=this@entry=0x7ffd226dd650, nType=nType@entry=2, nX=nX@entry=15405, nY=nY@entry=4089, nCount=nCount@entry=1, nButtons=nButtons@entry=0, nModifier=0, fScaleX=fScaleX@entry=0.10000000000000001, fScaleY=fScaleY@entry=0.10000000000000001) at libreoffice/sfx2/source/view/lokcharthelper.cxx:294 #15 0x00007fa92e2e5b80 in SfxLokHelper::testInPlaceComponentMouseEventHit (pViewShell=pViewShell@entry=0x337e52a0, nType=nType@entry=2, nX=nX@entry=15405, nY=nY@entry=4089, nCount=nCount@entry=1, nButtons=nButtons@entry=0, nModifier=0, fScaleX=0.10000000000000001, fScaleY=0.10000000000000001, bNegativeX=false) at libreoffice/include/rtl/ref.hxx:69 #16 0x00007fa91dba1e0e in ScModelObj::postMouseEvent (this=0x4593d10, nType=2, nX=15405, nY=4089, nCount=1, nButtons=0, nModifier=0) at libreoffice/sc/source/ui/unoobj/docuno.cxx:799 #17 0x00007fa92e39567f in doc_postMouseEvent (pThis=0x334b8290, nType=2, nX=15405, nY=4089, nCount=1, nButtons=0, nModifier=0) at libreoffice/desktop/source/lib/init.cxx:5597 #18 0x0000000000578631 in lok::Document::postMouseEvent (nModifier=0, nButtons=0, nCount=1, nY=<optimized out>, nX=<optimized out>, nType=<optimized out>, this=<optimized out>) at libreoffice/include/LibreOfficeKit/LibreOfficeKit.hxx:297 #19 ChildSession::mouseEvent (this=this@entry=0x317e3cf0, tokens=..., target=target@entry=LokEventTargetEnum::Document) at kit/ChildSession.cpp:1906 #20 0x0000000000588485 in ChildSession::_handleInput (this=<optimized out>, buffer=<optimized out>, length=<optimized out>) at kit/ChildSession.cpp:634 Change-Id: Ic67c8b7c4553853d0ab36dd448642564b6b6fb69 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173922 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> (cherry picked from commit 6f53881) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174022 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
#2 0x0000000000ac8c3e in std::__glibcxx_assert_fail(char const*, int, char const*, char const*) () #3 0x00007fa92f2fa26f in std::unique_ptr<WindowImpl, std::default_delete<WindowImpl> >::operator* (this=<optimized out>) at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:443 #4 std::unique_ptr<WindowImpl, std::default_delete<WindowImpl> >::operator* (this=<optimized out>) at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:443 #5 vcl::Window::CallEventListeners (this=this@entry=0x34eb4f40, nEvent=nEvent@entry=VclEventId::ObjectDying, pData=pData@entry=0x0) at libreoffice/vcl/source/window/event.cxx:272 #6 0x00007fa92f38277a in vcl::Window::dispose (this=0x34eb4f40) at libreoffice/vcl/source/window/window.cxx:159 #7 0x00007fa92f678064 in VclPtr<HelpTextWindow>::disposeAndClear (this=<synthetic pointer>) at libreoffice/include/rtl/ref.hxx:88 #8 ImplDestroyHelpWindow (rHelpData=..., bUpdateHideTime=<optimized out>) at libreoffice/vcl/source/app/help.cxx:576 #9 0x00007fa92f6780f8 in ImplDestroyHelpWindow (bUpdateHideTime=<optimized out>) at libreoffice/vcl/source/app/help.cxx:565 #10 0x00007fa92f679125 in ImplShowHelpWindow (pParent=0x334cfb90, nHelpWinStyle=<optimized out>, nStyle=QuickHelpFlags::NONE, rHelpText="Chart Area", rScreenPos=Point = {...}, rHelpArea=...) at libreoffice/vcl/source/app/help.cxx:532 #11 0x00007fa92f679544 in Help::ShowQuickHelp (pParent=pParent@entry=0x334cfb90, rScreenRect=..., rHelpText="Chart Area", nStyle=nStyle@entry=QuickHelpFlags::NONE) at libreoffice/vcl/source/app/help.cxx:189 #12 0x00007fa91ae862e0 in chart::ChartWindow::RequestHelp (this=0x334cfb90, rHEvt=...) at libreoffice/chart2/source/controller/main/ChartWindow.cxx:227 #13 0x00007fa92e2e88a0 in (anonymous namespace)::LOKPostAsyncEvent (pEv=0x35b4a320) at libreoffice/sfx2/source/view/lokhelper.cxx:1103 #14 0x00007fa92e2e076a in LokChartHelper::postMouseEvent (this=this@entry=0x7ffd226dd650, nType=nType@entry=2, nX=nX@entry=15405, nY=nY@entry=4089, nCount=nCount@entry=1, nButtons=nButtons@entry=0, nModifier=0, fScaleX=fScaleX@entry=0.10000000000000001, fScaleY=fScaleY@entry=0.10000000000000001) at libreoffice/sfx2/source/view/lokcharthelper.cxx:294 #15 0x00007fa92e2e5b80 in SfxLokHelper::testInPlaceComponentMouseEventHit (pViewShell=pViewShell@entry=0x337e52a0, nType=nType@entry=2, nX=nX@entry=15405, nY=nY@entry=4089, nCount=nCount@entry=1, nButtons=nButtons@entry=0, nModifier=0, fScaleX=0.10000000000000001, fScaleY=0.10000000000000001, bNegativeX=false) at libreoffice/include/rtl/ref.hxx:69 #16 0x00007fa91dba1e0e in ScModelObj::postMouseEvent (this=0x4593d10, nType=2, nX=15405, nY=4089, nCount=1, nButtons=0, nModifier=0) at libreoffice/sc/source/ui/unoobj/docuno.cxx:799 #17 0x00007fa92e39567f in doc_postMouseEvent (pThis=0x334b8290, nType=2, nX=15405, nY=4089, nCount=1, nButtons=0, nModifier=0) at libreoffice/desktop/source/lib/init.cxx:5597 #18 0x0000000000578631 in lok::Document::postMouseEvent (nModifier=0, nButtons=0, nCount=1, nY=<optimized out>, nX=<optimized out>, nType=<optimized out>, this=<optimized out>) at libreoffice/include/LibreOfficeKit/LibreOfficeKit.hxx:297 #19 ChildSession::mouseEvent (this=this@entry=0x317e3cf0, tokens=..., target=target@entry=LokEventTargetEnum::Document) at kit/ChildSession.cpp:1906 #20 0x0000000000588485 in ChildSession::_handleInput (this=<optimized out>, buffer=<optimized out>, length=<optimized out>) at kit/ChildSession.cpp:634 Change-Id: Ic67c8b7c4553853d0ab36dd448642564b6b6fb69 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173922 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> (cherry picked from commit 6f53881) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174022 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> (cherry picked from commit 406aaa3) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174023
...in code newly introduced in 135ce25 "tdf#146487 Don't show generic diagram title when there is an empty title given", which caused CppunitTest_chart2_export2 to fail with > /oox/inc/drawingml/chart/plotareaconverter.hxx:78:62: runtime error: load of value 222, which is not a valid value for type 'bool' > #0 0x7f95cd9ed87c in oox::drawingml::chart::PlotAreaConverter::isSingleSeriesTitle() const /oox/inc/drawingml/chart/plotareaconverter.hxx:78:62 > #1 0x7f95cd9e506f in oox::drawingml::chart::ChartSpaceConverter::convertFromModel(com::sun::star::uno::Reference<com::sun::star::drawing::XShapes> const&, com::sun::star::awt::Point const&) /oox/source/drawingml/chart/chartspaceconverter.cxx:189:53 > #2 0x7f95cd9b6c34 in oox::drawingml::chart::ChartConverter::convertFromModel(oox::core::XmlFilterBase&, oox::drawingml::chart::ChartSpaceModel&, com::sun::star::uno::Reference<com::sun::star::chart2::XChartDocument> const&, com::sun::star::uno::Reference<com::sun::star::drawing::XShapes> const&, com::sun::star::awt::Point const&, com::sun::star::awt::Size const&) /oox/source/drawingml/chart/chartconverter.cxx:93:20 > #3 0x7f95ce548f59 in oox::drawingml::Shape::finalizeXShape(oox::core::XmlFilterBase&, com::sun::star::uno::Reference<com::sun::star::drawing::XShapes> const&) /oox/source/drawingml/shape.cxx:2245:50 > #4 0x7f95438150b2 in oox::xls::Shape::finalizeXShape(oox::core::XmlFilterBase&, com::sun::star::uno::Reference<com::sun::star::drawing::XShapes> const&) /sc/source/filter/oox/drawingfragment.cxx:113:30 > #5 0x7f95ce5267bb in oox::drawingml::Shape::createAndInsert(oox::core::XmlFilterBase&, rtl::OUString const&, oox::drawingml::Theme const*, com::sun::star::uno::Reference<com::sun::star::drawing::XShapes> const&, bool, bool, basegfx::B2DHomMatrix&, oox::drawingml::FillProperties const&, std::shared_ptr<oox::drawingml::Shape>) /oox/source/drawingml/shape.cxx:1964:9 > #6 0x7f95ce4edb54 in oox::drawingml::Shape::addShape(oox::core::XmlFilterBase&, oox::drawingml::Theme const*, com::sun::star::uno::Reference<com::sun::star::drawing::XShapes> const&, basegfx::B2DHomMatrix const&, oox::drawingml::FillProperties const&, std::__debug::map<rtl::OUString, std::shared_ptr<oox::drawingml::Shape>, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, std::shared_ptr<oox::drawingml::Shape> > > >*, std::shared_ptr<oox::drawingml::Shape>) /oox/source/drawingml/shape.cxx:366:41 > #7 0x7f954381ef79 in oox::xls::DrawingFragment::onEndElement() /sc/source/filter/oox/drawingfragment.cxx:335:30 > #8 0x7f95cdcaee54 in oox::core::ContextHandler2Helper::implEndElement(int) /oox/source/core/contexthandler2.cxx:125:9 > #9 0x7f95cdd5c116 in oox::core::FragmentHandler2::endFastElement(int) /oox/source/core/fragmenthandler2.cxx:91:5 > #10 0x7f95caf68fca in (anonymous namespace)::Entity::endElement() /sax/source/fastparser/fastparser.cxx:514:27 > #11 0x7f95caf68998 in sax_fastparser::FastSaxParserImpl::callbackEndElement() /sax/source/fastparser/fastparser.cxx:1331:17 > #12 0x7f95caf58444 in (anonymous namespace)::call_callbackEndElement(void*, unsigned char const*, unsigned char const*, unsigned char const*) /sax/source/fastparser/fastparser.cxx:338:18 > #13 0x7f960adebeda in xmlParseEndTag2 /workdir/UnpackedTarball/libxml2/parser.c:10090:2 > #14 0x7f960ad929b5 in xmlParseTryOrFinish /workdir/UnpackedTarball/libxml2/parser.c:11868:14 > #15 0x7f960ad86334 in xmlParseChunk /workdir/UnpackedTarball/libxml2/parser.c:12151:5 > #16 0x7f95caf53231 in sax_fastparser::FastSaxParserImpl::parse() /sax/source/fastparser/fastparser.cxx:1085:21 > #17 0x7f95caf4cd18 in sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) /sax/source/fastparser/fastparser.cxx:890:9 > #18 0x7f95caf6e950 in sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) /sax/source/fastparser/fastparser.cxx:1470:13 > #19 0x7f95cdce50d1 in oox::core::FastParser::parseStream(com::sun::star::xml::sax::InputSource const&, bool) /oox/source/core/fastparser.cxx:121:15 > #20 0x7f95cdce5868 in oox::core::FastParser::parseStream(com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, rtl::OUString const&) /oox/source/core/fastparser.cxx:129:5 > #21 0x7f95cddbb234 in oox::core::XmlFilterBase::importFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) /oox/source/core/xmlfilterbase.cxx:414:21 > #22 0x7f95cddb9b8d in oox::core::XmlFilterBase::importFragment(rtl::Reference<oox::core::FragmentHandler> const&) /oox/source/core/xmlfilterbase.cxx:344:12 > #23 0x7f95441ceaa8 in oox::xls::WorkbookHelper::importOoxFragment(rtl::Reference<oox::core::FragmentHandler> const&) /sc/source/filter/oox/workbookhelper.cxx:1046:27 > #24 0x7f95442797f1 in oox::xls::WorksheetGlobals::finalizeDrawings() /sc/source/filter/oox/worksheethelper.cxx:1373:9 > #25 0x7f95442789e0 in oox::xls::WorksheetGlobals::finalizeDrawingImport() /sc/source/filter/oox/worksheethelper.cxx:996:5 > #26 0x7f954428744d in oox::xls::WorksheetHelper::finalizeDrawingImport() /sc/source/filter/oox/worksheethelper.cxx:1637:17 > #27 0x7f95441771de in oox::xls::WorkbookFragment::finalizeImport() /sc/source/filter/oox/workbookfragment.cxx:511:18 > #28 0x7f95cdd5b3ae in oox::core::FragmentHandler2::endDocument() /oox/source/core/fragmenthandler2.cxx:53:5 > #29 0x7f95caf4cfc2 in sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) /sax/source/fastparser/fastparser.cxx:896:36 > #30 0x7f95caf6e950 in sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) /sax/source/fastparser/fastparser.cxx:1470:13 > #31 0x7f95cdce50d1 in oox::core::FastParser::parseStream(com::sun::star::xml::sax::InputSource const&, bool) /oox/source/core/fastparser.cxx:121:15 > #32 0x7f95cdce5868 in oox::core::FastParser::parseStream(com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, rtl::OUString const&) /oox/source/core/fastparser.cxx:129:5 > #33 0x7f95cddbb234 in oox::core::XmlFilterBase::importFragment(rtl::Reference<oox::core::FragmentHandler> const&, oox::core::FastParser&) /oox/source/core/xmlfilterbase.cxx:414:21 > #34 0x7f95cddb9b8d in oox::core::XmlFilterBase::importFragment(rtl::Reference<oox::core::FragmentHandler> const&) /oox/source/core/xmlfilterbase.cxx:344:12 > #35 0x7f95435c4daa in oox::xls::ExcelFilter::importDocument() /sc/source/filter/oox/excelfilter.cxx:113:25 > #36 0x7f95cdcf953b in oox::core::FilterBase::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /oox/source/core/filterbase.cxx:488:49 > #37 0x7f95435c7733 in oox::xls::ExcelFilter::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /sc/source/filter/oox/excelfilter.cxx:176:25 > #38 0x7f95857c5b40 in SfxObjectShell::ImportFrom(SfxMedium&, com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&) /sfx2/source/doc/objstor.cxx:2393:34 > #39 0x7f9585781c6a in SfxObjectShell::DoLoad(SfxMedium*) /sfx2/source/doc/objstor.cxx:761:23 > #40 0x7f95859a9652 in SfxBaseModel::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /sfx2/source/doc/sfxbasemodel.cxx:1980:36 > #41 0x7f95862145e9 in (anonymous namespace)::SfxFrameLoader_Impl::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) /sfx2/source/view/frmload.cxx:720:28 > #42 0x7f95536a9900 in framework::LoadEnv::impl_loadContent() /framework/source/loadenv/loadenv.cxx:1176:37 > #43 0x7f95536a091b in framework::LoadEnv::start() /framework/source/loadenv/loadenv.cxx:412:20 > #44 0x7f9553698f59 in framework::LoadEnv::startLoading(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, rtl::OUString const&, int, LoadEnvFeatures) /framework/source/loadenv/loadenv.cxx:308:5 > #45 0x7f95536946e7 in framework::LoadEnv::loadComponentFromURL(com::sun::star::uno::Reference<com::sun::star::frame::XComponentLoader> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /framework/source/loadenv/loadenv.cxx:168:14 > #46 0x7f955376867d in framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /framework/source/services/desktop.cxx:591:16 > #47 0x7f95537688a6 in non-virtual thunk to framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /framework/source/services/desktop.cxx > #48 0x7f9569f7cafa in unotest::MacrosTest::loadFromDesktop(rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /unotest/source/cpp/macros_test.cxx:71:62 > #49 0x7f9580718c56 in UnoApiTest::loadWithParams(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /test/source/unoapi_test.cxx:126:19 > #50 0x7f9580717ef8 in UnoApiTest::load(rtl::OUString const&, char const*) /test/source/unoapi_test.cxx:108:5 > #51 0x7f9580719254 in UnoApiTest::loadFromFile(std::basic_string_view<char16_t, std::char_traits<char16_t> >, char const*) /test/source/unoapi_test.cxx:132:5 > #52 0x7f95d8bf1018 in testTdf123647::TestBody() /chart2/qa/extras/chart2export2.cxx:1242:5 (<https://ci.libreoffice.org//job/lo_ubsan/3048/>) Change-Id: I870d811e78b8c55b84627ae609f98f623465dd9d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162294 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> (cherry picked from commit 3fb9859) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174442 Tested-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
Instead of using a custom (non-recursive) std::mutex in the extension manager dialog, hold the (recursive) SolarMutex instead. As the backtrace in attachment 197155 in tdf#161625 (s.a. below) shows, a recursive mutex is needed: dp_gui::ExtMgrDialog::TimeOutHdl (frame 17) locks the mutex, then dp_gui::ExtMgrDialog::startProgress (frame 6) wants to lock it again, causing a deadlock. (Switching ExtMgrDialog::m_aMutex to be a std::recursive_mutex could be an alternative, but follow the common pattern of holding the SolarMutex while doing UI stuff instead.) Somewhat similar commit: commit 406a7e9 Date: Wed Jul 10 12:46:50 2024 +0200 fix locking in UpdateRequiredDialog Backtrace of deadlock: #0 0x00007f883f6adc70 in ?? () from /usr/lib/libc.so.6 #1 0x00007f883f6b4b01 in pthread_mutex_lock () from /usr/lib/libc.so.6 #2 0x00007f87f3ea068e in __gthread_mutex_lock (__mutex=0x5782aab26e48) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/x86_64-pc-linux-gnu/bits/gthr-default.h:762 #3 std::mutex::lock (this=0x5782aab26e48) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/std_mutex.h:113 #4 std::unique_lock<std::mutex>::lock (this=<optimized out>) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/unique_lock.h:147 #5 std::unique_lock<std::mutex>::unique_lock (__m=..., this=<optimized out>) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/unique_lock.h:73 #6 dp_gui::ExtMgrDialog::startProgress (this=0x5782aab26de0, _bLockInterface=0x80) at /home/user/libreofficetwo/desktop/source/deployment/gui/dp_gui_dialog2.cxx:779 #7 0x00007f883b4080a1 in Link<void*, void>::Call (this=0x7f86b0000c08, data=0x80) at include/tools/link.hxx:111 #8 ImplHandleUserEvent (pSVEvent=pSVEvent@entry=0x7f86b0000c00) at /home/user/libreofficetwo/vcl/source/window/winproc.cxx:2285 #9 0x00007f883b40616a in ImplWindowFrameProc (_pWindow=0x5782a76df9f0, nEvent=SalEvent::UserEvent, pEvent=0x7f86b0000c00) at /home/user/libreofficetwo/vcl/source/window/winproc.cxx:2849 #10 0x00007f883b6c711e in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=<optimized out>) at /home/user/libreofficetwo/vcl/source/app/salusereventlist.cxx:119 #11 SalUserEventList::DispatchUserEvents (this=0x5782a62edb08, bHandleAllCurrentEvents=false) at /home/user/libreofficetwo/vcl/source/app/salusereventlist.cxx:120 #12 0x00007f8833fb7827 in QtInstance::ImplYield (this=this@entry=0x5782a62edad0, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:447 #13 0x00007f8833fb9e11 in QtInstance::DoYield (this=0x5782a62edad0, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:469 #14 0x00007f883b70fc72 in ImplYield (i_bWait=true, i_bAllEvents=false) at /home/user/libreofficetwo/vcl/source/app/svapp.cxx:385 #15 Application::Yield () at /home/user/libreofficetwo/vcl/source/app/svapp.cxx:473 #16 0x00007f883b486415 in ProgressBar::SetValue (this=<optimized out>, nNewPercent=<optimized out>) at /home/user/libreofficetwo/vcl/source/control/prgsbar.cxx:199 #17 0x00007f87f3ea14ca in dp_gui::ExtMgrDialog::TimeOutHdl (this=0x5782aab26de0) at /home/user/libreofficetwo/desktop/source/deployment/gui/dp_gui_dialog2.cxx:976 #18 0x00007f883b6ff8c7 in Scheduler::CallbackTaskScheduling () at /home/user/libreofficetwo/vcl/source/app/scheduler.cxx:509 #19 0x00007f8833fd4013 in SalTimer::CallCallback (this=0x5782a77b83d0) at vcl/inc/saltimer.hxx:53 #20 QtTimer::timeoutActivated (this=0x5782a77b83c0) at vcl/qt6/../qt5/QtTimer.cxx:51 #21 0x00007f88341a3397 in ?? () from /usr/lib/libQt6Core.so.6 #22 0x00007f88341ab5e5 in QTimer::timerEvent(QTimerEvent*) () from /usr/lib/libQt6Core.so.6 #23 0x00007f883418d859 in QObject::event(QEvent*) () from /usr/lib/libQt6Core.so.6 #24 0x00007f8832efc8cc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt6Widgets.so.6 #25 0x00007f8834145aa8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt6Core.so.6 #26 0x00007f88342c7658 in QTimerInfoList::activateTimers() () from /usr/lib/libQt6Core.so.6 #27 0x00007f88343a9f99 in ?? () from /usr/lib/libQt6Core.so.6 #28 0x00007f8837877299 in ?? () from /usr/lib/libglib-2.0.so.0 #29 0x00007f88378d9ec7 in ?? () from /usr/lib/libglib-2.0.so.0 #30 0x00007f8837876795 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #31 0x00007f88343a82bd in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt6Core.so.6 #32 0x00007f8833fb789d in QtInstance::ImplYield (this=this@entry=0x5782a62edad0, bWait=<optimized out>, bHandleAllCurrentEvents=<optimized out>) at vcl/qt6/../qt5/QtInstance.cxx:458 #33 0x00007f8833fb9e11 in QtInstance::DoYield (this=0x5782a62edad0, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:469 #34 0x00007f883b70fc72 in ImplYield (i_bWait=true, i_bAllEvents=false) at /home/user/libreofficetwo/vcl/source/app/svapp.cxx:385 #35 Application::Yield () at /home/user/libreofficetwo/vcl/source/app/svapp.cxx:473 #36 0x00007f883b70fb90 in Application::Execute () at /home/user/libreofficetwo/vcl/source/app/svapp.cxx:360 #37 0x00007f883f8e1770 in desktop::Desktop::Main (this=0x7ffc2a5b0d28) at /home/user/libreofficetwo/desktop/source/app/app.cxx:1691 #38 0x00007f883b717e1e in ImplSVMain () at /home/user/libreofficetwo/vcl/source/app/svmain.cxx:228 #39 0x00007f883f90ef8a in soffice_main () at /home/user/libreofficetwo/desktop/source/app/sofficemain.cxx:121 #40 0x000057829d6f683b in sal_main () at /home/user/libreofficetwo/desktop/source/app/main.c:51 #41 main (argc=<optimized out>, argv=<optimized out>) at /home/user/libreofficetwo/desktop/source/app/main.c:49 Change-Id: I96d746eb1493aaf5b56d50664c9d1817699f21bb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175298 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins Reviewed-by: Rafael Lima <rafael.palma.lima@gmail.com> Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org> Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Instead of using a custom (non-recursive) std::mutex in the extension manager dialog, hold the (recursive) SolarMutex instead. As the backtrace in attachment 197155 in tdf#161625 (s.a. below) shows, a recursive mutex is needed: dp_gui::ExtMgrDialog::TimeOutHdl (frame 17) locks the mutex, then dp_gui::ExtMgrDialog::startProgress (frame 6) wants to lock it again, causing a deadlock. (Switching ExtMgrDialog::m_aMutex to be a std::recursive_mutex could be an alternative, but follow the common pattern of holding the SolarMutex while doing UI stuff instead.) Somewhat similar commit: commit 406a7e9 Date: Wed Jul 10 12:46:50 2024 +0200 fix locking in UpdateRequiredDialog Backtrace of deadlock: #0 0x00007f883f6adc70 in ?? () from /usr/lib/libc.so.6 #1 0x00007f883f6b4b01 in pthread_mutex_lock () from /usr/lib/libc.so.6 #2 0x00007f87f3ea068e in __gthread_mutex_lock (__mutex=0x5782aab26e48) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/x86_64-pc-linux-gnu/bits/gthr-default.h:762 #3 std::mutex::lock (this=0x5782aab26e48) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/std_mutex.h:113 #4 std::unique_lock<std::mutex>::lock (this=<optimized out>) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/unique_lock.h:147 #5 std::unique_lock<std::mutex>::unique_lock (__m=..., this=<optimized out>) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/unique_lock.h:73 #6 dp_gui::ExtMgrDialog::startProgress (this=0x5782aab26de0, _bLockInterface=0x80) at /home/user/libreofficetwo/desktop/source/deployment/gui/dp_gui_dialog2.cxx:779 #7 0x00007f883b4080a1 in Link<void*, void>::Call (this=0x7f86b0000c08, data=0x80) at include/tools/link.hxx:111 #8 ImplHandleUserEvent (pSVEvent=pSVEvent@entry=0x7f86b0000c00) at /home/user/libreofficetwo/vcl/source/window/winproc.cxx:2285 #9 0x00007f883b40616a in ImplWindowFrameProc (_pWindow=0x5782a76df9f0, nEvent=SalEvent::UserEvent, pEvent=0x7f86b0000c00) at /home/user/libreofficetwo/vcl/source/window/winproc.cxx:2849 #10 0x00007f883b6c711e in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=<optimized out>) at /home/user/libreofficetwo/vcl/source/app/salusereventlist.cxx:119 #11 SalUserEventList::DispatchUserEvents (this=0x5782a62edb08, bHandleAllCurrentEvents=false) at /home/user/libreofficetwo/vcl/source/app/salusereventlist.cxx:120 #12 0x00007f8833fb7827 in QtInstance::ImplYield (this=this@entry=0x5782a62edad0, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:447 #13 0x00007f8833fb9e11 in QtInstance::DoYield (this=0x5782a62edad0, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:469 #14 0x00007f883b70fc72 in ImplYield (i_bWait=true, i_bAllEvents=false) at /home/user/libreofficetwo/vcl/source/app/svapp.cxx:385 #15 Application::Yield () at /home/user/libreofficetwo/vcl/source/app/svapp.cxx:473 #16 0x00007f883b486415 in ProgressBar::SetValue (this=<optimized out>, nNewPercent=<optimized out>) at /home/user/libreofficetwo/vcl/source/control/prgsbar.cxx:199 #17 0x00007f87f3ea14ca in dp_gui::ExtMgrDialog::TimeOutHdl (this=0x5782aab26de0) at /home/user/libreofficetwo/desktop/source/deployment/gui/dp_gui_dialog2.cxx:976 #18 0x00007f883b6ff8c7 in Scheduler::CallbackTaskScheduling () at /home/user/libreofficetwo/vcl/source/app/scheduler.cxx:509 #19 0x00007f8833fd4013 in SalTimer::CallCallback (this=0x5782a77b83d0) at vcl/inc/saltimer.hxx:53 #20 QtTimer::timeoutActivated (this=0x5782a77b83c0) at vcl/qt6/../qt5/QtTimer.cxx:51 #21 0x00007f88341a3397 in ?? () from /usr/lib/libQt6Core.so.6 #22 0x00007f88341ab5e5 in QTimer::timerEvent(QTimerEvent*) () from /usr/lib/libQt6Core.so.6 #23 0x00007f883418d859 in QObject::event(QEvent*) () from /usr/lib/libQt6Core.so.6 #24 0x00007f8832efc8cc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt6Widgets.so.6 #25 0x00007f8834145aa8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt6Core.so.6 #26 0x00007f88342c7658 in QTimerInfoList::activateTimers() () from /usr/lib/libQt6Core.so.6 #27 0x00007f88343a9f99 in ?? () from /usr/lib/libQt6Core.so.6 #28 0x00007f8837877299 in ?? () from /usr/lib/libglib-2.0.so.0 #29 0x00007f88378d9ec7 in ?? () from /usr/lib/libglib-2.0.so.0 #30 0x00007f8837876795 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #31 0x00007f88343a82bd in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt6Core.so.6 #32 0x00007f8833fb789d in QtInstance::ImplYield (this=this@entry=0x5782a62edad0, bWait=<optimized out>, bHandleAllCurrentEvents=<optimized out>) at vcl/qt6/../qt5/QtInstance.cxx:458 #33 0x00007f8833fb9e11 in QtInstance::DoYield (this=0x5782a62edad0, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:469 #34 0x00007f883b70fc72 in ImplYield (i_bWait=true, i_bAllEvents=false) at /home/user/libreofficetwo/vcl/source/app/svapp.cxx:385 #35 Application::Yield () at /home/user/libreofficetwo/vcl/source/app/svapp.cxx:473 #36 0x00007f883b70fb90 in Application::Execute () at /home/user/libreofficetwo/vcl/source/app/svapp.cxx:360 #37 0x00007f883f8e1770 in desktop::Desktop::Main (this=0x7ffc2a5b0d28) at /home/user/libreofficetwo/desktop/source/app/app.cxx:1691 #38 0x00007f883b717e1e in ImplSVMain () at /home/user/libreofficetwo/vcl/source/app/svmain.cxx:228 #39 0x00007f883f90ef8a in soffice_main () at /home/user/libreofficetwo/desktop/source/app/sofficemain.cxx:121 #40 0x000057829d6f683b in sal_main () at /home/user/libreofficetwo/desktop/source/app/main.c:51 #41 main (argc=<optimized out>, argv=<optimized out>) at /home/user/libreofficetwo/desktop/source/app/main.c:49 Change-Id: I96d746eb1493aaf5b56d50664c9d1817699f21bb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175298 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins Reviewed-by: Rafael Lima <rafael.palma.lima@gmail.com> Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org> Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175402
...as seen at > /tools/source/misc/fix16.cxx:79:53: runtime error: signed integer overflow: -2147483648 - 1 cannot be represented in type 'int' > #0 0x7fc2f9f50a60 in mask(int) /tools/source/misc/fix16.cxx:79:53 > #1 0x7fc2f9f505fd in fix16_div(int, int) /tools/source/misc/fix16.cxx:122:34 > #2 0x7fc2f00d12e0 in vcl::fixedDiv(int, int) /vcl/source/fontsubset/sft.cxx:127:12 > #3 0x7fc2f00d11c1 in vcl::fixedMulDiv(int, int, int) /vcl/source/fontsubset/sft.cxx:135:12 > #4 0x7fc2f00d0851 in vcl::GetCompoundTTOutline(vcl::AbstractTrueTypeFont*, unsigned int, std::__debug::vector<vcl::ControlPoint, std::allocator<vcl::ControlPoint> >&, vcl::(anonymous namespace)::TTGlyphMetrics*, std::__debug::vector<unsigned int, std::allocator<unsigned int> >&) /vcl/source/fontsubset/sft.cxx:544:91 > #5 0x7fc2f00af5f1 in vcl::GetTTGlyphOutline(vcl::AbstractTrueTypeFont*, unsigned int, std::__debug::vector<vcl::ControlPoint, std::allocator<vcl::ControlPoint> >&, vcl::(anonymous namespace)::TTGlyphMetrics*, std::__debug::vector<unsigned int, std::allocator<unsigned int> >*) /vcl/source/fontsubset/sft.cxx:621:15 > #6 0x7fc2f00aea34 in vcl::GetTTGlyphPoints(vcl::AbstractTrueTypeFont*, unsigned int, std::__debug::vector<vcl::ControlPoint, std::allocator<vcl::ControlPoint> >&) /vcl/source/fontsubset/sft.cxx:1239:12 > #7 0x7fc2f00b92de in vcl::GetTTRawGlyphData(vcl::AbstractTrueTypeFont*, unsigned int) /vcl/source/fontsubset/sft.cxx:1667:9 > #8 0x7fc2f00b23ed in vcl::CreateTTFromTTGlyphs(vcl::AbstractTrueTypeFont*, std::__debug::vector<unsigned char, std::allocator<unsigned char> >&, unsigned short const*, unsigned char const*, int) /vcl/source/fontsubset/sft.cxx:1374:32 > #9 0x7fc2f00bc71a in vcl::CreateTTFfontSubset(vcl::AbstractTrueTypeFont&, std::__debug::vector<unsigned char, std::allocator<unsigned char> >&, unsigned int const*, unsigned char const*, int, FontSubsetInfo&) /vcl/source/fontsubset/sft.cxx:1549:13 > #10 0x7fc2eff57836 in vcl::font::PhysicalFontFace::CreateFontSubset(std::__debug::vector<unsigned char, std::allocator<unsigned char> >&, unsigned int const*, unsigned char const*, int, FontSubsetInfo&) const /vcl/source/font/PhysicalFontFace.cxx:367:12 > #11 0x7fc2ee4e0472 in vcl::PDFWriterImpl::emitFonts() /vcl/source/gdi/pdfwriter_impl.cxx:3152:24 > #12 0x7fc2ee4e9cb9 in vcl::PDFWriterImpl::emitResources() /vcl/source/gdi/pdfwriter_impl.cxx:3363:10 > #13 0x7fc2ee53f91d in vcl::PDFWriterImpl::emitCatalog() /vcl/source/gdi/pdfwriter_impl.cxx:5288:10 > #14 0x7fc2ee567ae3 in vcl::PDFWriterImpl::emit() /vcl/source/gdi/pdfwriter_impl.cxx:6341:10 > #15 0x7fc2ee3d3f2a in vcl::PDFWriter::Emit() /vcl/source/gdi/pdfwriter.cxx:53:29 > #16 0x7fc249b4b82a in PDFExport::Export(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /filter/source/pdf/pdfexport.cxx:1127:39 > #17 0x7fc249bb2782 in PDFFilter::implExport(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /filter/source/pdf/pdffilter.cxx:182:24 > #18 0x7fc249bb342b in PDFFilter::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /filter/source/pdf/pdffilter.cxx:247:23 > #19 0x7fc2a51ebec6 in SfxObjectShell::ExportTo(SfxMedium&) /sfx2/source/doc/objstor.cxx:2945:25 > #20 0x7fc2a51d7bec in SfxObjectShell::SaveTo_Impl(SfxMedium&, SfxItemSet const*) /sfx2/source/doc/objstor.cxx:1943:19 > #21 0x7fc2a5213f83 in SfxObjectShell::PreDoSaveAs_Impl(rtl::OUString const&, rtl::OUString const&, SfxItemSet const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /sfx2/source/doc/objstor.cxx:3459:39 > #22 0x7fc2a520b709 in SfxObjectShell::CommonSaveAs_Impl(INetURLObject const&, rtl::OUString const&, SfxItemSet&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /sfx2/source/doc/objstor.cxx:3249:9 > #23 0x7fc2a5147a8b in SfxObjectShell::APISaveAs_Impl(std::basic_string_view<char16_t, std::char_traits<char16_t> >, SfxItemSet&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /sfx2/source/doc/objserv.cxx:320:19 > #24 0x7fc2a543024c in SfxBaseModel::impl_store(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, bool) /sfx2/source/doc/sfxbasemodel.cxx:3231:42 > #25 0x7fc2a54374f4 in SfxBaseModel::storeToURL(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) /sfx2/source/doc/sfxbasemodel.cxx:1813:13 > #26 0x7fc2c74053ae in ScPDFExportTest::exportToPDF(com::sun::star::uno::Reference<com::sun::star::frame::XModel> const&, ScRange const&) /sc/qa/extras/scpdfexport.cxx:179:16 > #27 0x7fc2c7437e0f in ScPDFExportTest::testForcepoint97() /sc/qa/extras/scpdfexport.cxx:915:5 during CppunitTest_sc_pdf_export (<https://ci.libreoffice.org/job/lo_ubsan/3346/>) Change-Id: I3074479ea3267417a73ecafa81b4a9898f19d1a9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175469 Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Tested-by: Jenkins
#2 0x0000000000ac8c3e in std::__glibcxx_assert_fail(char const*, int, char const*, char const*) () #3 0x00007fa92f2fa26f in std::unique_ptr<WindowImpl, std::default_delete<WindowImpl> >::operator* (this=<optimized out>) at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:443 #4 std::unique_ptr<WindowImpl, std::default_delete<WindowImpl> >::operator* (this=<optimized out>) at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:443 #5 vcl::Window::CallEventListeners (this=this@entry=0x34eb4f40, nEvent=nEvent@entry=VclEventId::ObjectDying, pData=pData@entry=0x0) at libreoffice/vcl/source/window/event.cxx:272 #6 0x00007fa92f38277a in vcl::Window::dispose (this=0x34eb4f40) at libreoffice/vcl/source/window/window.cxx:159 #7 0x00007fa92f678064 in VclPtr<HelpTextWindow>::disposeAndClear (this=<synthetic pointer>) at libreoffice/include/rtl/ref.hxx:88 #8 ImplDestroyHelpWindow (rHelpData=..., bUpdateHideTime=<optimized out>) at libreoffice/vcl/source/app/help.cxx:576 #9 0x00007fa92f6780f8 in ImplDestroyHelpWindow (bUpdateHideTime=<optimized out>) at libreoffice/vcl/source/app/help.cxx:565 #10 0x00007fa92f679125 in ImplShowHelpWindow (pParent=0x334cfb90, nHelpWinStyle=<optimized out>, nStyle=QuickHelpFlags::NONE, rHelpText="Chart Area", rScreenPos=Point = {...}, rHelpArea=...) at libreoffice/vcl/source/app/help.cxx:532 #11 0x00007fa92f679544 in Help::ShowQuickHelp (pParent=pParent@entry=0x334cfb90, rScreenRect=..., rHelpText="Chart Area", nStyle=nStyle@entry=QuickHelpFlags::NONE) at libreoffice/vcl/source/app/help.cxx:189 #12 0x00007fa91ae862e0 in chart::ChartWindow::RequestHelp (this=0x334cfb90, rHEvt=...) at libreoffice/chart2/source/controller/main/ChartWindow.cxx:227 #13 0x00007fa92e2e88a0 in (anonymous namespace)::LOKPostAsyncEvent (pEv=0x35b4a320) at libreoffice/sfx2/source/view/lokhelper.cxx:1103 #14 0x00007fa92e2e076a in LokChartHelper::postMouseEvent (this=this@entry=0x7ffd226dd650, nType=nType@entry=2, nX=nX@entry=15405, nY=nY@entry=4089, nCount=nCount@entry=1, nButtons=nButtons@entry=0, nModifier=0, fScaleX=fScaleX@entry=0.10000000000000001, fScaleY=fScaleY@entry=0.10000000000000001) at libreoffice/sfx2/source/view/lokcharthelper.cxx:294 #15 0x00007fa92e2e5b80 in SfxLokHelper::testInPlaceComponentMouseEventHit (pViewShell=pViewShell@entry=0x337e52a0, nType=nType@entry=2, nX=nX@entry=15405, nY=nY@entry=4089, nCount=nCount@entry=1, nButtons=nButtons@entry=0, nModifier=0, fScaleX=0.10000000000000001, fScaleY=0.10000000000000001, bNegativeX=false) at libreoffice/include/rtl/ref.hxx:69 #16 0x00007fa91dba1e0e in ScModelObj::postMouseEvent (this=0x4593d10, nType=2, nX=15405, nY=4089, nCount=1, nButtons=0, nModifier=0) at libreoffice/sc/source/ui/unoobj/docuno.cxx:799 #17 0x00007fa92e39567f in doc_postMouseEvent (pThis=0x334b8290, nType=2, nX=15405, nY=4089, nCount=1, nButtons=0, nModifier=0) at libreoffice/desktop/source/lib/init.cxx:5597 #18 0x0000000000578631 in lok::Document::postMouseEvent (nModifier=0, nButtons=0, nCount=1, nY=<optimized out>, nX=<optimized out>, nType=<optimized out>, this=<optimized out>) at libreoffice/include/LibreOfficeKit/LibreOfficeKit.hxx:297 #19 ChildSession::mouseEvent (this=this@entry=0x317e3cf0, tokens=..., target=target@entry=LokEventTargetEnum::Document) at kit/ChildSession.cpp:1906 #20 0x0000000000588485 in ChildSession::_handleInput (this=<optimized out>, buffer=<optimized out>, length=<optimized out>) at kit/ChildSession.cpp:634 Change-Id: Ic67c8b7c4553853d0ab36dd448642564b6b6fb69 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173922 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> (cherry picked from commit 6f53881) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174022 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> (cherry picked from commit 406aaa3) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174023 (cherry picked from commit d7f677f)
At least with one ASan/UBSan setup of mine using LODE's Clang 12.0.1, ./autogen.sh would occasionally detect -std=gnu11 as the required CC "option to enable C11 features" (which would in turn cause building external/firebird to fail oddly; an issue worth investigations of its own), because Clang would occasionally crash with a SEGV on the corresponding configure test program's first invocation (without -std=gnu11) when invoked with -O2 (and happen to succeed on second invocation with -std=gnu11, so configure thinks that's needed), see below for a relevant config.log excerpt. When CC/CXX are already set (as is the case in this scenario), we could arguably skip the AC_PROG_CC/CXX checks entirely (and thus avoid configure potentially adding -std=gnu11 to CC), but at least AC_PROG_CC also internally sets the GCC shell var, which we use in configure.ac. So better be conservative and just avoid -O2 during AC_PROG_CC/CXX (whatever the autoconf motivation to include it in the first place). > configure:8165: checking for /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=local-bounds -fsanitize-blacklist=/home/sberg/lo0/core/sanitize-ubsan-excludelist option to enable C11 features > configure:8180: /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=local-bounds -fsanitize-blacklist=/home/sberg/lo0/core/sanitize-ubsan-excludelist -c -g -O2 conftest.c >&5 > PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script. > Stack dump: > 0. Program arguments: /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=local-bounds -fsanitize-blacklist=/home/sberg/lo0/core/sanitize-ubsan-excludelist -c -g -O2 conftest.c > 1. <eof> parser at end of file > 2. Code generation > #0 0x000055f3a890caf2 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1c3eaf2) > #1 0x000055f3a890a734 llvm::sys::RunSignalHandlers() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1c3c734) > #2 0x000055f3a887b998 CrashRecoverySignalHandler(int) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1bad998) > #3 0x00007f750d24e520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520) > #4 0x000055f3a93f9cd4 llvm::DIE::getUnitDie() const (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x272bcd4) > #5 0x000055f3a9404574 llvm::DwarfDebug::finishEntityDefinitions() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2736574) > #6 0x000055f3a941df99 llvm::DwarfDebug::finalizeModuleInfo() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x274ff99) > #7 0x000055f3a9421128 llvm::DwarfDebug::endModule() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2753128) > #8 0x000055f3a93f1219 llvm::AsmPrinter::doFinalization(llvm::Module&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2723219) > #9 0x000055f3a82478f5 llvm::FPPassManager::doFinalization(llvm::Module&) (.localalias) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x15798f5) > #10 0x000055f3a8253900 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1585900) > #11 0x000055f3a8bb57d3 (anonymous namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (.constprop.0) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1ee77d3) > #12 0x000055f3a8bb76ea clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1ee96ea) > #13 0x000055f3a9825876 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2b57876) > #14 0x000055f3aa35c549 clang::ParseAST(clang::Sema&, bool, bool) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x368e549) > #15 0x000055f3a91ef2d9 clang::FrontendAction::Execute() (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x25212d9) > #16 0x000055f3a91903a3 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x24c23a3) > #17 0x000055f3a92a2fd8 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x25d4fd8) > #18 0x000055f3a7798815 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0xaca815) > #19 0x000055f3a77961a7 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0xac81a7) > #20 0x000055f3a9039689 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const::'lambda'()>(long) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x236b689) > #21 0x000055f3a887baa7 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x1badaa7) > #22 0x000055f3a903a802 clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const (.part.0) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x236c802) > #23 0x000055f3a900fbec clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2341bec) > #24 0x000055f3a9010679 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x2342679) > #25 0x000055f3a901e8f1 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0x23508f1) > #26 0x000055f3a7717e6f main (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0xa49e6f) > #27 0x00007f750d235d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90) > #28 0x00007f750d235e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40) > #29 0x000055f3a7795b55 _start (/home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang+0xac7b55) > clang-12: error: clang frontend command failed with exit code 139 (use -v to see invocation) > clang version 12.0.1 (https://github.com/llvm/llvm-project.git fed41342a82f5a3a9201819a82bf7a48313e296b) > Target: x86_64-unknown-linux-gnu > Thread model: posix > InstalledDir: /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin > clang-12: note: diagnostic msg: > ******************** > > PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT: > Preprocessed source(s) and associated run script(s) are located at: > clang-12: note: diagnostic msg: /tmp/conftest-968380.c > clang-12: note: diagnostic msg: /tmp/conftest-968380.sh > clang-12: note: diagnostic msg: > > ******************** > configure:8180: $? = 139 > configure: failed program was: > | /* confdefs.h */ > | #define PACKAGE_NAME "LibreOffice" > | #define PACKAGE_TARNAME "libreoffice" > | #define PACKAGE_VERSION "24.8.0.0.alpha0+" > | #define PACKAGE_STRING "LibreOffice 24.8.0.0.alpha0+" > | #define PACKAGE_BUGREPORT "" > | #define PACKAGE_URL "http://documentfoundation.org/" > | #define LIBO_VERSION_MAJOR 24 > | #define LIBO_VERSION_MINOR 8 > | #define LIBO_VERSION_MICRO 0 > | #define LIBO_VERSION_PATCH 0 > | #define LIBO_THIS_YEAR 2024 > | #define SRCDIR "/home/sberg/lo0/core" > | #define SRC_ROOT "/home/sberg/lo0/core" > | #define BUILDDIR "/home/sberg/lo0/core" > | #define USE_HEADLESS_CODE 1 > | #define ENABLE_HEADLESS 1 > | /* end confdefs.h. */ > | > | /* Does the compiler advertise C89 conformance? > | Do not test the value of __STDC__, because some compilers set it to 0 > | while being otherwise adequately conformant. */ > | #if !defined __STDC__ > | # error "Compiler does not advertise C89 conformance" > | #endif > | > | #include <stddef.h> > | #include <stdarg.h> > | struct stat; > | /* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ > | struct buf { int x; }; > | struct buf * (*rcsopen) (struct buf *, struct stat *, int); > | static char *e (p, i) > | char **p; > | int i; > | { > | return p[i]; > | } > | static char *f (char * (*g) (char **, int), char **p, ...) > | { > | char *s; > | va_list v; > | va_start (v,p); > | s = g (p, va_arg (v,int)); > | va_end (v); > | return s; > | } > | > | /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has > | function prototypes and stuff, but not \xHH hex character constants. > | These do not provoke an error unfortunately, instead are silently treated > | as an "x". The following induces an error, until -std is added to get > | proper ANSI mode. Curiously \x00 != x always comes out true, for an > | array size at least. It is necessary to write \x00 == 0 to get something > | that is true only with -std. */ > | int osf4_cc_array ['\x00' == 0 ? 1 : -1]; > | > | /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters > | inside strings and character constants. */ > | #define FOO(x) 'x' > | int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; > | > | int test (int i, double x); > | struct s1 {int (*f) (int a);}; > | struct s2 {int (*f) (double a);}; > | int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), > | int, int); > | > | // Does the compiler advertise C99 conformance? > | #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L > | # error "Compiler does not advertise C99 conformance" > | #endif > | > | #include <stdbool.h> > | extern int puts (const char *); > | extern int printf (const char *, ...); > | extern int dprintf (int, const char *, ...); > | extern void *malloc (size_t); > | > | // Check varargs macros. These examples are taken from C99 6.10.3.5. > | // dprintf is used instead of fprintf to avoid needing to declare > | // FILE and stderr. > | #define debug(...) dprintf (2, __VA_ARGS__) > | #define showlist(...) puts (#__VA_ARGS__) > | #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) > | static void > | test_varargs_macros (void) > | { > | int x = 1234; > | int y = 5678; > | debug ("Flag"); > | debug ("X = %d\n", x); > | showlist (The first, second, and third items.); > | report (x>y, "x is %d but y is %d", x, y); > | } > | > | // Check long long types. > | #define BIG64 18446744073709551615ull > | #define BIG32 4294967295ul > | #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) > | #if !BIG_OK > | #error "your preprocessor is broken" > | #endif > | #if BIG_OK > | #else > | #error "your preprocessor is broken" > | #endif > | static long long int bignum = -9223372036854775807LL; > | static unsigned long long int ubignum = BIG64; > | > | struct incomplete_array > | { > | int datasize; > | double data[]; > | }; > | > | struct named_init { > | int number; > | const wchar_t *name; > | double average; > | }; > | > | typedef const char *ccp; > | > | static inline int > | test_restrict (ccp restrict text) > | { > | // See if C++-style comments work. > | // Iterate through items via the restricted pointer. > | // Also check for declarations in for loops. > | for (unsigned int i = 0; *(text+i) != '\0'; ++i) > | continue; > | return 0; > | } > | > | // Check varargs and va_copy. > | static bool > | test_varargs (const char *format, ...) > | { > | va_list args; > | va_start (args, format); > | va_list args_copy; > | va_copy (args_copy, args); > | > | const char *str = ""; > | int number = 0; > | float fnumber = 0; > | > | while (*format) > | { > | switch (*format++) > | { > | case 's': // string > | str = va_arg (args_copy, const char *); > | break; > | case 'd': // int > | number = va_arg (args_copy, int); > | break; > | case 'f': // float > | fnumber = va_arg (args_copy, double); > | break; > | default: > | break; > | } > | } > | va_end (args_copy); > | va_end (args); > | > | return *str && number && fnumber; > | } > | > | > | // Does the compiler advertise C11 conformance? > | #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L > | # error "Compiler does not advertise C11 conformance" > | #endif > | > | // Check _Alignas. > | char _Alignas (double) aligned_as_double; > | char _Alignas (0) no_special_alignment; > | extern char aligned_as_int; > | char _Alignas (0) _Alignas (int) aligned_as_int; > | > | // Check _Alignof. > | enum > | { > | int_alignment = _Alignof (int), > | int_array_alignment = _Alignof (int[100]), > | char_alignment = _Alignof (char) > | }; > | _Static_assert (0 < -_Alignof (int), "_Alignof is signed"); > | > | // Check _Noreturn. > | int _Noreturn does_not_return (void) { for (;;) continue; } > | > | // Check _Static_assert. > | struct test_static_assert > | { > | int x; > | _Static_assert (sizeof (int) <= sizeof (long int), > | "_Static_assert does not work in struct"); > | long int y; > | }; > | > | // Check UTF-8 literals. > | #define u8 syntax error! > | char const utf8_literal[] = u8"happens to be ASCII" "another string"; > | > | // Check duplicate typedefs. > | typedef long *long_ptr; > | typedef long int *long_ptr; > | typedef long_ptr long_ptr; > | > | // Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. > | struct anonymous > | { > | union { > | struct { int i; int j; }; > | struct { int k; long int l; } w; > | }; > | int m; > | } v1; > | > | > | int > | main (int argc, char **argv) > | { > | int ok = 0; > | > | ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); > | > | > | // Check bool. > | _Bool success = false; > | success |= (argc != 0); > | > | // Check restrict. > | if (test_restrict ("String literal") == 0) > | success = true; > | char *restrict newvar = "Another string"; > | > | // Check varargs. > | success &= test_varargs ("s, d' f .", "string", 65, 34.234); > | test_varargs_macros (); > | > | // Check flexible array members. > | struct incomplete_array *ia = > | malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); > | ia->datasize = 10; > | for (int i = 0; i < ia->datasize; ++i) > | ia->data[i] = i * 1.234; > | > | // Check named initializers. > | struct named_init ni = { > | .number = 34, > | .name = L"Test wide string", > | .average = 543.34343, > | }; > | > | ni.number = 58; > | > | int dynamic_array[ni.number]; > | dynamic_array[0] = argv[0][0]; > | dynamic_array[ni.number - 1] = 543; > | > | // work around unused variable warnings > | ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' > | || dynamic_array[ni.number - 1] != 543); > | > | > | _Static_assert ((offsetof (struct anonymous, i) > | == offsetof (struct anonymous, w.k)), > | "Anonymous union alignment botch"); > | v1.i = 2; > | v1.w.k = 5; > | ok |= v1.i != 5; > | > | return ok; > | } > | > configure:8180: /home/builder/lode/opt_private/clang-llvmorg-12.0.1/bin/clang -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=local-bounds -fsanitize-blacklist=/home/sberg/lo0/core/sanitize-ubsan-excludelist -std=gnu11 -c -g -O2 conftest.c >&5 > configure:8180: $? = 0 > configure:8201: result: -std=gnu11 Change-Id: I9122d0d853d0010155d57cb1d1d56f7c453d5208 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165904 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> (cherry picked from commit 42f6e89) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175755 Tested-by: allotropia jenkins <jenkins@allotropia.de>
No description provided.