To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=100367
                 Issue #|100367
                 Summary|Uno objects that contain members that have different l
                        |ife-time dependencies must not be destroyed in the dto
                        |r.
               Component|Spreadsheet
                 Version|OOO310m5
                Platform|All
                     URL|
              OS/Version|All
                  Status|NEW
       Status whiteboard|
                Keywords|
              Resolution|
              Issue type|DEFECT
                Priority|P3
            Subcomponent|code
             Assigned to|nn
             Reported by|cd





------- Additional comments from c...@openoffice.org Thu Mar 19 14:53:50 +0000 
2009 -------
Uno objects that contain members that have different life-time dependencies must
not be destroyed in the dtor. This is a real problem when Java applications uses
the remote bridge and keep references to these UNO objects. The dtor is called
late during the shutdown phase which leads to deadlocks or crashes. For example
look at the following call stack which shows a deadlock (without the deadlock
the code would crash only some lines later).

Main thread:
        remotebridge.uno.dll!remotebridges_bridge::ORemoteBridge::disposing()  
Line
361     C++
        cppuhelper3MSC.dll!cppu::OComponentHelper::dispose()  Line 184 + 0x9 
bytes      C++
        offaccmi.dll!desktop::Acceptor::~Acceptor()  Line 107 + 0x17 bytes      
C++
        offaccmi.dll!desktop::Acceptor::`scalar deleting destructor'()  + 0xb 
bytes     C++
        cppuhelper3MSC.dll!cppu::OWeakObject::release()  Line 236       C++
        sofficeapp.dll!_STL::pair<rtl::OUString const
,com::sun::star::uno::Reference<com::sun::star::lang::XInitialization>
>::`scalar deleting destructor'()  + 0x56 bytes C++
        sofficeapp.dll!_STL::_Rb_tree<rtl::OUString,_STL::pair<rtl::OUString 
const
,com::sun::star::uno::Reference<com::sun::star::lang::XInitialization>
>,_STL::_Select1st<_STL::pair<rtl::OUString const
,com::sun::star::uno::Reference<com::sun::star::lang::XInitialization> >
>,_STL::less<rtl::OUString>,_STL::allocator<_STL::pair<rtl::OUString const
,com::sun::star::uno::Reference<com::sun::star::lang::XInitialization> > >
>::_M_erase(_STL::_Rb_tree_node<_STL::pair<rtl::OUString const
,com::sun::star::uno::Reference<com::sun::star::lang::XInitialization> > > *
__x=key={"pipe,name=macromigrationwizard;urp;"} data={0x616764e8})  Line 642    
C++
        sofficeapp.dll!_STL::_Rb_tree<rtl::OUString,_STL::pair<rtl::OUString 
const
,com::sun::star::uno::Reference<com::sun::star::lang::XInitialization>
>,_STL::_Select1st<_STL::pair<rtl::OUString const
,com::sun::star::uno::Reference<com::sun::star::lang::XInitialization> >
>,_STL::less<rtl::OUString>,_STL::allocator<_STL::pair<rtl::OUString const
,com::sun::star::uno::Reference<com::sun::star::lang::XInitialization> > >
>::clear()  Line 448    C++
        sofficeapp.dll!desktop::Desktop::DeregisterServices()  Line 399 C++
>       sofficeapp.dll!desktop::Desktop::Main()  Line 1628      C++
        vclmi.dll!ImplSVMain()  Line 196        C++
        vclmi.dll!SVMain()  Line 237    C++
        sofficeapp.dll!soffice_main()  Line 54  C++
        soffice.bin!0040101b()  
        soffice.bin!0040103c()  
        soffice.bin!004011e6()  
        kernel32.dll!77e6f23b()         

UNO thread:
        ntdll.dll!_kifastsystemcall...@0()      
        ntdll.dll!_ntwaitforsingleobj...@12()  + 0xc bytes      
        ntdll.dll!_rtlpwaitoncriticalsect...@8()  - 0xe4 bytes  
        ntdll.dll!_rtlentercriticalsect...@4()  + 0x22f21 bytes 
        sal3.dll!osl_acquireMutex(_oslMutexImpl * Mutex=0x01d18598)  Line 146   
C
        vos3MSC.dll!vos::OMutex::acquire()  Line 63 + 0xb bytes C++
        vclmi.dll!SalYieldMutex::acquire()  Line 119    C++
        scmi.dll!vos::OGuard::OGuard(vos::IMutex & rMutex={...})  Line 130 + 
0x5 bytes  C++
        scmi.dll!ScUnoGuard::ScUnoGuard()  Line 45 + 0x1f bytes C++
        scmi.dll!ScCellTextData::~ScCellTextData()  Line 981 + 0x8 bytes        
C++
        scmi.dll!ScCellTextData::`scalar deleting destructor'()  + 0xb bytes    
C++
        scmi.dll!ScCellEditSource::~ScCellEditSource()  Line 185        C++
        scmi.dll!ScCellEditSource::`scalar deleting destructor'()  + 0xb bytes  
