To comment on the following update, log in, then open the issue: http://www.openoffice.org/issues/show_bug.cgi?id=105283
User mt changed the following: What |Old value |New value ================================================================================ Ever confirmed| |1 -------------------------------------------------------------------------------- Status|UNCONFIRMED |NEW -------------------------------------------------------------------------------- ------- Additional comments from m...@openoffice.org Fri Oct 15 15:35:29 +0000 2010 ------- I was able to reproduce it this way: On a W2008R2 server, set all the (in my case existing as "allow" per default) "file and printer sharing" firewall rules to "block". To ease debugging, run "soffice \\myserver\myshare\myfile.odt" from command line, which should fail to open the file, then attach the debugger, then use command line again. This way, a break point in "osl_getDirectoryItem" will only be hit for exactly that file, and not for other configuration and UNO stuff. For PATHTYPE_FILE, there is a Win32 call FindFirstFile(...). This single call takes more than 30s for me! Waiting 30s is already bad, but we hit that break point 3 times: > sal3.dll!osl_getDirectoryItem(_rtl_uString * strFilePath=0x0914b1ec, > void * * pItem=0x014ae9b4) Line 3284 C++ sofficeapp.dll!desktop::GetURL_Impl(const String & rName={...}, const boost::optional<rtl::OUString> & cwdUrl={...}) Line 2631 + 0x4c bytes C++ sofficeapp.dll!desktop::DispatchWatcher::executeDispatchRequests(const _STL::vector<desktop::DispatchWatcher::DispatchRequest,_STL::allocator<desktop::DispatchWatcher::DispatchRequest> > & aDispatchRequestsList={...}, bool bNoTerminate=false) Line 198 + 0x2e > bytes C++ sofficeapp.dll!desktop::OfficeIPCThread::ExecuteCmdLineRequests(desktop::ProcessDocumentsRequest & aRequest={...}) Line 989 + 0x1a bytes C++ sofficeapp.dll!desktop::ProcessEventsClass_Impl::ProcessDocumentsEvent(desktop::ProcessEventsClass_Impl * __formal=0x00000000, void * pEvent=0x08435a98) Line 281 + 0x9 bytes C++ > sal3.dll!osl_getDirectoryItem(_rtl_uString * strFilePath=0x08ec15f0, > void * * pItem=0x014ad7d8) Line 3284 C++ ucpfile1.dll!fileaccess::shell::getv(long CommandId=929, const rtl::OUString & aUnqPath={...}, const com::sun::star::uno::Sequence<com::sun::star::beans::Property> & properties={...}) Line 1068 + 0x28 bytes C++ ucpfile1.dll!fileaccess::BaseContent::getPropertyValues(long nMyCommandIdentifier=929, const com::sun::star::uno::Sequence<com::sun::star::beans::Property> & PropertySet={...}) Line 878 + 0x1f bytes C++ ucpfile1.dll!fileaccess::BaseContent::execute(const com::sun::star::ucb::Command & aCommand={...}, long CommandId=929, const com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> & Environment={...}) Line 386 + 0x1e bytes C++ ucbhelper4MSC.dll!ucbhelper::Content_Impl::executeCommand(const com::sun::star::ucb::Command & rCommand={...}) Line 1809 + 0x2c bytes C++ ucbhelper4MSC.dll!ucbhelper::Content::getPropertyValuesInterface(const com::sun::star::uno::Sequence<rtl::OUString> & rPropertyNames={...}) Line 686 + 0x53 bytes C++ ucbhelper4MSC.dll!ucbhelper::Content::getPropertyValues(const com::sun::star::uno::Sequence<rtl::OUString> & rPropertyNames={...}) Line 623 + 0x13 bytes C++ ucbhelper4MSC.dll!ucbhelper::Content::getPropertyValue(const rtl::OUString & rPropertyName={...}) Line 573 + 0x13 bytes C++ ucbhelper4MSC.dll!ucbhelper::Content::isDocument() Line 1557 + 0x31 bytes C++ ucbhelper4MSC.dll!ucbhelper::Content::openWriteableStream() Line 1240 + 0xb bytes C++ comphelp4MSC.dll!comphelper::MediaDescriptor::impl_openStreamWithURL(const rtl::OUString & sURL={...}, unsigned char bLockFile='') Line 820 + 0x10 bytes C++ comphelp4MSC.dll!comphelper::MediaDescriptor::impl_addInputStream(unsigned char bLockFile='') Line 569 + 0x14 bytes C++ comphelp4MSC.dll!comphelper::MediaDescriptor::addInputStreamOwnLock() Line 536 C++ filterconfig1.dll!filter::config::TypeDetection::impl_openStream(comphelper::MediaDescriptor & rDescriptor={...}) Line 1149 + 0x9 bytes C++ filterconfig1.dll!filter::config::TypeDetection::impl_askDetectService(const rtl::OUString & sDetectService={...}, comphelper::MediaDescriptor & rDescriptor={...}) Line 1003 C++ filterconfig1.dll!filter::config::TypeDetection::impl_detectTypeFlatAndDeep(comphelper::MediaDescriptor & rDescriptor={...}, const _STL::list<filter::config::FlatDetectionInfo,_STL::allocator<filter::config::FlatDetectionInfo> > & lFlatTypes={...}, unsigned char bAllowDeep='', comphelper::SequenceAsVector<rtl::OUString> & rUsedDetectors={...}, rtl::OUString & rLastChance={...}) Line 819 + 0x17 bytes C++ filterconfig1.dll!filter::config::TypeDetection::queryTypeByDescriptor(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & lDescriptor={...}, unsigned char bAllowDeep='') Line 185 + 0x27 bytes C++ fwkmi.dll!framework::LoadEnv::impl_detectTypeAndFilter() + 0x147 bytes C++ fwkmi.dll!framework::LoadEnv::startLoading() + 0x69 bytes C++ fwkmi.dll!framework::LoadDispatcher::impl_dispatch() + 0x16d bytes C++ fwkmi.dll!framework::LoadDispatcher::dispatchWithReturnValue() + 0x32 bytes C++ comphelp4MSC.dll!comphelper::SynchronousDispatch::dispatch(const com::sun::star::uno::Reference<com::sun::star::uno::XInterface> & xStartPoint={...}, const rtl::OUString & sURL={...}, const rtl::OUString & sTarget={...}, const long nFlags=0, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & lArguments={...}) Line 88 + 0x29 bytes C++ sofficeapp.dll!desktop::DispatchWatcher::executeDispatchRequests(const _STL::vector<desktop::DispatchWatcher::DispatchRequest,_STL::allocator<desktop::DispatchWatcher::DispatchRequest> > & aDispatchRequestsList={...}, bool bNoTerminate=false) Line 340 + 0x36 > bytes C++ sofficeapp.dll!desktop::OfficeIPCThread::ExecuteCmdLineRequests(desktop::ProcessDocumentsRequest & aRequest={...}) Line 989 + 0x1a bytes C++ > sal3.dll!osl_getDirectoryItem(_rtl_uString * strFilePath=0x08ec15f0, > void * * pItem=0x014ad224) Line 3284 C++ ucpfile1.dll!`anonymous namespace'::generateErrorArguments(const rtl::OUString & rPhysicalUrl={...}) Line 98 + 0x28 bytes C++ ucpfile1.dll!fileaccess::throw_handler(long errorCode=11, long minorCode=2, const com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> & xEnv={...}, const rtl::OUString & aUncPath={...}, fileaccess::BaseContent * pContent=0x08ecb648, bool isHandled=true) Line 395 + 0x6c bytes C++ ucpfile1.dll!fileaccess::TaskManager::endTask(long CommandId=929, const rtl::OUString & aUncPath={...}, fileaccess::BaseContent * pContent=0x08ecb648) Line 105 + 0x1e bytes C++ ucpfile1.dll!fileaccess::BaseContent::endTask(long CommandId=929) Line 1312 + 0x29 bytes C++ ucpfile1.dll!fileaccess::BaseContent::execute(const com::sun::star::ucb::Command & aCommand={...}, long CommandId=929, const com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> & Environment={...}) Line 446 + 0x10 bytes C++ ucbhelper4MSC.dll!ucbhelper::Content_Impl::executeCommand(const com::sun::star::ucb::Command & rCommand={...}) Line 1809 + 0x2c bytes C++ ucbhelper4MSC.dll!ucbhelper::Content::getPropertyValuesInterface(const com::sun::star::uno::Sequence<rtl::OUString> & rPropertyNames={...}) Line 686 + 0x53 bytes C++ ucbhelper4MSC.dll!ucbhelper::Content::getPropertyValues(const com::sun::star::uno::Sequence<rtl::OUString> & rPropertyNames={...}) Line 623 + 0x13 bytes C++ ucbhelper4MSC.dll!ucbhelper::Content::getPropertyValue(const rtl::OUString & rPropertyName={...}) Line 573 + 0x13 bytes C++ ucbhelper4MSC.dll!ucbhelper::Content::isDocument() Line 1557 + 0x31 bytes C++ ucbhelper4MSC.dll!ucbhelper::Content::openWriteableStream() Line 1240 + 0xb bytes C++ comphelp4MSC.dll!comphelper::MediaDescriptor::impl_openStreamWithURL(const rtl::OUString & sURL={...}, unsigned char bLockFile='') Line 820 + 0x10 bytes C++ comphelp4MSC.dll!comphelper::MediaDescriptor::impl_addInputStream(unsigned char bLockFile='') Line 569 + 0x14 bytes C++ comphelp4MSC.dll!comphelper::MediaDescriptor::addInputStreamOwnLock() Line 536 C++ filterconfig1.dll!filter::config::TypeDetection::impl_openStream(comphelper::MediaDescriptor & rDescriptor={...}) Line 1149 + 0x9 bytes C++ filterconfig1.dll!filter::config::TypeDetection::impl_askDetectService(const rtl::OUString & sDetectService={...}, comphelper::MediaDescriptor & rDescriptor={...}) Line 1003 C++ filterconfig1.dll!filter::config::TypeDetection::impl_detectTypeFlatAndDeep(comphelper::MediaDescriptor & rDescriptor={...}, const _STL::list<filter::config::FlatDetectionInfo,_STL::allocator<filter::config::FlatDetectionInfo> > & lFlatTypes={...}, unsigned char bAllowDeep='', comphelper::SequenceAsVector<rtl::OUString> & rUsedDetectors={...}, rtl::OUString & rLastChance={...}) Line 819 + 0x17 bytes C++ filterconfig1.dll!filter::config::TypeDetection::queryTypeByDescriptor(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & lDescriptor={...}, unsigned char bAllowDeep='') Line 185 + 0x27 bytes C++ fwkmi.dll!framework::LoadEnv::impl_detectTypeAndFilter() + 0x147 bytes C++ fwkmi.dll!framework::LoadEnv::startLoading() + 0x69 bytes C++ fwkmi.dll!framework::LoadDispatcher::impl_dispatch() + 0x16d bytes C++ fwkmi.dll!framework::LoadDispatcher::dispatchWithReturnValue() + 0x32 bytes C++ comphelp4MSC.dll!comphelper::SynchronousDispatch::dispatch(const com::sun::star::uno::Reference<com::sun::star::uno::XInterface> & xStartPoint={...}, const rtl::OUString & sURL={...}, const rtl::OUString & sTarget={...}, const long nFlags=0, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & lArguments={...}) Line 88 + 0x29 bytes C++ sofficeapp.dll!desktop::DispatchWatcher::executeDispatchRequests(const _STL::vector<desktop::DispatchWatcher::DispatchRequest,_STL::allocator<desktop::DispatchWatcher::DispatchRequest> > & aDispatchRequestsList={...}, bool bNoTerminate=false) Line 340 + 0x36 > bytes C++ sofficeapp.dll!desktop::OfficeIPCThread::ExecuteCmdLineRequests(desktop::ProcessDocumentsRequest & aRequest={...}) Line 989 + 0x1a bytes C++ So someone should try to figure out if we can reduce it to one call, which would save a lot of time. That one call will still take a while, but changing that would be more complicated - loading the document would need to be done from an other thread, to not block the main thread. Something we would like to have anyway, but I guess we still don't have it because it's not that easy. Some time, we really should start making use of the threading framework that we have introduced some time ago... --------------------------------------------------------------------- Please do not reply to this automatically generated notification from Issue Tracker. Please log onto the website and enter your comments. http://qa.openoffice.org/issue_handling/project_issues.html#notification --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@framework.openoffice.org For additional commands, e-mail: issues-h...@framework.openoffice.org --------------------------------------------------------------------- To unsubscribe, e-mail: allbugs-unsubscr...@openoffice.org For additional commands, e-mail: allbugs-h...@openoffice.org