cvs wine + win2k ole + installshield = unhappy

Dan Kegel dank at kegel.com
Sat Feb 8 05:48:37 CST 2003


Dan Kegel wrote:
> An installer made with plain old Installshield 6.
...
> Start the installer (SETUP.EXE) with the command
> $ wine --dll compobj,storage,ole,ole2,ole32,oleaut32,rpcrt4=n SETUP.EXE

OK, I have more data.  wine-20030115 works without any DLL overrides;
cvs wine requires overrides, otherwise it hangs after a while.
This is a regression.

I failed to figure out how to catch this in winedbg.
kill -HUP just killed wine;
^C in winedbg just caused winedbg to crash into gdb;
walk process printed out the table, then terminated winedbg (!);
attach doesn't appear to be a command anymore (the doc is out of date?).

What's the right way to get a stack dump of a hung program in winedbg?

--debugmsg +ole gives some idea where cvs wine hangs.
grep shows that it hangs before the second _StubMgrThread message:
ole.log:4796:trace:ole:_StubMgrThread Stub Manager Thread starting on (\\.\pipe\WINE_OLE_StubMgr_080e15b8)
ole.log:4849:trace:ole:_StubMgrThread Stub Manager Thread starting on (\\.\pipe\WINE_OLE_StubMgr_08072fb0)
olecvs.log:4797:trace:ole:_StubMgrThread Stub Manager Thread starting on (\\.\pipe\WINE_OLE_StubMgr_0000000c)

   Here's the log:

[4840 or so lines deleted]
...
trace:ole:_StubMgrThread Stub Manager Thread starting on (\\.\pipe\WINE_OLE_StubMgr_0000000c)
warn:ole:create_marshalled_proxy Could not open named pipe to broker \\.\pipe\{91814EC0-B5F0-11D2-80B9-00104B1F6CEA}, le is 2
warn:ole:create_marshalled_proxy Could not open named pipe to broker \\.\pipe\{91814EC0-B5F0-11D2-80B9-00104B1F6CEA}, le is 2
trace:ole:CoRegisterClassObject ({22d84ec7-e201-4432-b3ed-a9dca3604594},0x40f20e30,0x00000004,0x00000000,0x483778)
trace:ole:DllMain 0x40a20000 0x2 (nil)
trace:ole:_LocalServerThread Starting threader for {91814ec0-b5f0-11d2-80b9-00104b1f6cea}.
trace:ole:WINE_StringFromCLSID 0x403951d0->{91814EC0-B5F0-11D2-80B9-00104B1F6CEA}
trace:ole:CoMarshalInterface (0x40399468, {00000001-0000-0000-c000-000000000046}, 0x40f20f50, 0, (nil), 0)
trace:ole:CoGetStandardMarshal ({00000001-0000-0000-c000-000000000046},0x40f20f50,0,(nil),0,0x416f2d80)
trace:ole:StdMarshalImpl_MarshalInterface (...,{00000001-0000-0000-c000-000000000046},...)
trace:ole:CoGetPSClsid () riid={00000001-0000-0000-c000-000000000046}, pclsid=0x416f2d1c
trace:ole:WINE_StringFromCLSID 0x40a5d794->{00000001-0000-0000-C000-000000000046}
trace:ole:DllMain 0x40a20000 0x2 (nil)
trace:ole:_LocalServerThread Starting threader for {22d84ec7-e201-4432-b3ed-a9dca3604594}.
trace:ole:WINE_StringFromCLSID 0x40399438->{22D84EC7-E201-4432-B3ED-A9DCA3604594}
trace:ole:__CLSIDFromStringA {00000320-0000-0000-C000-000000000046} -> 0x416f2d1c
trace:ole:CoGetPSClsid () Returning CLSID={00000320-0000-0000-c000-000000000046}
trace:ole:WINE_StringFromCLSID 0x416f2d1c->{00000320-0000-0000-C000-000000000046}
trace:ole:CoGetClassObject
     CLSID:  {00000320-0000-0000-c000-000000000046},
     IID:    {d5f569d0-593b-101a-b569-08002b2dbf7a}