C++
        scmi.dll!ScCellFieldObj::~ScCellFieldObj()  Line 543    C++
        scmi.dll!ScCellFieldObj::`scalar deleting destructor'()  + 0xb bytes    
C++
        cppuhelper3MSC.dll!cppu::OWeakObject::release()  Line 236       C++
        cppuhelper3MSC.dll!cppu::OWeakAggObject::release()  Line 285 + 0x6 
bytes        C++
        cppuhelper3MSC.dll!cppu::OComponentHelper::release()  Line 119 + 0x6 
bytes      C++
        cppuhelper3MSC.dll!cppu::OComponentHelper::release()  Line 113 + 0x11 
bytes     C++
 
msci_uno.dll!bridges::cpp_uno::shared::freeUnoInterfaceProxy(_uno_ExtEnvironment
* pEnv=0x03d84240, void * pProxy=0x0c3e78e8)  Line 59   C++
        cppu3.dll!s_stub_defenv_revokeInterface(char * * pParam=0x00000000)  
Line 412   C++
        cppu3.dll!s_environment_invoke_v(_uno_Environment * pCurrEnv=0x00000000,
_uno_Environment * pTargetEnv=0x03d84240, void (char * *)* pCallee=0x6574e6ff,
char * * pParam=0x0a8ffd74)  Line 295 + 0x6 bytes       C++
        cppu3.dll!uno_Environment_invoke_v(_uno_Environment * 
pTargetEnv=0x03d84240,
void (char * *)* pCallee=0x6574e6ff, char * * pParam=0x0a8ffd74)  Line 314 +
0x14 bytes      C++
        cppu3.dll!uno_Environment_invoke(_uno_Environment * pEnv=0x03d84240, 
void
(char * *)* pCallee=0x6574e6ff, ...)  Line 323 + 0xf bytes      C++
        cppu3.dll!defenv_revokeInterface(_uno_ExtEnvironment * pEnv=0x03d84240, 
void *
pInterface=0x0c3e78e8)  Line 466 + 0x13 bytes   C++
        msci_uno.dll!bridges::cpp_uno::shared::releaseProxy(_uno_Interface *
pUnoI=0x0c3e78e8)  Line 99 + 0xb bytes  C++
        urp_uno.dll!bridges_remote::Uno2RemoteStub::~Uno2RemoteStub()  Line 332 
C++
        urp_uno.dll!bridges_remote::Uno2RemoteStub::`scalar deleting 
destructor'() 
+ 0xb bytes     C++
        urp_uno.dll!bridges_remote::freeUno2RemoteStub(_uno_ExtEnvironment *
__formal=0x03e0c430, void * stub=0x0c491a80)  Line 292  C++
        cppu3.dll!s_stub_defenv_revokeInterface(char * * pParam=0x00000000)  
Line 412   C++
        cppu3.dll!s_environment_invoke_v(_uno_Environment * pCurrEnv=0x00000000,
_uno_Environment * pTargetEnv=0x03e0c430, void (char * *)* pCallee=0x6574e6ff,
char * * pParam=0x0a8ffe70)  Line 295 + 0x6 bytes       C++
        cppu3.dll!uno_Environment_invoke_v(_uno_Environment * 
pTargetEnv=0x03e0c430,
void (char * *)* pCallee=0x6574e6ff, char * * pParam=0x0a8ffe70)  Line 314 +
0x14 bytes      C++
        cppu3.dll!uno_Environment_invoke(_uno_Environment * pEnv=0x03e0c430, 
void
(char * *)* pCallee=0x6574e6ff, ...)  Line 323 + 0xf bytes      C++
        cppu3.dll!defenv_revokeInterface(_uno_ExtEnvironment * pEnv=0x03e0c430, 
void *
pInterface=0x0c4827c8)  Line 466 + 0x13 bytes   C++
        urp_uno.dll!thisRelease(remote_Interface * pThis=0x0c4827c8)  Line 61 + 
0xb
bytes   C++
        urp_uno.dll!bridges_urp::ServerMultiJob::execute()  Line 697    C++
        urp_uno.dll!doit(void * job=0x0c4ce300)  Line 73        C++
        cppu3.dll!cppu_threadpool::JobQueue::enter(__int64
nDisposeId=768553061603255960, unsigned char bReturnWhenNoJob='')  Line 121    
C++
        cppu3.dll!cppu_threadpool::ORequestThread::run()  Line 201      C++
        cppu3.dll!cppu_requestThreadWorker(void * pVoid=0x03e6a698)  Line 50    
C++
        sal3.dll!oslWorkerWrapperFunction(void * pData=0x03e6a810)  Line 71 + 
0x9 bytes C
        msvcr90.dll!78543433()  
        [Frames below may be incorrect and/or missing, no symbols loaded for 
msvcr90.dll]       
        msvcr90.dll!785434c7()  
        kernel32.dll!77e64829()

---------------------------------------------------------------------
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...@sc.openoffice.org
For additional commands, e-mail: issues-h...@sc.openoffice.org


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

Reply via email to