Issue 117296 - lock order violation in fileaccess service implementation
Summary: lock order violation in fileaccess service implementation
Status: CLOSED FIXED
Alias: None
Product: General
Classification: Code
Component: code (show other issues)
Version: DEV300m101
Hardware: All All
: P3 Normal (vote)
Target Milestone: ---
Assignee: Stephan Bergmann
QA Contact: issues@framework
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-03-09 12:00 UTC by Stephan Bergmann
Modified: 2017-05-20 10:32 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description Stephan Bergmann 2011-03-09 12:00:19 UTC
At least on DEV300_m101 based CWS sb140, unxlngx6 non-pro, running soffice under valgrind --tool=helgrind with an org.openofice.test.OfficeConnection-based test that simply calls OfficeConnection.setUp() immediately followed by OfficeConnection.tearDown(), valgrind reports

> Thread #1: lock order "0xE964910 before 0x5248160" violated
>   at 0x4C2BC62: pthread_mutex_lock (valgrind-3.6.1/helgrind/hg_intercepts.c:496)
>   by 0x4E61713: osl_acquireMutex (ooo/sal/osl/unx/mutex.c:129)
>   by 0x7009A2B: osl::Mutex::acquire() (unxlngx6/inc/osl/mutex.hxx:66)
>   by 0x7009A58: osl::Guard<osl::Mutex>::Guard(osl::Mutex*) (unxlngx6/inc/osl/mutex.hxx:145)
>   by 0x700CAE1: typelib_static_sequence_type_init (ooo/cppu/source/typelib/static_types.cxx:343)
>   by 0x1D31DDC9: com::sun::star::uno::Type const& cppu::getTypeFavourUnsigned<rtl::OUString>(com::sun::star::uno::Sequence<rtl::OUString> const*) (unxlngx6/inc/com/sun/star/uno/Sequence.hxx:228)
>   by 0x1D31E0F8: com::sun::star::uno::Sequence<rtl::OUString>::Sequence(int) (unxlngx6/inc/com/sun/star/uno/Sequence.hxx:99)
>   by 0x1D31671D: io_FileAccess::FileAccess_getSupportedServiceNames() (ooo/fileaccess/source/FileAccess.cxx:894)
>   by 0x1D316860: component_getFactory (ooo/fileaccess/source/FileAccess.cxx:928)
>   by 0x6D8E59A: s_getFactory (ooo/cppuhelper/source/shlib.cxx:347)
>   by 0x702FAC6: s_environment_invoke_v(_uno_Environment*, _uno_Environment*, void (*)(__va_list_tag (*) [1]), __va_list_tag (*) [1]) (ooo/cppu/source/uno/EnvStack.cxx:292)
>   by 0x702FB58: uno_Environment_invoke_v (ooo/cppu/source/uno/EnvStack.cxx:311)
>   by 0x6D8B1DF: com::sun::star::uno::Environment::invoke(void (*)(__va_list_tag (*) [1]), ...) const (unxlngx6/inc/uno/environment.hxx:244)
>   by 0x6D904E8: cppu::loadSharedLibComponentFactory(rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, com::sun::star::uno::Reference<com::sun::star::registry::XRegistryKey> const&) (ooo/cppuhelper/source/shlib.cxx:419)
>   by 0x15EA6810: stoc_loader::DllComponentLoader::activate(rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::registry::XRegistryKey> const&) (ooo/stoc/source/loader/dllcomponentloader.cxx:227)
>   by 0x6D7D68C: cppu::ORegistryFactoryHelper::createModuleFactory() (ooo/cppuhelper/source/factory.cxx:900)
>   by 0x6D7DC9B: cppu::ORegistryFactoryHelper::createInstanceEveryTime(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (ooo/cppuhelper/source/factory.cxx:750)
>   by 0x6D7BCFC: cppu::OSingleFactoryHelper::createInstanceWithContext(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (ooo/cppuhelper/source/factory.cxx:215)
>   by 0x6D7C3FA: cppu::OFactoryComponentHelper::createInstanceWithContext(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (ooo/cppuhelper/source/factory.cxx:499)
>   by 0x15E66D45: stoc_smgr::OServiceManager::createInstanceWithContext(rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (ooo/stoc/source/servicemanager/servicemanager.cxx:1250)
>   by 0x1C57E541: dp_log::ProgressLogImpl::ProgressLogImpl(com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (ooo/desktop/source/deployment/dp_log.cxx:110)
>   by 0x1C581BD4: cppu::ImplInheritanceHelper1<dp_log::ProgressLogImpl, com::sun::star::lang::XServiceInfo>::ImplInheritanceHelper1<com::sun::star::uno::Sequence<com::sun::star::uno::Any>, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> >(com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (unxlngx6/inc/cppuhelper/implbase1.hxx:182)
>   by 0x1C581C76: comphelper::service_decl::detail::OwnServiceImpl<cppu::ImplInheritanceHelper1<dp_log::ProgressLogImpl, com::sun::star::lang::XServiceInfo> >::OwnServiceImpl(comphelper::service_decl::ServiceDecl const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (unxlngx6/inc/comphelper/servicedecl.hxx:179)
>   by 0x1C581D24: comphelper::service_decl::detail::ServiceImpl<dp_log::ProgressLogImpl>::ServiceImpl(comphelper::service_decl::ServiceDecl const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (unxlngx6/inc/comphelper/servicedecl.hxx:212)
>   by 0x1C581DD9: comphelper::service_decl::detail::CreateFunc<comphelper::service_decl::detail::ServiceImpl<dp_log::ProgressLogImpl>, comphelper::service_decl::detail::PostProcessDefault<comphelper::service_decl::detail::ServiceImpl<dp_log::ProgressLogImpl> >, comphelper::service_decl::with_args<true> >::operator()(comphelper::service_decl::ServiceDecl const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) const (unxlngx6/inc/comphelper/servicedecl.hxx:260)
>   by 0x1C581E54: boost::detail::function::function_obj_invoker3<comphelper::service_decl::detail::CreateFunc<comphelper::service_decl::detail::ServiceImpl<dp_log::ProgressLogImpl>, comphelper::service_decl::detail::PostProcessDefault<comphelper::service_decl::detail::ServiceImpl<dp_log::ProgressLogImpl> >, comphelper::service_decl::with_args<true> >, com::sun::star::uno::Reference<com::sun::star::uno::XInterface>, comphelper::service_decl::ServiceDecl const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&>::invoke(boost::detail::function::function_buffer&, comphelper::service_decl::ServiceDecl const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (unxlngx6/inc/boost/function/function_template.hpp:131)
>   by 0x6A8691A: boost::function3<com::sun::star::uno::Reference<com::sun::star::uno::XInterface>, comphelper::service_decl::ServiceDecl const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&>::operator()(comphelper::service_decl::ServiceDecl const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) const (unxlngx6/inc/boost/function/function_template.hpp:989)
>   by 0x6A8611D: comphelper::service_decl::ServiceDecl::Factory::createInstanceWithArgumentsAndContext(com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (ooo/comphelper/source/misc/servicedecl.cxx:116)
>   by 0x6D7D9AE: cppu::ORegistryFactoryHelper::createInstanceWithArgumentsAndContext(com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (ooo/cppuhelper/source/factory.cxx:825)
>   by 0x15E6682D: stoc_smgr::OServiceManager::createInstanceWithArgumentsAndContext(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) (ooo/stoc/source/servicemanager/servicemanager.cxx:1314)
>   by 0x1C5949FB: dp_manager::PackageManagerImpl::create(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, rtl::OUString const&) (ooo/desktop/source/deployment/manager/dp_manager.cxx:454)
>   by 0x1C59B7E7: dp_manager::factory::PackageManagerFactoryImpl::getPackageManager(rtl::OUString const&) (ooo/desktop/source/deployment/manager/dp_managerfac.cxx:165)
>   by 0x1C5A5D6F: dp_manager::ExtensionManager::getSharedRepository() (ooo/desktop/source/deployment/manager/dp_extensionmanager.cxx:206)
>   by 0x1C5B0340: dp_manager::ExtensionManager::synchronize(com::sun::star::uno::Reference<com::sun::star::task::XAbortChannel> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) (ooo/desktop/source/deployment/manager/dp_extensionmanager.cxx:1352)
>   by 0x7267187: dp_misc::syncRepositories(com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) (ooo/desktop/source/deployment/misc/dp_misc.cxx:611)
>   by 0x528DF3A: desktop::Desktop::SynchronizeExtensionRepositories() (ooo/desktop/source/app/check_ext_deps.cxx:430)
>   by 0x527DE27: desktop::Desktop::Main() (ooo/desktop/source/app/app.cxx:1727)
>   by 0x9961F47: ImplSVMain() (ooo/vcl/source/app/svmain.cxx:189)
>   by 0x9962082: SVMain() (ooo/vcl/source/app/svmain.cxx:226)
>   by 0x52A89CF: soffice_main (ooo/desktop/source/app/sofficemain.cxx:49)
>   by 0x401192: sal_main (ooo/desktop/source/app/main.c:35)
>   by 0x401177: main (ooo/desktop/source/app/main.c:34)
>  Required order was established by acquisition of lock at 0xE964910
>   at 0x4C2BC62: pthread_mutex_lock (valgrind-3.6.1/helgrind/hg_intercepts.c:496)
>   by 0x4E61713: osl_acquireMutex (ooo/sal/osl/unx/mutex.c:129)
>   by 0x7009A2B: osl::Mutex::acquire() (unxlngx6/inc/osl/mutex.hxx:66)
>   by 0x7009A58: osl::Guard<osl::Mutex>::Guard(osl::Mutex*) (unxlngx6/inc/osl/mutex.hxx:145)
>   by 0x700CD4A: typelib_static_type_getByTypeClass (ooo/cppu/source/typelib/static_types.cxx:162)
>   by 0x15E5406C: cppu::detail::getTypeFromTypeClass(_typelib_TypeClass) (unxlngx6/inc/cppu/unotype.hxx:111)
>   by 0x15E5408D: cppu::detail::cppu_detail_getUnoType(rtl::OUString const*) (unxlngx6/inc/cppu/unotype.hxx:194)
>   by 0x15E5409D: cppu::UnoType<rtl::OUString>::get() (unxlngx6/inc/cppu/unotype.hxx:269)
>   by 0x15E5C06A: com::sun::star::uno::Type const& cppu::getTypeFavourUnsigned<rtl::OUString>(rtl::OUString const*) (unxlngx6/inc/cppu/unotype.hxx:290)
>   by 0x15E5C092: com::sun::star::uno::Type const& cppu::getTypeFavourUnsigned<rtl::OUString>(com::sun::star::uno::Sequence<rtl::OUString> const*) (unxlngx6/inc/com/sun/star/uno/Sequence.hxx:228)
>   by 0x15E5C0D4: com::sun::star::uno::Sequence<rtl::OUString>::Sequence(rtl::OUString const*, int) (unxlngx6/inc/com/sun/star/uno/Sequence.hxx:82)
>   by 0x15E5F9C6: __static_initialization_and_destruction_0(int, int) (ooo/stoc/source/security/file_policy.cxx:70)
>   by 0x15E5FC06: global constructors keyed to _ZN8stoc_sec10FilePolicyC2ERKN3com3sun4star3uno9ReferenceINS4_17XComponentContextEEE (ooo/stoc/source/security/file_policy.cxx:604)
>   by 0x15EDAD21: ??? (in unxlngx6/installation/opt/openoffice.org/ure/lib/bootstrap.uno.so)
>  followed by a later acquisition of lock at 0x5248160
>   at 0x4C2BC62: pthread_mutex_lock (valgrind-3.6.1/helgrind/hg_intercepts.c:496)
>   by 0x4E61713: osl_acquireMutex (ooo/sal/osl/unx/mutex.c:129)
>   by 0x7009A2B: osl::Mutex::acquire() (unxlngx6/inc/osl/mutex.hxx:66)
>   by 0x7009A58: osl::Guard<osl::Mutex>::Guard(osl::Mutex*) (unxlngx6/inc/osl/mutex.hxx:145)
>   by 0x7009C4C: TypeDescriptor_Init_Impl::getMutex() (ooo/cppu/source/typelib/typelib.cxx:237)
>   by 0x70015F6: typelib_typedescriptionreference_new (ooo/cppu/source/typelib/typelib.cxx:2346)
>   by 0x700D752: typelib_static_type_getByTypeClass (ooo/cppu/source/typelib/static_types.cxx:305)
>   by 0x15E5406C: cppu::detail::getTypeFromTypeClass(_typelib_TypeClass) (unxlngx6/inc/cppu/unotype.hxx:111)
>   by 0x15E5408D: cppu::detail::cppu_detail_getUnoType(rtl::OUString const*) (unxlngx6/inc/cppu/unotype.hxx:194)
>   by 0x15E5409D: cppu::UnoType<rtl::OUString>::get() (unxlngx6/inc/cppu/unotype.hxx:269)
>   by 0x15E5C06A: com::sun::star::uno::Type const& cppu::getTypeFavourUnsigned<rtl::OUString>(rtl::OUString const*) (unxlngx6/inc/cppu/unotype.hxx:290)
>   by 0x15E5C092: com::sun::star::uno::Type const& cppu::getTypeFavourUnsigned<rtl::OUString>(com::sun::star::uno::Sequence<rtl::OUString> const*) (unxlngx6/inc/com/sun/star/uno/Sequence.hxx:228)
>   by 0x15E5C0D4: com::sun::star::uno::Sequence<rtl::OUString>::Sequence(rtl::OUString const*, int) (unxlngx6/inc/com/sun/star/uno/Sequence.hxx:82)
>   by 0x15E5F9C6: __static_initialization_and_destruction_0(int, int) (ooo/stoc/source/security/file_policy.cxx:70)
>   by 0x15E5FC06: global constructors keyed to _ZN8stoc_sec10FilePolicyC2ERKN3com3sun4star3uno9ReferenceINS4_17XComponentContextEEE (ooo/stoc/source/security/file_policy.cxx:604)
>   by 0x15EDAD21: ??? (in unxlngx6/installation/opt/openoffice.org/ure/lib/bootstrap.uno.so)
Comment 1 Stephan Bergmann 2011-03-09 12:08:26 UTC
fixed as <http://hg.services.openoffice.org/cws/sb140/rev/ce33f84c0f23>
Comment 2 Oliver-Rainer Wittmann 2012-06-13 12:28:11 UTC
getting rid of value "enhancement" for field "severity".
For enhancement the field "issue type" shall be used.