Thank you for the stack, now I see what the problem is. There is no recursive call back across the remote bridge (which should have worked). Instead, osl_waitCondition (called from cppu_threadpool::JobQueue::enter) is broken in that it calls PeekMessage, which continues to dispatch Windows events, which in turn causes the logically blocked UNO thread to make a second, unrelated remote call, which is not expected to happen per the design of UNO and consequently leads to disaster.

The PeekMessage was apparently added when fixing <http://qa.openoffice.org/issues/show_bug.cgi?id=92756>. I re-opened that issue now.

-Stephan

On 12/14/09 09:52, Huaidong Qiu wrote:
Repost the stack, because some symbol errors in last one


.  0  Id: 634.1650 Suspend: 0 Teb: 7ffdf000 Unfrozen
ChildEBP RetAddr
0183cae8 00312ec6 cppu3!cppu::_destructData+0x326
0183cb00 003109a1 cppu3!uno_type_destructData+0x16
0183cb20 00310ee4 cppu3!cppu::_destructStruct+0x71
0183cb34 00310953 cppu3!cppu::destructStruct+0x14
0183cb54 0031072d cppu3!cppu::_destructStruct+0x23
0183cb88 00312f2f cppu3!cppu::_destructAny+0x1cd
0183cbb4 0031336b cppu3!cppu::_destructData+0x5f
0183cbcc 0828b0fa cppu3!uno_destructData+0x1b
0183cd54 03bc1f6a urp_uno!bridges_remote::dispatchRemote2UnoProxy+0x75a
0183ce4c 03bc152a msci_uno!`anonymous namespace'::cpp2uno_call+0x3ca
0183cefc 03bc10d1 msci_uno!`anonymous namespace'::cpp_mediate+0x42a
0183cf18 01a184e0 msci_uno!`anonymous namespace'::cpp_vtable_call+0x11
0183d088 01a121d7 sfxmi!SfxDispatchController_Impl::StateChanged+0x640
0183d0cc 01a11dfd sfxmi!SfxStateCache::SetState_Impl+0x187
0183d0e4 019ee903 sfxmi!SfxStateCache::SetState+0x1d
0183d100 5d1091d6 sfxmi!SfxBindings::SetState+0x93
0183d13c 5d109313 swmi!SwPagePreView::ChgPage+0xdf
0183d180 5d107fad swmi!SwPagePreView::SetVisArea+0x112
0183d1d4 019d55b9 swmi!SwPagePreView::OuterResizePixel+0xb2
0183d1ec 019d8b89 sfxmi!SfxViewFrame::DoAdjustPosSizePixel+0x79
0183d22c 019deb41 sfxmi!SfxViewFrame::Resize+0x109
0183d248 01fd302c sfxmi!SfxTopViewWin_Impl::Resize+0x51
0183d254 01fd8c85 vclmi!Window::ImplCallResize+0x5c
0183d420 01fd8ba2 vclmi!Window::ImplPosSizeWindow+0x9f5
0183d600 01fe358c vclmi!Window::ImplPosSizeWindow+0x912
0183d69c 01ff9f4d vclmi!Window::SetPosSizePixel+0x4cc
0183d6cc 019c495d vclmi!Window::SetPosSizePixel+0x4d
0183d750 018c184a sfxmi!SfxFrame::SetToolSpaceBorderPixel_Impl+0x1bd
0183d7a8 019c52da sfxmi!SfxFrameWorkWin_Impl::ArrangeChilds_Impl+0x11a
0183d854 019de909 sfxmi!SfxFrame::Resize+0x2da
0183d860 019de829 sfxmi!SfxTopWindow_Impl::DoResize+0x29
0183d878 01fd302c sfxmi!SfxTopWindow_Impl::Resize+0x49
0183d884 01fd8c85 vclmi!Window::ImplCallResize+0x5c
0183da50 01fd8ba2 vclmi!Window::ImplPosSizeWindow+0x9f5
0183dc30 01fe358c vclmi!Window::ImplPosSizeWindow+0x912
0183dccc 025a91da vclmi!Window::SetPosSizePixel+0x4cc
0183dd0c 06fd9833 tkmi!VCLXWindow::setPosSize+0x64
0183dde4 0704a0c5
fwkmi!framework::DockingAreaDefaultAcceptor::setDockingAreaSpace+0x293
0183dee4 070510fc fwkmi!framework::LayoutManager::implts_doLayout+0x2d5
0183df30 07050fdf fwkmi!framework::LayoutManager::AsyncLayoutHdl+0x10c
0183df3c 573010af fwkmi!framework::LayoutManager::LinkStubAsyncLayoutHdl+0xf
0183df4c 070506ab tlmi!Link::Call+0x11
0183e0d8 0261b581 fwkmi!framework::LayoutManager::windowResized+0x1bb
0183e14c 025ae919 tkmi!WindowListenerMultiplexer::windowResized+0x79
0183e238 025a90f0 tkmi!VCLXWindow::ProcessWindowEvent+0x1dd
0183e24c 025aa8b5 tkmi!VCLXWindow::WindowEventListener+0x36
0183e258 573010af tkmi!VCLXWindow::LinkStubWindowEventListener+0xe
0183e268 01dd08ae tlmi!Link::Call+0x11
0183e2d8 01fde82f vclmi!VclEventListeners::Call+0xde
0183e324 01fde737 vclmi!Window::CallEventListeners+0xef
0183e338 01fd303b vclmi!Window::ImplCallEventListeners+0x17
0183e34c 01fd8c85 vclmi!Window::ImplCallResize+0x6b
0183e518 01f5e19d vclmi!Window::ImplPosSizeWindow+0x9f5
0183e56c 01fd302c vclmi!ImplBorderWindow::Resize+0x1cd
0183e578 01ff0e71 vclmi!Window::ImplCallResize+0x5c
0183e5fc 01ff1dc3 vclmi!ImplHandleResize+0x291
0183e71c 02080789 vclmi!ImplWindowFrameProc+0x533
0183e73c 02080857 vclmi!ImplCallSizeHdl+0x49
0183e74c 0207e301 vclmi!ImplHandleSizeMsg+0x77
0183e7f8 02083e81 vclmi!SalFrameWndProc+0x4c1
0183e848 77d18734 vclmi!SalFrameWndProcW+0x61
0183e874 77d18816 user32!InternalCallWinProc+0x28
0183e8dc 77d1d17f user32!UserCallWinProcCheckWow+0x150
0183e930 77d1b3f9 user32!RealDefWindowProcWorker+0x107a
0183e94c 77d1b393 user32!RealDefWindowProcW+0x47
0183e994 02083ece user32!DefWindowProcW+0x72
0183e9e0 77d18734 vclmi!SalFrameWndProcW+0xae
0183ea0c 77d18816 user32!InternalCallWinProc+0x28
0183ea74 77d1b4c0 user32!UserCallWinProcCheckWow+0x150
0183eac8 77d1d0a5 user32!DispatchClientMessage+0xa3
0183eaf0 7c92eae3 user32!__fnINLPWINDOWPOS+0x25
0183eb2c 77d193e9 ntdll!KiUserCallbackDispatcher+0x13
0183eb58 77d1ca67 user32!NtUserPeekMessage+0xc
0183eb84 10025c85 user32!PeekMessageA+0xeb
0183ebc8 0032d6a4 sal3!osl_waitCondition+0xa5
0183ec10 00328e82 cppu3!cppu_threadpool::JobQueue::enter+0x104
0183ec60 00329139 cppu3!cppu_threadpool::ThreadPool::enter+0xf2
0183ec8c 082855de cppu3!uno_threadpool_enter+0x69
0183ed5c 0827fa7f urp_uno!bridges_urp::ClientJob::wait+0x4e
0183edd0 0827f9dd urp_uno!bridges_urp::urp_sendRequest_internal+0x8f
0183edfc 0828b9e7 urp_uno!urp_sendRequest+0x4d
0183ee24 0828af21 urp_uno!thisDispatch+0x37
0183ef74 03bc1f6a urp_uno!bridges_remote::dispatchRemote2UnoProxy+0x581
0183f038 03bc152a msci_uno!`anonymous namespace'::cpp2uno_call+0x3ca
0183f0e8 03bc10d1 msci_uno!`anonymous namespace'::cpp_mediate+0x42a
0183f104 0700e64d msci_uno!`anonymous namespace'::cpp_vtable_call+0x11
0183f2ac 06ff339a
fwkmi!framework::InterceptionHelper::releaseDispatchProviderInterceptor+0x39d
0183f2f4 5d0bbe02
fwkmi!framework::Frame::releaseDispatchProviderInterceptor+0xba
0183f330 5d117ef2 swmi!SwXDispatchProviderInterceptor::Invalidate+0x42
0183f364 5d0f7a4e swmi!SwView_Impl::~SwView_Impl+0x50
0183f370 5d0f8499 swmi!SwView_Impl::`scalar deleting destructor'+0xb
0183f39c 5d0f8afc swmi!SwView::~SwView+0x1d1
0183f3a8 019d6e03 swmi!SwView::`vector deleting destructor'+0x39
0183f4c4 019d7318 sfxmi!SfxViewFrame::SwitchToViewShell_Impl+0x843
0183f774 019ceb6f sfxmi!SfxViewFrame::ExecView_Impl+0x388
0183f780 019f5fa1 sfxmi!SfxStubSfxViewFrameExecView_Impl+0xf
0183f858 019f92db sfxmi!SfxDispatcher::Call_Impl+0x4a1
0183f8d4 019f91df sfxmi!SfxDispatcher::PostMsgHandler+0xeb
0183f8e0 573010af sfxmi!SfxDispatcher::LinkStubPostMsgHandler+0xf
0183f8f0 01a22c1c tlmi!Link::Call+0x11
0183f908 01a22bc4 sfxmi!SfxHintPoster::Event+0x3c
0183f914 573010af sfxmi!SfxHintPoster::LinkStubDoEvent_Impl+0x14
0183f924 01ff40cd tlmi!Link::Call+0x11
0183f954 01ff1ece vclmi!ImplHandleUserEvent+0xcd
0183fa6c 02080cc4 vclmi!ImplWindowFrameProc+0x63e
0183fa8c 0207e61d vclmi!ImplHandleUserEvent+0x44
0183fb34 02083e81 vclmi!SalFrameWndProc+0x7dd
0183fb84 77d18734 vclmi!SalFrameWndProcW+0x61
0183fbb0 77d18816 user32!InternalCallWinProc+0x28
0183fc18 77d189cd user32!UserCallWinProcCheckWow+0x150
0183fc78 77d18a10 user32!DispatchMessageWorker+0x306
0183fc88 020aa616 user32!DispatchMessageW+0xf
0183fc94 020abf17 vclmi!ImplDispatchMessage+0x16
0183fca8 020abe7a vclmi!ImplSalDispatchMessage+0x37
0183fcd8 020ac024 vclmi!ImplSalYield+0x4a
0183fd00 01dbeffc vclmi!WinSalInstance::Yield+0xe4
0183fd14 01dbee9b vclmi!Application::Yield+0x6c
0183fd24 5e6ebf56 vclmi!Application::Execute+0x2b
0183fe48 01dc99cf sofficeapp!desktop::Desktop::Main+0x1074
0183feac 01dc9ba3 vclmi!ImplSVMain+0x6f
0183feb8 5e701a14 vclmi!SVMain+0x23
0183ff18 0040101b sofficeapp!soffice_main+0x81
0183ff24 0040103c soffice!main+0x16
0183ff30 004011e6 soffice!WinMain+0x15
0183ffc0 7c816fd7 soffice!__tmainCRTStartup+0x140
0183fff0 00000000 kernel32!BaseProcessStart+0x23

   1  Id: 634.fac Suspend: 0 Teb: 7ffde000 Unfrozen
