On December 18, 2004 08:10 am, Mike Hearn wrote:
On Sat, 2004-12-18 at 07:46 -0800, Bill Medland wrote:
0013:trace:ole:listener_thread Process listener thread starting on (\.\pipe\WINE_OLE_StubMgr_0000001000000011)
...
0009:fixme:ole:PIPE_GetNewPipeBuf Could not open named pipe \.\pipe\WINE_OLE_StubMgr_0000001000000014, le is 2
Well, now we have a variation on the same problem. The apartments are getting mixed up, I suspect because Robs patch creates a new apartment but we still don't create a new listener thread for each apt (rather it's still half process-scoped).
We need to make the listener_thread properly apartment-scoped.
What does the trace+backtrace of the crash with my patch look like?
0009:trace:ole:WINE_StringFromCLSID 0x456ed8->{B6B35894-DD6F-11D3-84AC-00C04F0E1B46} 0009:trace:ole:CoGetClassObject CLSID: {b6b35894-dd6f-11d3-84ac-00c04f0e1b46}, IID: {00000001-0000-0000-c000-000000000046} 0009:warn:ole:CoGetClassObject class {B6B35894-DD6F-11D3-84AC-00C04F0E1B46} not registered inproc 0009:trace:ole:create_marshalled_proxy rclsid={b6b35894-dd6f-11d3-84ac-00c04f0e1b46}, iid={00000001-0000-0000-c000-000000000046} 0009:trace:ole:WINE_StringFromCLSID 0x456ed8->{B6B35894-DD6F-11D3-84AC-00C04F0E1B46} 0009:trace:ole:WINE_StringFromCLSID 0x456ed8->{B6B35894-DD6F-11D3-84AC-00C04F0E1B46} 0009:trace:ole:create_server activating local server 'L"G:\runtime\a4wsignonmgr.exe -Embedding"' for {B6B35894-DD6F-11D3-84AC-00C04F0E1B46} 0014:trace:ole:DllMain 0x409e0000 0x1 0x1 0009:warn:ole:create_marshalled_proxy Could not open named pipe to broker \.\pipe{B6B35894-DD6F-11D3-84AC-00C04F0E1B46}, le is 2 0014:trace:ole:DllMain (0x40ab0000,1,0x1) 0014:trace:ole:CoInitializeEx ((nil), 2) 0014:trace:ole:CoInitializeEx () - Initializing the COM libraries 0014:trace:ole:RunningObjectTableImpl_Initialize () 0014:trace:ole:WINE_StringFromCLSID 0x41f320->{A2086A6A-3F3E-457C-8102-A4F99AD7C2DA} 0014:trace:ole:CoRegisterClassObject ({b6b35894-dd6f-11d3-84ac-00c04f0e1b46},0x42130140,0x00000004,0x00000001,0x41f094) 0016:trace:ole:listener_thread Process listener thread starting on (\.\pipe\WINE_OLE_StubMgr_0000001300000014) 0009:warn:ole:create_marshalled_proxy Could not open named pipe to broker \.\pipe{B6B35894-DD6F-11D3-84AC-00C04F0E1B46}, le is 2 0009:warn:ole:create_marshalled_proxy Could not open named pipe to broker \.\pipe{B6B35894-DD6F-11D3-84AC-00C04F0E1B46}, le is 2 0017:trace:ole:_LocalServerThread Starting threader for {b6b35894-dd6f-11d3-84ac-00c04f0e1b46}. 0017:trace:ole:WINE_StringFromCLSID 0x40246150->{B6B35894-DD6F-11D3-84AC-00C04F0E1B46} 0017:trace:ole:_LocalServerThread marshalling IClassFactory to client 0017:trace:ole:CoMarshalInterface (0x402372b8, {00000001-0000-0000-c000-000000000046}, 0x42130140, 0, (nil), 0) 0017:trace:ole:CoGetStandardMarshal ({00000001-0000-0000-c000-000000000046},0x42130140,0,(nil),0,0x42641fd0) 0017:trace:ole:CoMarshalInterface Using standard marshaling 0017:trace:ole:CoMarshalInterface Calling IMarshal::MarshalInterace 0017:trace:ole:StdMarshalImpl_MarshalInterface (...,{00000001-0000-0000-c000-000000000046},...) 0017:trace:ole:CoGetPSClsid () riid={00000001-0000-0000-c000-000000000046}, pclsid=0x42641f64 0017:trace:ole:WINE_StringFromCLSID 0x40a22274->{00000001-0000-0000-C000-000000000046} 0017:trace:ole:__CLSIDFromStringA {00000320-0000-0000-C000-000000000046} -> 0x42641f64 0017:trace:ole:CoGetPSClsid () Returning CLSID={00000320-0000-0000-c000-000000000046} 0017:trace:ole:WINE_StringFromCLSID 0x42641f64->{00000320-0000-0000-C000-000000000046} 0017:trace:ole:CoGetClassObject CLSID: {00000320-0000-0000-c000-000000000046}, IID: {d5f569d0-593b-101a-b569-08002b2dbf7a} 0017:trace:ole:COMPOBJ_DLLList_Add 0017:trace:ole:PSFacBuf_CreateStub ({00000001-0000-0000-c000-000000000046},0x42130140,0x42641f50) 0009:trace:ole:CoUnmarshalInterface (0x40246d60, {00000001-0000-0000-c000-000000000046}, 0x406ef5dc) 0009:trace:ole:get_unmarshaler_from_stream Using standard unmarshaling 0009:trace:ole:StdMarshalImpl_UnmarshalInterface (...,{00000001-0000-0000-c000-000000000046},....) 0009:trace:ole:CoGetPSClsid () riid={00000001-0000-0000-c000-000000000046}, pclsid=0x406ef0d8 0009:trace:ole:WINE_StringFromCLSID 0x409a5274->{00000001-0000-0000-C000-000000000046} 0017:trace:ole:_LocalServerThread done marshalling IClassFactory 0009:trace:ole:__CLSIDFromStringA {00000320-0000-0000-C000-000000000046} -> 0x406ef0d8 0009:trace:ole:CoGetPSClsid () Returning CLSID={00000320-0000-0000-c000-000000000046} 0009:trace:ole:WINE_StringFromCLSID 0x406ef0d8->{00000320-0000-0000-C000-000000000046} 0009:trace:ole:CoGetClassObject CLSID: {00000320-0000-0000-c000-000000000046}, IID: {d5f569d0-593b-101a-b569-08002b2dbf7a} 0009:trace:ole:COMPOBJ_DLLList_Add 0009:trace:ole:CFProxy_CreateInstance ((nil),{00000000-0000-0000-c000-000000000046},0x406ef60c) 0009:trace:ole:PipeBuf_GetBuffer (0x406ef588,{00000001-0000-0000-c000-000000000046}) 0009:trace:ole:PipeBuf_SendReceive () 0018:trace:ole:_StubReaderThread STUB reader thread 13 0018:trace:ole:CFStub_Invoke ->CreateInstance({00000000-0000-0000-c000-000000000046}) 0018:trace:ole:CoMarshalInterface (0x40278858, {00000000-0000-0000-c000-000000000046}, 0x42130124, 0, (nil), 0) 0018:trace:ole:CoGetStandardMarshal ({00000000-0000-0000-c000-000000000046},0x42130124,0,(nil),0,0x42743024) 0018:trace:ole:CoMarshalInterface Using standard marshaling 0018:trace:ole:CoMarshalInterface Calling IMarshal::MarshalInterace 0018:trace:ole:StdMarshalImpl_MarshalInterface (...,{00000000-0000-0000-c000-000000000046},...) wine: Unhandled exception (thread 0018), starting debugger... Backtrace: =>1 0x40901a13 StdMarshalImpl_MarshalInterface+0xa3(iface=0x40247148, pStm=0x40247100, riid=0x42a84138, pv=0x42480180, dwDestContext=0x0, pvDestContext=0x0, mshlflags=0x0) [/home/cvswine/wine/dlls/ole32/compobj_private.h:180] in ole32 (0x42a83ff4) 2 0x40902b07 CoMarshalInterface+0x227(pStream=0x40247100, riid=0x42a84138, pUnk=0x42480180, dwDestContext=0x0, pvDestContext=0x0, mshlFlags=0x0) [/home/cvswine/wine/dlls/ole32/marshal.c:719] in ole32 (0x42a840a4) 3 0x40908cff CFStub_Invoke+0x2e3(iface=0x40246fe8, msg=0x42a84170, chanbuf=0x0) [/home/cvswine/wine/dlls/ole32/oleproxy.c:178] in ole32 (0x42a84154) 4 0x4090acf2 COM_InvokeAndRpcSend+0x92(req=0x40247088) [/home/cvswine/wine/dlls/ole32/rpc.c:346] in ole32 (0x42a841ac) 5 0x4090bc9f _StubReaderThread+0xab(param=0x40246e90) [/home/cvswine/wine/dlls/ole32/rpc.c:745] in ole32 (0x42a841c4) 6 0x40396593 THREAD_Start+0xef(ptr=0x40246f70) [/home/cvswine/wine/dlls/kernel/thread.c:107] in kernel32 (0x42a84298) 7 0x400c314f start_thread+0x14b(info=0x40246f90) [/home/cvswine/wine/dlls/ntdll/thread.c:201] in ntdll (0x42a84ad4) 8 0x40044941 ?? +0x1b1 in libpthread.so.0 (0x42a84bd4) 9 0x420da1ca ?? +0x3a in libc.so.6 (0x00000000) Wine-dbg>