[Bug 11987] New: RtlpWaitForCriticalSection timeout in NeedForSpeed III

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Mar 11 01:55:50 CDT 2008


http://bugs.winehq.org/show_bug.cgi?id=11987

           Summary: RtlpWaitForCriticalSection timeout in NeedForSpeed III
           Product: Wine
           Version: 0.9.57.
          Platform: PC
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: ntdll
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: luis.montes at dslextreme.com


Created an attachment (id=11312)
 --> (http://bugs.winehq.org/attachment.cgi?id=11312)
patch changing the RtlpWaitForCriticalSection in dlls/ntdll/critsection.c to
look for exit thread status

When trying to play Need for Speed III, Hot Pursuit, the screen freezes about 3
out of 4 tries at startup for about 5 min before closing. Upon exit, the
terminal shows an error:
err:ntdll:RtlpWaitForCriticalSection section 0x7efec984 "loader.c:
loader_section" wait timed out in thread 001d, blocked by 001b, retrying (60
sec)

By running with WINEDEBUG=+relay I found out that the thread 001b seems to have
exit, but apparently it never released the critical section, thus the error. I
hunted down the place where the message is printed and if I modify the code to
look in the dead thread's exit status for anything other than STILL_ACTIVE then
the program always starts (but I still can't get -d3d0 to use hardware
acceleration at a decent rate |-(

After playing for a while with this patch in, upon exit I find the following:
err:ntdll:RtlpWaitForCriticalSection section 0x60041bd0 "?" wait timed out in
thread 0022, blocked by 0009, retrying (60 sec)
err:ntdll:RtlpWaitForCriticalSection section 0x60041bb8 "?" wait timed out in
thread 0022, blocked by 0021, retrying (60 sec)
err:ntdll:RtlpWaitForCriticalSection section 0x60041bd0 "?" wait timed out in
thread 0009, blocked by 0022, retrying (60 sec)

I think that implies that the threads are now getting confused because I did
not *released* the critical section held by the dead thread, the new thread got
the critical section along with the dead, and who knows what's wineserver
thinking about that. Anybody has any ideas how to properly fix it?


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
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