ChildEBP RetAddr
03a3ff10 7c92e9c0 ntdll!KiFastSystemCallRet
03a3ff14 7c8025cb ntdll!ZwWaitForSingleObject+0xc
03a3ff78 7c802532 kernel32!WaitForSingleObjectEx+0xa8
03a3ff8c 10005b2b kernel32!WaitForSingleObject+0x12
03a3ff9c 10005aa9 sal3!rtl_cache_wsupdate_wait+0x2b
03a3ffb4 7c80b683 sal3!rtl_cache_wsupdate_all+0x29
03a3ffec 00000000 kernel32!BaseThreadStart+0x37

   2  Id: 634.15c8 Suspend: 0 Teb: 7ffdd000 Unfrozen
ChildEBP RetAddr
04bdfe50 7c92e9ab ntdll!KiFastSystemCallRet
04bdfe54 7c8094e2 ntdll!ZwWaitForMultipleObjects+0xc
04bdfef0 77d195f9 kernel32!WaitForMultipleObjectsEx+0x12c
04bdff4c 77d196a8 user32!RealMsgWaitForMultipleObjectsEx+0x13e
04bdff68 4aea83bd user32!MsgWaitForMultipleObjects+0x1f
04bdffb4 7c80b683 GdiPlus!BackgroundThreadProc+0x59
04bdffec 00000000 kernel32!BaseThreadStart+0x37

   3  Id: 634.11d4 Suspend: 0 Teb: 7ffdc000 Unfrozen
