[Bug 5903] Caesar 2: system test crashes during install

wine-bugs at winehq.org wine-bugs at winehq.org
Fri May 13 20:53:09 CDT 2016


https://bugs.winehq.org/show_bug.cgi?id=5903

Michael Müller <michael at fds-team.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |michael at fds-team.de

--- Comment #20 from Michael Müller <michael at fds-team.de> ---
The crash is not really a Wine bug. During the speed test the installer opens a
file on the drive and measures the time needed to read some data from it (only
the 16 bit calls are shown):

0029:Call MMSYSTEM.1210: MMIOOPEN(12b77c5c
"D:\\HD\\AQUADCT.WAV",0000:0000,00000000) ret=1277:e107 ds=12b7
0029:Ret  MMSYSTEM.1210: MMIOOPEN() retval=0000002e ret=1277:e107 ds=12b7
0029:Call MMSYSTEM.1214: MMIOSEEK(002e,00000000,0002) ret=1277:e192 ds=12b7
0029:Ret  MMSYSTEM.1214: MMIOSEEK() retval=00004dc2 ret=1277:e192 ds=12b7
0029:Call MMSYSTEM.1214: MMIOSEEK(002e,00000000,0000) ret=1277:e1a6 ds=12b7
0029:Ret  MMSYSTEM.1214: MMIOSEEK() retval=00000000 ret=1277:e1a6 ds=12b7
0029:Call MMSYSTEM.607: TIMEGETTIME() ret=1277:e218 ds=12b7
0029:Ret  MMSYSTEM.607: TIMEGETTIME() retval=02ce0beb ret=1277:e218 ds=12b7
0029:Call MMSYSTEM.1212: MMIOREAD(002e,13cf:0000,00004dc2) ret=1277:e232
ds=12b7
0029:Ret  MMSYSTEM.1212: MMIOREAD() retval=00004dc2 ret=1277:e232 ds=12b7
0029:Call MMSYSTEM.607: TIMEGETTIME() ret=1277:e23d ds=12b7
0029:Ret  MMSYSTEM.607: TIMEGETTIME() retval=02ce0beb ret=1277:e23d ds=12b7
0029:Call KERNEL32.UnhandledExceptionFilter(0070a3a4) ret=7bca9005
wine: Unhandled division by zero at address 0x1277:0x00004f90 (thread 0029),
starting debugger...

In my case the time needed to read the data was lower than the resolution of
TIMEGETTIME (both calls return 02ce0beb as time), so we have a time difference
of zero. The application doesn't seem to be prepared for this and uses the
value as denominator in a division, leading to the division by zero exception.
If you hack TIMEGETTIME to return at least an offset of 1 compared to the
previous call, the crash is gone and my drive passes the test.

I don't think we can fix anything here as this is basically an application bug.
Dropping the filesystem cache just before running the drive test could be a
feasible workaround to slow down the read (when using a real CD drive).

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.


More information about the wine-bugs mailing list