trace:ole:CoMarshalInterface (0x40399490, {00000001-0000-0000-c000-000000000046}, 0x40f20e30, 0, (nil), 0)
trace:ole:CoGetStandardMarshal ({00000001-0000-0000-c000-000000000046},0x40f20e30,0,(nil),0,0x41932d80)
trace:ole:StdMarshalImpl_MarshalInterface (...,{00000001-0000-0000-c000-000000000046},...)
trace:ole:CoGetPSClsid () riid={00000001-0000-0000-c000-000000000046}, pclsid=0x41932d1c
trace:ole:WINE_StringFromCLSID 0x40a5d794->{00000001-0000-0000-C000-000000000046}
trace:ole:__CLSIDFromStringA {00000320-0000-0000-C000-000000000046} -> 0x41932d1c
trace:ole:CoGetPSClsid () Returning CLSID={00000320-0000-0000-c000-000000000046}
trace:ole:WINE_StringFromCLSID 0x41932d1c->{00000320-0000-0000-C000-000000000046}
trace:ole:CoGetClassObject
     CLSID:  {00000320-0000-0000-c000-000000000046},
     IID:    {d5f569d0-593b-101a-b569-08002b2dbf7a}
trace:ole:COMPOBJ_DLLList_Add
trace:ole:COMPOBJ_DLLList_Add
trace:ole:PSFacBuf_CreateStub ({00000001-0000-0000-c000-000000000046},0x40f20f50,0x416f2d04)
trace:ole:PSFacBuf_CreateStub ({00000001-0000-0000-c000-000000000046},0x40f20e30,0x41932d04)

And, so you can get an idea of what would have happened
right after that, here's a diff of the working log from
wine-20030115 with the broken log from wine-cvs:

... many lines deleted ...
4821c4818,4822
< trace:ole:WINE_StringFromCLSID 0x40a5d754->{00000001-0000-0000-C000-000000000046}
---
 > trace:ole:CoMarshalInterface (0x40399490, {00000001-0000-0000-c000-000000000046}, 0x40f20e30, 0, (nil), 0)
 > trace:ole:CoGetStandardMarshal ({00000001-0000-0000-c000-000000000046},0x40f20e30,0,(nil),0,0x41932d80)
 > trace:ole:StdMarshalImpl_MarshalInterface (...,{00000001-0000-0000-c000-000000000046},...)
 > trace:ole:CoGetPSClsid () riid={00000001-0000-0000-c000-000000000046}, pclsid=0x41932d1c
 > trace:ole:WINE_StringFromCLSID 0x40a5d794->{00000001-0000-0000-C000-000000000046}
4832,1817960d4832
< trace:ole:CoUnmarshalInterface (0x40396028,{00000001-0000-0000-c000-000000000046},0x40682370)
< trace:ole:WINE_StringFromCLSID 0x40681ec4->{0000030B-0000-0000-C000-000000000046}
< trace:ole:CoGetClassObject
<   CLSID:  {0000030b-0000-0000-c000-000000000046},
<   IID:    {00000001-0000-0000-c000-000000000046}
< trace:ole:COMPOBJ_DLLList_Add
< trace:ole:StdMarshalImpl_UnmarshalInterface (...,{00000001-0000-0000-c000-000000000046},....)
< trace:ole:CoGetPSClsid () riid={00000001-0000-0000-c000-000000000046}, pclsid=0x40681e60
< trace:ole:WINE_StringFromCLSID 0x40a13754->{00000001-0000-0000-C000-000000000046}
< trace:ole:__CLSIDFromStringA {00000320-0000-0000-C000-000000000046} -> 0x40681e60
< trace:ole:CoGetPSClsid () Returning CLSID={00000320-0000-0000-c000-000000000046}
< trace:ole:WINE_StringFromCLSID 0x40681e60->{00000320-0000-0000-C000-000000000046}
< trace:ole:CoGetClassObject
<   CLSID:  {00000320-0000-0000-c000-000000000046},
<   IID:    {d5f569d0-593b-101a-b569-08002b2dbf7a}
< trace:ole:COMPOBJ_DLLList_Add
< trace:ole:DllMain 0x409d0000 0x2 (nil)
< trace:ole:_StubMgrThread Stub Manager Thread starting on (\\.\pipe\WINE_OLE_StubMgr_08072fb0)
< trace:ole:CFProxy_CreateInstance ((nil),{91814ebf-b5f0-11d2-80b9-00104b1f6cea},0x40682e04)
< trace:ole:PipeBuf_GetBuffer (0x4068231c,{00000001-0000-0000-c000-000000000046}), slightly wrong.
< trace:ole:PipeBuf_SendReceive ()
< trace:ole:DllMain 0x40a20000 0x2 (nil)
< trace:ole:_StubReaderThread STUB reader thread 80e15b8
< trace:ole:CFStub_Invoke ->CreateInstance({91814ebf-b5f0-11d2-80b9-00104b1f6cea})

-- 
Dan Kegel
http://www.kegel.com
http://counter.li.org/cgi-bin/runscript/display-person.cgi?user=78045




More information about the wine-devel mailing list