ChildEBP RetAddr
0556ff10 7c92d85c ntdll!KiFastSystemCallRet
0556ff14 7c8023ed ntdll!NtDelayExecution+0xc
0556ff6c 7c802451 kernel32!SleepEx+0x61
0556ff7c 020b4724 kernel32!Sleep+0xf
0556ffa4 020b1dc0 vclmi!WinLmrInstance::RunPrefetching+0xc4
0556ffb4 7c80b683 vclmi!runWinLmrPrefetching+0x30
0556ffec 00000000 kernel32!BaseThreadStart+0x37

   4  Id: 634.1290 Suspend: 0 Teb: 7ffdb000 Unfrozen
ChildEBP RetAddr
0816fdb0 7c92e9ab ntdll!KiFastSystemCallRet
0816fdb4 7c8094e2 ntdll!ZwWaitForMultipleObjects+0xc
0816fe50 77d195f9 kernel32!WaitForMultipleObjectsEx+0x12c
0816feac 77d196a8 user32!RealMsgWaitForMultipleObjectsEx+0x13e
0816fec8 10025c59 user32!MsgWaitForMultipleObjects+0x1f
0816ff0c 5bc249f3 sal3!osl_waitCondition+0x79
0816ff1c 5bc259ed vos3MSC!vos::OCondition::wait+0x11
0816ff50 5bc24e6d vos3MSC!vos::OTimerManager::run+0x74
0816ff60 10006793 vos3MSC!vos::threadWorkerFunction_impl+0xd
0816ff70 78543433 sal3!oslWorkerWrapperFunction+0x23
0816ffa8 785434c7 msvcr90!_callthreadstartex+0x1b
0816ffb4 7c80b683 msvcr90!_threadstartex+0x69
0816ffec 00000000 kernel32!BaseThreadStart+0x37

   5  Id: 634.1498 Suspend: 0 Teb: 7ffda000 Unfrozen
