Wine regression caused by 12/02 18:05:37 UTC commit: breaks Total Annihilation

Jonathan Gevaryahu lord_nightmare at users.sourceforge.net
Sun Dec 12 23:44:35 CST 2004


On Sunday 12 December 2004 02:54 pm, Eric Pouech wrote:
> Jonathan Gevaryahu a écrit :
> does this help?
> A+
>
> Index: sync.c
> ===================================================================
> RCS file: /home/cvs/cvsroot/wine/wine/dlls/kernel/sync.c,v
> retrieving revision 1.64
> diff -u -u -r1.64 sync.c
> --- sync.c 7 Dec 2004 14:23:03 -0000 1.64
> +++ sync.c 12 Dec 2004 19:53:14 -0000
> @@ -893,7 +893,7 @@
>       OBJECT_ATTRIBUTES attr;
>       NTSTATUS status;
>
> -    if (!is_version_nt()) access = SEMAPHORE_ALL_ACCESS;
> +    if (!is_version_nt()) access = TIMER_ALL_ACCESS;
>
>       attr.Length                   = sizeof(attr);
>       attr.RootDirectory            = 0;

Unfortunately, your patch doesn't fix the problem. But I noticed 
something disturbing: in CVS (without your patch) occasionally Total 
Annihilation will run fine (it did ONCE), but almost all of the time it 
will not work, and give the previously mentioned trace result.

Sometimes, it will give a different trace result:
...
000d: select() = PENDING
warn:file:wine_nt_to_unix_file_name L"units\\CORDEV1.OVR" not found in 
/home/jon
athan/.wine/dosdevices/g:/cavedog/totala/units
warn:ntdll:NtCreateFile L"\\??\\G:\\cavedog\\totala\\units\\CORDEV1.OVR" 
not fou
nd (c000003a)
warn:file:CreateFileW Unable to create file L"units\\CORDEV1.OVR" 
(status c00000
3a)
trace:ntdll:NtCreateFile handle=0x4087f7a4 access=80000000 
name=L"\\??\\G:\\cave
dog\\totala\\units-english\\CORDOOM.FBI" objattr=00000042 root=(nil) 
sec=(nil) i
o=0x4087f7a8 alloc_size=(nil)
attr=00000080 sharing=00000003 disp=1 options=00000050 ea=(nil).0x00000000
000d: *wakeup* signaled=258 cookie=0x44f7f4a0
000d: select( flags=12, cookie=0x44f7f4a0, timeout=1102914722.834956 
(+0.003836)
, handles={0x110} )
000d: select() = PENDING
warn:file:wine_nt_to_unix_file_name L"units-english\\CORDOOM.FBI" not 
found in /
home/jonathan/.wine/dosdevices/g:/cavedog/totala
warn:ntdll:NtCreateFile 
L"\\??\\G:\\cavedog\\totala\\units-english\\CORDOOM.FBI"
 not found (c000003a)
warn:file:CreateFileW Unable to create file 
L"units-english\\CORDOOM.FBI" (statu
s c000003a)
trace:ntdll:NtCreateFile handle=0x4087f7c8 access=80000000 
name=L"\\??\\G:\\cave
dog\\totala\\units\\CORDOOM.FBI" objattr=00000042 root=(nil) sec=(nil) 
io=0x4087
f7cc alloc_size=(nil)
attr=00000080 sharing=00000003 disp=1 options=00000050 ea=(nil).0x00000000
000d: *wakeup* signaled=258 cookie=0x44f7f4a0
000d: select( flags=12, cookie=0x44f7f4a0, timeout=1102914722.844670 
(+0.005838)
, handles={0x110} )
000d: select() = PENDING
warn:file:wine_nt_to_unix_file_name L"units\\CORDOOM.FBI" not found in 
/home/jon
athan/.wine/dosdevices/g:/cavedog/totala/units
warn:ntdll:NtCreateFile L"\\??\\G:\\cavedog\\totala\\units\\CORDOOM.FBI" 
not fou
nd (c000003a)
000a: event_op( handle=0xc0, op=1 )
000a: event_op() = 0
000d: *wakeup* signaled=258 cookie=0x44f7f4a0
000d: select( flags=12, cookie=0x44f7f4a0, timeout=1102914722.854135 
(+0.007851)
, handles={0x110} )
000d: select() = PENDING
warn:file:CreateFileW Unable to create file L"units\\CORDOOM.FBI" 
(status c00000
3a)
0009: get_handle_fd( handle=0xec, access=00000000 )
0009: get_handle_fd() = 0 { fd=24, flags=0 }
trace:ntdll:NtReadFile 
(0xec,(nil),(nil),(nil),0x4087f80c,0x44404668,0x00000200,
(nil),(nil)),partial stub!
0009: get_handle_fd( handle=0xec, access=80000000 )
0009: get_handle_fd() = 0 { fd=24, flags=0 }
000d: *wakeup* signaled=258 cookie=0x44f7f4a0
000d: select( flags=12, cookie=0x44f7f4a0, timeout=1102914722.864331 
(+0.009845)
, handles={0x110} )
000d: select() = PENDING
trace:ntdll:NtReadFile = 0x00000000
0009: get_handle_fd( handle=0xec, access=00000000 )
0009: get_handle_fd() = 0 { fd=24, flags=0 }
trace:ntdll:NtReadFile 
(0xec,(nil),(nil),(nil),0x4087f414,0x4506cf40,0x00000200,
(nil),(nil)),partial stub!
0009: get_handle_fd( handle=0xec, access=80000000 )
0009: get_handle_fd() = 0 { fd=24, flags=0 }
trace:ntdll:NtReadFile = 0x00000000
trace:ntdll:NtReadFile 
(0xec,(nil),(nil),(nil),0x4087f404,0x44404668,0x00000200,
(nil),(nil)),partial stub!
...
And that trace means that it was actually working. If I hadn't Control-C 
terminated that trace, it would have run the game.

Jonathan Gevaryahu
lord_nightmare at users.sf.net



More information about the wine-devel mailing list