Apache OpenOffice (AOO) Bugzilla – Issue 96751
OOo hangs on pasting html-content
Last modified: 2017-05-20 11:15:27 UTC
Repro: 1. Go to http://www.vokrugsveta.ru/telegraph/theory/802/ 2. Select All (Ctrl+A), Copy to clipboard. 3. Open Writer, new document. 4. Paste from clipboard (Ctrl+V) OOo hangs with 100% CPU load. Tested on Windows and Linux (OOo 3.0 and DEV300_m36).
MRU->ES: could you please have a look? The loop seems to occur during HTML import in Writer.
@MRU: could you also reproduce it? I can't on Vista (it doesn't hang). Maybe the usual need of proxy settings in the option? I'll have a try on XP...
MRU->ES: I experienced this on WinXP. Proxy settings "none", so problem is not there (of course I checked this first ;-) ).
@MBA: reproduced on WIn XP with any page from www.vokrugsveta.ru. I couldn't find out which content (flash elements?) lead to the loop.
Tested in DEV300_m47: no loop, but some synchronous access to http URLs, even graphics. Oliver, I thought that we never load graphics synchronously, but it seems that this is not true when we scroll through the document. What do you think? The "offending" code seems to be SwGrfNode::UpdateLinkWithInputStream().
Here's one stack that blocks: ntdll.dll!7c90eb94() [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] ntdll.dll!7c90e9c0() mswsock.dll!71a54033() mswsock.dll!71a55fa7() ws2help.dll!71aa150c() ws2_32.dll!71ab2e67() ucpdav1.dll!_ne_sock_exit() + 0x8c bytes C ucpdav1.dll!_ne_sock_peek() + 0x5d bytes C ucpdav1.dll!_ne_sock_peek() + 0x9f bytes C ucpdav1.dll!_ne_sock_readline() + 0x5e bytes C ucpdav1.dll!_ne_read_response_block() + 0x156 bytes C ucpdav1.dll!_ne_read_response_block() + 0x33b bytes C ucpdav1.dll!_ne_begin_request() + 0x3d bytes C ucpdav1.dll!_ne_request_dispatch() + 0xb bytes C ucpdav1.dll!_ne_propfind_set_private() + 0x7f bytes C ucpdav1.dll!_ne_propfind_named() + 0x2c bytes C ucpdav1.dll!_ne_simple_propfind() + 0x2d bytes C ucpdav1.dll!webdav_ucp::NeonPropFindRequest::NeonPropFindRequest() + 0x7f bytes C++ ucpdav1.dll!webdav_ucp::NeonSession::PROPFIND() + 0x6c bytes C++ ucpdav1.dll!webdav_ucp::DAVResourceAccess::PROPFIND() + 0xdd bytes C++ ucpdav1.dll!webdav_ucp::Content::getResourceType() + 0x1c8 bytes C++ ucpdav1.dll!webdav_ucp::Content::getPropertyValues() + 0x1b8 bytes C++ ucpdav1.dll!webdav_ucp::Content::execute() + 0x115 bytes C++ ucbhelper4MSC.dll!ucbhelper::Content_Impl::executeCommand() + 0x51 bytes C++ ucbhelper4MSC.dll!ucbhelper::Content::getPropertyValuesInterface() + 0xbf bytes C++ ucbhelper4MSC.dll!ucbhelper::Content::getPropertyValues() + 0x21 bytes C++ ucbhelper4MSC.dll!ucbhelper::Content::getPropertyValue() + 0x44 bytes C++ comphelp4MSC.dll!comphelper::MediaDescriptor::impl_openStreamWithURL() + 0x534 bytes C++ comphelp4MSC.dll!comphelper::MediaDescriptor::impl_addInputStream() + 0x1bf bytes C++ comphelp4MSC.dll!comphelper::MediaDescriptor::addInputStream() + 0x7 bytes C++ sfxmi.dll!SfxMedium::GetMedium_Impl() + 0x3ce bytes C++ sfxmi.dll!SfxMedium::GetInStream() + 0x9d bytes C++ sfxmi.dll!SfxMedium::DownLoad() + 0x17 bytes C++ frmmi.dll!frm::OClickableImageBaseModel::SetURL() + 0x363 bytes C++ frmmi.dll!frm::OClickableImageBaseModel::_propertyChanged() + 0x41 bytes C++ comphelp4MSC.dll!comphelper::OPropertyChangeMultiplexer::propertyChange() + 0x1f bytes C++ cppuhelper3MSC.dll!cppu::OPropertySetHelper::fire() + 0x1f8 bytes C++ cppuhelper3MSC.dll!cppu::OPropertySetHelper::setFastPropertyValues() + 0x218 bytes C++ tkmi.dll!UnoControlModel::setFastPropertyValue() + 0x18d bytes C++ comphelp4MSC.dll!comphelper::OPropertySetAggregationHelper::setFastPropertyValue() + 0x5a bytes C++ cppuhelper3MSC.dll!cppu::OPropertySetHelper::setPropertyValue() + 0x26 bytes C++ > swmi.dll!SwHTMLParser::InsertInput() Line 1967 + 0x58 bytes C++ swmi.dll!SwHTMLParser::NextToken(int nToken=271) Line 1933 C++ svtmi.dll!HTMLParser::Continue(int nToken=271) Line 357 C++ swmi.dll!SwHTMLParser::Continue(int nToken=0) Line 655 C++ svtmi.dll!HTMLParser::CallParser() Line 338 C++ swmi.dll!SwHTMLParser::CallParser() Line 582 + 0xc bytes C++ swmi.dll!HTMLReader::Read(SwDoc & rDoc={...}, const String & rBaseURL={...}, SwPaM & rPam={...}, const String & rName={...}) Line 255 + 0x1c bytes C++ swmi.dll!SwReader::Read(const Reader & rOptions={...}) Line 193 + 0x2e bytes C++ swmi.dll!SwTransferable::_PasteFileContent() + 0x1c3 bytes C++ swmi.dll!SwTransferable::PasteData() + 0x466 bytes C++ swmi.dll!SwTransferable::Paste() + 0x141 bytes C++ swmi.dll!SwBaseShell::ExecClpbrd() + 0x29e bytes C++ swmi.dll!SfxStubSwBaseShellExecClpbrd() + 0xe bytes C++ sfxmi.dll!SfxDispatcher::Call_Impl() + 0x433 bytes C++ sfxmi.dll!SfxDispatcher::_Execute() + 0x23b bytes C++ sfxmi.dll!SfxBindings::Execute_Impl() + 0x4d2 bytes C++ sfxmi.dll!SfxDispatchController_Impl::dispatch() + 0xbee bytes C++ sfxmi.dll!SfxOfficeDispatch::dispatch() + 0x123 bytes C++ svtmi.dll!svt::AsyncAccelExec::impl_ts_asyncCallback() + 0x35 bytes C++ svtmi.dll!svt::AsyncAccelExec::LinkStubimpl_ts_asyncCallback() + 0xe bytes C++ tlmi.dll!Link::Call() + 0x11 bytes C++ vclmi.dll!vcl::EventPoster::DoEvent_Impl() + 0x12 bytes C++ vclmi.dll!vcl::EventPoster::LinkStubDoEvent_Impl() + 0xe bytes C++ tlmi.dll!Link::Call() + 0x11 bytes C++ vclmi.dll!ImplHandleClose() + 0x156 bytes C++ vclmi.dll!ImplWindowFrameProc() + 0x2e2 bytes C++ vclmi.dll!SalFrame::CallCallback() + 0x16 bytes C++ vclmi.dll!ImplHandleSalObjSysCharMsg() + 0x504 bytes C++ vclmi.dll!SalFrameWndProc() + 0x748 bytes C++ vclmi.dll!SalFrameWndProcW() + 0x30 bytes C++ user32.dll!77d48709() user32.dll!77d487eb() user32.dll!77d70494() user32.dll!77d493df() user32.dll!77d70494() user32.dll!77d489e8() vclmi.dll!ImplDispatchMessage() + 0x15 bytes C++ vclmi.dll!WinSalInstance::AcquireYieldMutex() + 0x36 bytes C++ vclmi.dll!ImplSalYield() + 0x47 bytes C++ vclmi.dll!WinSalInstance::Yield() + 0x9f bytes C++ vclmi.dll!Application::Yield() + 0x3d bytes C++ vclmi.dll!Application::Execute() + 0x24 bytes C++ sofficeapp.dll!desktop::Desktop::Main() + 0x10ce bytes C++ vclmi.dll!ImplSVMain() + 0x64 bytes C++ vclmi.dll!SVMain() + 0x1c bytes C++ sofficeapp.dll!_soffice_main() + 0x81 bytes C++ soffice.bin!_main() + 0x16 bytes C soffice.bin!_WinMain@16() + 0x15 bytes C soffice.bin!__tmainCRTStartup() Line 574 + 0x35 bytes C soffice.bin!WinMainCRTStartup() Line 399 C kernel32.dll!7c816d4f() kernel32.dll!7c8399f3() Seems that the form model needs a fix.
Here's another one: ntdll.dll!7c90eb94() [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] ntdll.dll!7c90e9ab() kernel32.dll!7c8094f2() user32.dll!77d4d02e() user32.dll!77d4bcad() sal3.dll!_osl_waitCondition() + 0x5c bytes C salhelper3MSC.dll!salhelper::ConditionWaiter::ConditionWaiter() + 0x32 bytes C++ utlmi.dll!utl::Moderator::getResult() + 0x39 bytes C++ utlmi.dll!utl::Moderator::handle() + 0x49c bytes C++ utlmi.dll!utl::UcbLockBytes::CreateLockBytes() + 0x2db bytes C++ utlmi.dll!utl::UcbStreamHelper::CreateStream() + 0x450 bytes C++ utlmi.dll!utl::UcbStreamHelper::CreateStream() + 0x2d bytes C++ gomi.dll!unographic::GraphicProvider::queryGraphic() + 0x33e bytes C++ tkmi.dll!ImageProducerControlModel::getGraphicFromURL_nothrow() + 0x1db bytes C++ tkmi.dll!ImageProducerControlModel::setFastPropertyValue_NoBroadcast() + 0x28e bytes C++ tkmi.dll!UnoControlImageControlModel::setFastPropertyValue_NoBroadcast() + 0x1b bytes C++ cppuhelper3MSC.dll!cppu::OPropertySetHelper::setFastPropertyValues() + 0x1f2 bytes C++ tkmi.dll!UnoControlModel::setFastPropertyValue() + 0x18d bytes C++ comphelp4MSC.dll!comphelper::OPropertySetAggregationHelper::setFastPropertyValue() + 0x5a bytes C++ cppuhelper3MSC.dll!cppu::OPropertySetHelper::setPropertyValue() + 0x26 bytes C++ > swmi.dll!SwHTMLParser::InsertInput() Line 1967 + 0x58 bytes C++ swmi.dll!SwHTMLParser::NextToken(int nToken=271) Line 1933 C++ svtmi.dll!HTMLParser::Continue(int nToken=271) Line 357 C++ swmi.dll!SwHTMLParser::Continue(int nToken=0) Line 655 C++ svtmi.dll!HTMLParser::CallParser() Line 338 C++ swmi.dll!SwHTMLParser::CallParser() Line 582 + 0xc bytes C++ swmi.dll!HTMLReader::Read(SwDoc & rDoc={...}, const String & rBaseURL={...}, SwPaM & rPam={...}, const String & rName={...}) Line 255 + 0x1c bytes C++ swmi.dll!SwReader::Read(const Reader & rOptions={...}) Line 193 + 0x2e bytes C++ swmi.dll!SwTransferable::_PasteFileContent() + 0x1c3 bytes C++ swmi.dll!SwTransferable::PasteData() + 0x466 bytes C++ swmi.dll!SwTransferable::Paste() + 0x141 bytes C++ swmi.dll!SwBaseShell::ExecClpbrd() + 0x29e bytes C++ swmi.dll!SfxStubSwBaseShellExecClpbrd() + 0xe bytes C++ sfxmi.dll!SfxDispatcher::Call_Impl() + 0x433 bytes C++ sfxmi.dll!SfxDispatcher::_Execute() + 0x23b bytes C++ sfxmi.dll!SfxBindings::Execute_Impl() + 0x4d2 bytes C++ sfxmi.dll!SfxDispatchController_Impl::dispatch() + 0xbee bytes C++ sfxmi.dll!SfxOfficeDispatch::dispatch() + 0x123 bytes C++ svtmi.dll!svt::AsyncAccelExec::impl_ts_asyncCallback() + 0x35 bytes C++ svtmi.dll!svt::AsyncAccelExec::LinkStubimpl_ts_asyncCallback() + 0xe bytes C++ tlmi.dll!Link::Call() + 0x11 bytes C++ vclmi.dll!vcl::EventPoster::DoEvent_Impl() + 0x12 bytes C++ vclmi.dll!vcl::EventPoster::LinkStubDoEvent_Impl() + 0xe bytes C++ tlmi.dll!Link::Call() + 0x11 bytes C++ vclmi.dll!ImplHandleClose() + 0x156 bytes C++ vclmi.dll!ImplWindowFrameProc() + 0x2e2 bytes C++ vclmi.dll!SalFrame::CallCallback() + 0x16 bytes C++ vclmi.dll!ImplHandleSalObjSysCharMsg() + 0x504 bytes C++ vclmi.dll!SalFrameWndProc() + 0x748 bytes C++ vclmi.dll!SalFrameWndProcW() + 0x30 bytes C++ user32.dll!77d48709() user32.dll!77d487eb() user32.dll!77d70494() user32.dll!77d493df() user32.dll!77d70494() user32.dll!77d489e8() vclmi.dll!ImplDispatchMessage() + 0x15 bytes C++ vclmi.dll!WinSalInstance::AcquireYieldMutex() + 0x36 bytes C++ vclmi.dll!ImplSalYield() + 0x47 bytes C++ vclmi.dll!WinSalInstance::Yield() + 0x9f bytes C++ vclmi.dll!Application::Yield() + 0x3d bytes C++ vclmi.dll!Application::Execute() + 0x24 bytes C++ sofficeapp.dll!desktop::Desktop::Main() + 0x10ce bytes C++ vclmi.dll!ImplSVMain() + 0x64 bytes C++ vclmi.dll!SVMain() + 0x1c bytes C++ sofficeapp.dll!_soffice_main() + 0x81 bytes C++ soffice.bin!_main() + 0x16 bytes C soffice.bin!_WinMain@16() + 0x15 bytes C soffice.bin!__tmainCRTStartup() Line 574 + 0x35 bytes C soffice.bin!WinMainCRTStartup() Line 399 C kernel32.dll!7c816d4f() kernel32.dll!7c8399f3()
Seems that also the IFrameObject needs a fix: > ntdll.dll!7c90eb94() [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] ntdll.dll!7c90e9c0() mswsock.dll!71a53ca5() ntdll.dll!7c90d8ef() mswsock.dll!71a555af() kernel32.dll!7c809eb3() mswsock.dll!71a5542c() ws2_32.dll!71ab40bd() ucpdav1.dll!_ne_addr_destroy() + 0x31 bytes C ucpdav1.dll!_ne_addr_destroy() + 0x9e bytes C ucpdav1.dll!_ne_sock_connect() + 0xad bytes C ucpdav1.dll!_ne_get_session() + 0x1a7 bytes C ucpdav1.dll!_ne_get_session() + 0x25e bytes C ucpdav1.dll!_ne_read_response_block() + 0x2c3 bytes C ucpdav1.dll!_ne_begin_request() + 0x3d bytes C ucpdav1.dll!_ne_request_dispatch() + 0xb bytes C ucpdav1.dll!_ne_propfind_set_private() + 0x7f bytes C ucpdav1.dll!_ne_propfind_named() + 0x2c bytes C ucpdav1.dll!_ne_simple_propfind() + 0x2d bytes C ucpdav1.dll!webdav_ucp::NeonPropFindRequest::NeonPropFindRequest() + 0x7f bytes C++ ucpdav1.dll!webdav_ucp::NeonSession::PROPFIND() + 0x6c bytes C++ ucpdav1.dll!webdav_ucp::DAVResourceAccess::PROPFIND() + 0xdd bytes C++ ucpdav1.dll!webdav_ucp::Content::getResourceType() + 0x1c8 bytes C++ ucpdav1.dll!webdav_ucp::Content::getPropertyValues() + 0x1b8 bytes C++ ucpdav1.dll!webdav_ucp::Content::execute() + 0x115 bytes C++ ucbhelper4MSC.dll!ucbhelper::Content_Impl::executeCommand() + 0x51 bytes C++ ucbhelper4MSC.dll!ucbhelper::Content::getPropertyValuesInterface() + 0xbf bytes C++ ucbhelper4MSC.dll!ucbhelper::Content::getPropertyValues() + 0x21 bytes C++ ucbhelper4MSC.dll!ucbhelper::Content::getPropertyValue() + 0x44 bytes C++ comphelp4MSC.dll!comphelper::MediaDescriptor::impl_openStreamWithURL() + 0x534 bytes C++ comphelp4MSC.dll!comphelper::MediaDescriptor::impl_addInputStream() + 0x1bf bytes C++ comphelp4MSC.dll!comphelper::MediaDescriptor::addInputStream() + 0x7 bytes C++ filterconfig1.dll!filter::config::TypeDetection::impl_openStream() + 0x137 bytes C++ filterconfig1.dll!filter::config::TypeDetection::impl_askDetectService() + 0x1e bytes C++ filterconfig1.dll!filter::config::TypeDetection::impl_detectTypeDeepOnly() + 0x6e8 bytes C++ filterconfig1.dll!filter::config::TypeDetection::queryTypeByDescriptor() + 0x28a bytes C++ fwkmi.dll!framework::LoadEnv::impl_detectTypeAndFilter() + 0x14a bytes C++ fwkmi.dll!framework::LoadEnv::startLoading() + 0x6f bytes C++ fwkmi.dll!framework::LoadDispatcher::impl_dispatch() + 0x16d bytes C++ fwkmi.dll!framework::LoadDispatcher::dispatch() + 0x2d bytes C++ sfxmi.dll!sfx2::IFrameObject::load() + 0x451 bytes C++ embobj.dll!DocumentHolder::LoadDocToFrame() + 0x352 bytes C++ embobj.dll!DocumentHolder::ShowInplace() + 0x68d bytes C++ embobj.dll!OCommonEmbeddedObject::SwitchStateTo_Impl() + 0x415 bytes C++ embobj.dll!OCommonEmbeddedObject::changeState() + 0x173 bytes C++ sfxmi.dll!SfxViewShell::CheckIPClient_Impl() + 0xab bytes C++ sfxmi.dll!SfxInPlaceClient_Impl::TimerHdl() + 0x32 bytes C++ sfxmi.dll!SfxInPlaceClient_Impl::LinkStubTimerHdl() + 0xe bytes C++ tlmi.dll!Link::Call() + 0x11 bytes C++ vclmi.dll!Timer::Timeout() + 0xa bytes C++ vclmi.dll!Timer::ImplTimerCallbackProc() + 0x75 bytes C++ vclmi.dll!SalTimerProc() + 0x6c bytes C++ user32.dll!77d48709() user32.dll!77d49655() user32.dll!77d70494() user32.dll!77d4958f() user32.dll!77d70494() user32.dll!77d489e8() vclmi.dll!ImplDispatchMessage() + 0x15 bytes C++ vclmi.dll!WinSalInstance::AcquireYieldMutex() + 0x36 bytes C++ vclmi.dll!ImplSalYield() + 0x47 bytes C++ vclmi.dll!WinSalInstance::Yield() + 0x9f bytes C++ vclmi.dll!Application::Yield() + 0x3d bytes C++ vclmi.dll!Application::Execute() + 0x24 bytes C++ sofficeapp.dll!desktop::Desktop::Main() + 0x10ce bytes C++ vclmi.dll!ImplSVMain() + 0x64 bytes C++ vclmi.dll!SVMain() + 0x1c bytes C++ sofficeapp.dll!_soffice_main() + 0x81 bytes C++ soffice.bin!_main() + 0x16 bytes C soffice.bin!_WinMain@16() + 0x15 bytes C soffice.bin!__tmainCRTStartup() Line 574 + 0x35 bytes C soffice.bin!WinMainCRTStartup() Line 399 C kernel32.dll!7c816d4f() kernel32.dll!7c8399f3()
And here's the stack for the SwGrfNode: ntdll.dll!7c90eb94() [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] ntdll.dll!7c90e9c0() ntdll.dll!7c91901b() msvcr90d.dll!002cd496() msvcr90d.dll!0035ff17() msvcr90d.dll!0035ff0e() sal3.dll!_osl_acquireMutex() + 0x78 bytes C ucpdav1.dll!osl::Guard<osl::Mutex>::Guard<osl::Mutex>() + 0x12 bytes C++ ucpdav1.dll!webdav_ucp::NeonSession::Init() + 0x1a bytes C++ ucpdav1.dll!webdav_ucp::NeonSession::UsesProxy() + 0x8 bytes C++ ucpdav1.dll!webdav_ucp::DAVResourceAccess::getRequestURI() + 0x3a bytes C++ ucpdav1.dll!webdav_ucp::DAVResourceAccess::PROPFIND() + 0xb5 bytes C++ ucpdav1.dll!webdav_ucp::Content::getResourceType() + 0x1c8 bytes C++ ucpdav1.dll!webdav_ucp::Content::getPropertyValues() + 0x1b8 bytes C++ ucpdav1.dll!webdav_ucp::Content::execute() + 0x115 bytes C++ ucbhelper4MSC.dll!ucbhelper::Content_Impl::executeCommand() + 0x51 bytes C++ ucbhelper4MSC.dll!ucbhelper::Content::getPropertyValuesInterface() + 0xbf bytes C++ ucbhelper4MSC.dll!ucbhelper::Content::getPropertyValues() + 0x21 bytes C++ ucbhelper4MSC.dll!ucbhelper::Content::getPropertyValue() + 0x44 bytes C++ sfxmi.dll!SfxMedium::GetInitFileDate() + 0x92 bytes C++ sfxmi.dll!SfxMedium::GetMedium_Impl() + 0x65a bytes C++ sfxmi.dll!SfxMedium::GetInStream() + 0x9d bytes C++ sfxmi.dll!SfxMedium::DownLoad() + 0x17 bytes C++ svxmi.dll!SvFileObject::LoadFile_Impl() + 0x247 bytes C++ svxmi.dll!SvFileObject::GetData() + 0x3f2 bytes C++ sfxmi.dll!sfx2::SvBaseLink::Update() + 0xe8 bytes C++ > swmi.dll!SwGrfNode::UpdateLinkWithInputStream() Line 1201 + 0x33 bytes C++ swmi.dll!SwNoTxtFrm::PaintPicture() + 0xd1 bytes C++ swmi.dll!SwNoTxtFrm::Paint() + 0x2b7 bytes C++ swmi.dll!SwLayoutFrm::Paint(const SwRect & rRect={...}) Line 3278 C++ swmi.dll!SwFlyFrm::Paint(const SwRect & rRect={...}) Line 3697 C++ swmi.dll!SwFlyCntPortion::Paint(const SwTxtPaintInfo & rInf={...}) Line 272 C++ swmi.dll!SwTxtPainter::DrawTextLine(const SwRect & rPaint={...}, SwSaveClip & rClip={...}, const unsigned char bUnderSz=0) Line 426 C++ swmi.dll!SwTxtFrm::Paint(const SwRect & rRect={...}) Line 737 C++ swmi.dll!SwLayoutFrm::Paint(const SwRect & rRect={...}) Line 3278 C++ swmi.dll!SwLayoutFrm::Paint(const SwRect & rRect={...}) Line 3278 C++ swmi.dll!SwRootFrm::Paint(const SwRect & rRect={...}) Line 2958 C++ swmi.dll!ViewShell::Paint() + 0x192 bytes C++ swmi.dll!SwCrsrShell::Paint() + 0x5d bytes C++ swmi.dll!SwEditWin::Paint() + 0xa5 bytes C++ vclmi.dll!Window::ImplCallPaint() + 0x302 bytes C++ vclmi.dll!Window::Update() + 0x178 bytes C++ swmi.dll!ViewShell::VisPortChgd() + 0x4bf bytes C++ swmi.dll!SwCrsrShell::VisPortChgd() + 0x63 bytes C++ swmi.dll!SwView::SetVisArea() + 0x164 bytes C++ swmi.dll!SwView::SetVisArea() + 0xd9 bytes C++ swmi.dll!SwView::EndScrollHdl() + 0xc7 bytes C++ swmi.dll!SwView::ScrollHdl() + 0x5c bytes C++ swmi.dll!SwView::LinkStubScrollHdl() + 0xe bytes C++ tlmi.dll!Link::Call() + 0x11 bytes C++ vclmi.dll!Control::ImplCallEventListenersAndHandler() + 0x4f bytes C++ vclmi.dll!ScrollBar::Scroll() + 0x12 bytes C++ vclmi.dll!ScrollBar::ImplDragThumb() + 0xaf bytes C++ vclmi.dll!ScrollBar::Tracking() + 0x117 bytes C++ vclmi.dll!ImplHandleMouseEvent() + 0xb1c bytes C++ vclmi.dll!ImplHandleSalMouseMove() + 0x2b bytes C++ vclmi.dll!ImplWindowFrameProc() + 0x4a bytes C++ vclmi.dll!SalFrame::CallCallback() + 0x16 bytes C++ vclmi.dll!WinSalFrame::EndSetClipRegion() + 0x3db bytes C++ vclmi.dll!SalFrameWndProc() + 0x738 bytes C++ vclmi.dll!SalFrameWndProcW() + 0x30 bytes C++ user32.dll!77d48709() user32.dll!77d487eb() user32.dll!77d70494() user32.dll!77d493df() user32.dll!77d70494() user32.dll!77d489e8() vclmi.dll!ImplDispatchMessage() + 0x15 bytes C++ vclmi.dll!WinSalInstance::AcquireYieldMutex() + 0x36 bytes C++ vclmi.dll!ImplSalYield() + 0x47 bytes C++ vclmi.dll!WinSalInstance::Yield() + 0x9f bytes C++ vclmi.dll!Application::Yield() + 0x3d bytes C++ vclmi.dll!Application::Execute() + 0x24 bytes C++ sofficeapp.dll!desktop::Desktop::Main() + 0x10ce bytes C++ vclmi.dll!ImplSVMain() + 0x64 bytes C++ vclmi.dll!SVMain() + 0x1c bytes C++ sofficeapp.dll!_soffice_main() + 0x81 bytes C++ soffice.bin!_main() + 0x16 bytes C soffice.bin!_WinMain@16() + 0x15 bytes C soffice.bin!__tmainCRTStartup() Line 574 + 0x35 bytes C soffice.bin!WinMainCRTStartup() Line 399 C kernel32.dll!7c816d4f() kernel32.dll!7c8399f3()
Mikhail, there's something in the last stack that lets me think that your recent changes for locking have a negative influence on our code for handling graphics. Though we got the stream asynchronously before the SfxMedium is constructed, we now have a synchronous server access in SfxMedium::GetMedium_Impl() caused by GetInitFileDate(). For several reasons this is superfluous here, as we don't want to edit this file and we don't want to lock it. Besides that we are loading it from a web server, though this doesn't help us as it could be a webdav server also. So either we skip GetInitFileDate() here or we get the necessary information in the thread downloading the stream also so that we don't need to ask the web server for it. I wonder whether the SfxMedium is created readonly here. In case it is, I don't understand why we should call GetInitFileDate() at all. If it isn't, we should make it readonly here. What do you think?
Indeed, the call is not necessary here. Actually it should be done only for documents, and yes, readonly documents do not need it at all. Additionally, this solution should not be used for non-file protocols at all. At the beginning I thought that it would be helpful, but each additional request in case of remote protocol should have a very good reason. This call is a part of OOo document file locking and should be used only in the document locking context. I have submitted the new issue 101741 to fix it.
It does not make sense to fix the other places before the multi threaded code has been moved and adapted for the new drawing layer treatment. So I change the target to "3.x".
Reset assigne to the default "issues@openoffice.apache.org".