ChildEBP RetAddr
08c2f520 7c92e9c0 ntdll!KiFastSystemCallRet
08c2f524 7c8025cb ntdll!ZwWaitForSingleObject+0xc
08c2f588 7c802532 kernel32!WaitForSingleObjectEx+0xa8
08c2f59c 7c831608 kernel32!WaitForSingleObject+0x12
08c2f5b0 10024e81 kernel32!GetOverlappedResult+0x30
08c2f5f8 5bc22af4 sal3!osl_acceptPipe+0x121
08c2f608 5e6fe535 vos3MSC!vos::OPipe::accept+0x21
08c2ff50 5bc24e6d sofficeapp!desktop::OfficeIPCThread::run+0x40
08c2ff60 10006793 vos3MSC!vos::threadWorkerFunction_impl+0xd
08c2ff70 78543433 sal3!oslWorkerWrapperFunction+0x23
08c2ffa8 785434c7 msvcr90!_callthreadstartex+0x1b
08c2ffb4 7c80b683 msvcr90!_threadstartex+0x69
08c2ffec 00000000 kernel32!BaseThreadStart+0x37

   6  Id: 634.498 Suspend: 0 Teb: 7ffd9000 Unfrozen
ChildEBP RetAddr
0963fd28 7c92e9c0 ntdll!KiFastSystemCallRet
0963fd2c 7c8025cb ntdll!ZwWaitForSingleObject+0xc
0963fd90 7c802532 kernel32!WaitForSingleObjectEx+0xa8
0963fda4 7c831608 kernel32!WaitForSingleObject+0x12
0963fdb8 10024e81 kernel32!GetOverlappedResult+0x30
0963fe00 67fb4dac sal3!osl_acceptPipe+0x121
0963fe2c 67fb4f67 acceptor_uno!osl::Pipe::accept+0x16
0963fe70 67fb25a2 acceptor_uno!io_acceptor::PipeAcceptor::accept+0xbf
0963fedc 61673a2d acceptor_uno!io_acceptor::OAcceptor::accept+0x481
0963ff60 10006793 offaccmi!desktop::Acceptor::run+0x38
0963ff70 78543433 sal3!oslWorkerWrapperFunction+0x23
0963ffa8 785434c7 msvcr90!_callthreadstartex+0x1b
0963ffb4 7c80b683 msvcr90!_threadstartex+0x69
0963ffec 00000000 kernel32!BaseThreadStart+0x37

   7  Id: 634.12e8 Suspend: 0 Teb: 7ffd8000 Unfrozen
ChildEBP RetAddr
0a44fe18 7c92e399 ntdll!KiFastSystemCallRet
0a44fe1c 77e56713 ntdll!NtReplyWaitReceivePortEx+0xc
0a44ff80 77e56c2b rpcrt4!LRPC_ADDRESS::ReceiveLotsaCalls+0xf4
0a44ff88 77e56a4d rpcrt4!RecvLotsaCallsWrapper+0xd
0a44ffa8 77e56c13 rpcrt4!BaseCachedThreadRoutine+0x79
0a44ffb4 7c80b683 rpcrt4!ThreadStartRoutine+0x1a
0a44ffec 00000000 kernel32!BaseThreadStart+0x37

   8  Id: 634.b78 Suspend: 0 Teb: 7ffd6000 Unfrozen
ChildEBP RetAddr
0addff1c 7c92d85c ntdll!KiFastSystemCallRet
0addff20 7c8023ed ntdll!NtDelayExecution+0xc
0addff78 7c802451 kernel32!SleepEx+0x61
0addff88 769ae31d kernel32!Sleep+0xf
0addff94 769ae3dc ole32!CROIDTable::WorkerThreadLoop+0x14
0addffa8 769ae444 ole32!CRpcThread::WorkerLoop+0x1e
0addffb4 7c80b683 ole32!CRpcThreadCache::RpcWorkerThreadEntry+0x1b
0addffec 00000000 kernel32!BaseThreadStart+0x37

   9  Id: 634.a98 Suspend: 0 Teb: 7ffd5000 Unfrozen
ChildEBP RetAddr
0b76fda4 7c92e9ab ntdll!KiFastSystemCallRet
0b76fda8 7c8094e2 ntdll!ZwWaitForMultipleObjects+0xc
0b76fe44 77d195f9 kernel32!WaitForMultipleObjectsEx+0x12c
0b76fea0 77d196a8 user32!RealMsgWaitForMultipleObjectsEx+0x13e
0b76febc 10025c59 user32!MsgWaitForMultipleObjects+0x1f
0b76ff00 082783b0 sal3!osl_waitCondition+0x79
0b76ff50 08271948 urp_uno!bridges_urp::OWriterThread::run+0xc0
0b76ff60 10006793 urp_uno!threadFunc+0x18
0b76ff70 78543433 sal3!oslWorkerWrapperFunction+0x23
0b76ffa8 785434c7 msvcr90!_callthreadstartex+0x1b
0b76ffb4 7c80b683 msvcr90!_threadstartex+0x69
0b76ffec 00000000 kernel32!BaseThreadStart+0x37

  10  Id: 634.728 Suspend: 0 Teb: 7ffd4000 Unfrozen
ChildEBP RetAddr
0c0ff614 7c92e591 ntdll!KiFastSystemCallRet
0c0ff618 7c939079 ntdll!NtSetEventBoostPriority+0xc
0c0ff628 7c92110a ntdll!RtlpUnWaitCriticalSection+0x30
0c0ff630 1000667f ntdll!RtlLeaveCriticalSection+0x1d
0c0ff640 003081a2 sal3!osl_releaseMutex+0x7f
0c0ff650 00308181 cppu3!osl::Mutex::release+0x12
0c0ff65c 003287b2 cppu3!osl::Guard<osl::Mutex>::~Guard<osl::Mutex>+0x11
0c0ff694 00328c1e cppu3!cppu_threadpool::ThreadPool::createThread+0xb2
0c0ff718 003291d3 cppu3!cppu_threadpool::ThreadPool::addJob+0x24e
0c0ff744 08286c64 cppu3!uno_threadpool_putJob+0x53
0c0ff764 082755b2 urp_uno!bridges_urp::ServerMultiJob::initiate+0x34
0c0fff50 08271948 urp_uno!bridges_urp::OReaderThread::run+0x11c2
0c0fff60 10006793 urp_uno!threadFunc+0x18
0c0fff70 78543433 sal3!oslWorkerWrapperFunction+0x23
0c0fffa8 785434c7 msvcr90!_callthreadstartex+0x1b
0c0fffb4 7c80b683 msvcr90!_threadstartex+0x69
0c0fffec 00000000 kernel32!BaseThreadStart+0x37

  11  Id: 634.eb4 Suspend: 0 Teb: 7ffd3000 Unfrozen
ChildEBP RetAddr
0ddaff48 77d191be ntdll!KiFastSystemCallRet
0ddaff70 64682a88 user32!NtUserGetMessage+0xc
0ddaffb4 7c80b683 dnd!DndTargetOleSTAFunc+0xd0
0ddaffec 00000000 kernel32!BaseThreadStart+0x37

  12  Id: 634.140c Suspend: 0 Teb: 7ff9b000 Unfrozen
ChildEBP RetAddr
114fff04 77d191be ntdll!KiFastSystemCallRet
114fff2c 5cb99ea5 user32!NtUserGetMessage+0xc
114fff68 5cb99ec5 sysdtrans!CMtaOleClipboard::run+0x50
114fff70 78543433 sysdtrans!CMtaOleClipboard::oleThreadProc+0xb
114fffa8 785434c7 msvcr90!_callthreadstartex+0x1b
114fffb4 7c80b683 msvcr90!_threadstartex+0x69
114fffec 00000000 kernel32!BaseThreadStart+0x37

  13  Id: 634.350 Suspend: 0 Teb: 7ff9a000 Unfrozen
ChildEBP RetAddr
11e8fe7c 7c92e9ab ntdll!KiFastSystemCallRet
11e8fe80 7c8094e2 ntdll!ZwWaitForMultipleObjects+0xc
11e8ff1c 7c80a075 kernel32!WaitForMultipleObjectsEx+0x12c
11e8ff38 5cb99c1e kernel32!WaitForMultipleObjects+0x18
11e8ff70 78543433
sysdtrans!CMtaOleClipboard::clipboardChangedNotifierThreadProc+0x30
11e8ffa8 785434c7 msvcr90!_callthreadstartex+0x1b
11e8ffb4 7c80b683 msvcr90!_threadstartex+0x69
11e8ffec 00000000 kernel32!BaseThreadStart+0x37

  14  Id: 634.968 Suspend: 0 Teb: 7ff9f000 Unfrozen
ChildEBP RetAddr
0d41fd80 7c92e9ab ntdll!KiFastSystemCallRet
0d41fd84 7c8094e2 ntdll!ZwWaitForMultipleObjects+0xc
0d41fe20 77d195f9 kernel32!WaitForMultipleObjectsEx+0x12c
0d41fe7c 77d196a8 user32!RealMsgWaitForMultipleObjectsEx+0x13e
0d41fe98 10025c59 user32!MsgWaitForMultipleObjects+0x1f
0d41fedc 0032860b sal3!osl_waitCondition+0x79
0d41ff38 0032cb2e cppu3!cppu_threadpool::ThreadPool::waitInPool+0x8b
0d41ff54 0032c382 cppu3!cppu_threadpool::ORequestThread::run+0x11e
0d41ff60 10006793 cppu3!cppu_requestThreadWorker+0x12
0d41ff70 78543433 sal3!oslWorkerWrapperFunction+0x23
0d41ffa8 785434c7 msvcr90!_callthreadstartex+0x1b
0d41ffb4 7c80b683 msvcr90!_threadstartex+0x69
0d41ffec 00000000 kernel32!BaseThreadStart+0x37

  15  Id: 634.121c Suspend: 0 Teb: 7ff9e000 Unfrozen
ChildEBP RetAddr
0e73fd80 7c92e9ab ntdll!KiFastSystemCallRet
0e73fd84 7c8094e2 ntdll!ZwWaitForMultipleObjects+0xc
0e73fe20 77d195f9 kernel32!WaitForMultipleObjectsEx+0x12c
0e73fe7c 77d196a8 user32!RealMsgWaitForMultipleObjectsEx+0x13e
0e73fe98 10025c59 user32!MsgWaitForMultipleObjects+0x1f
0e73fedc 0032860b sal3!osl_waitCondition+0x79
0e73ff38 0032cb2e cppu3!cppu_threadpool::ThreadPool::waitInPool+0x8b
0e73ff54 0032c382 cppu3!cppu_threadpool::ORequestThread::run+0x11e
0e73ff60 10006793 cppu3!cppu_requestThreadWorker+0x12
0e73ff70 78543433 sal3!oslWorkerWrapperFunction+0x23
0e73ffa8 785434c7 msvcr90!_callthreadstartex+0x1b
0e73ffb4 7c80b683 msvcr90!_threadstartex+0x69
0e73ffec 00000000 kernel32!BaseThreadStart+0x37


On Mon, Dec 14, 2009 at 4:07 PM, Stephan Bergmann
<stephan.bergm...@sun.com>wrote:
On 12/13/09 16:33, Huaidong Qiu wrote:

We implemented a java DispatchProviderInterceptor  which registered to
frame, but we found some time bridge remote call (from C++ to java) cause
cpp2uno reentry such as bridges_remote::dispatchRemote2UnoProxy().

I don't think dispatchRemote2UnoProxy support reentry, because UNO Remote
Protocol Specification does not allow this:

When sending a synchronous request message with the TID of a UNO thread
h, the sending side will not execute any computation steps in thread h
(especially, it will not send any further request or reply messages with the
given TID), until it receives back the corresponding reply message.

No, this reasoning is not correct.  If the receiving side (B) of the
request synchronously calls back to the (originally) sending side (A), A can
also recursively make a second, nested synchronous call to B.


 My question are:
1 How to accelerate calls from C++ to java when using java
DispatchProviderInterceptor? Or we made some mistakes?
2 Is there a way to avoid this reentry?

Please check out the dump file attached.

(Please note that any kind of attachment is routinely stripped from the
OOo mailing lists.)

-Stephan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@framework.openoffice.org
For additional commands, e-mail: dev-h...@framework.openoffice.org





---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@framework.openoffice.org
For additional commands, e-mail: dev-h...@framework.openoffice.org

Reply via email to