https://bugs.winehq.org/show_bug.cgi?id=49094
Bug ID: 49094 Summary: "err:ntdll:RtlpWaitForCriticalSection" racy hang when starting/running StarCraft 2 Product: Wine Version: 5.7 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: bat.misc@batbytes.com Distribution: ---
Created attachment 67060 --> https://bugs.winehq.org/attachment.cgi?id=67060 wine stdout/stderr
When starting StarCraft 2, I get this error message:
[code]00d8:err:ntdll:RtlpWaitForCriticalSection section 0xe76344 "?" wait timed out in thread 00d8, blocked by 00d0, retrying (60 sec)[/code]
It is a racy hang. It sometimes happens during startup or when starting an custom game.
The version used is from the master branch, d1f858e03da732c621504f90e349d5170ca3336e from April 30th.
This is with debugging and unstripped executables but I'm unsure where to dig into this with gdb to give more helpful information. Please let me know if I can help provide better information.
https://bugs.winehq.org/show_bug.cgi?id=49094
Patrick Donnelly bat.misc@batbytes.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Distribution|--- |ArchLinux
https://bugs.winehq.org/show_bug.cgi?id=49094
Patrick Donnelly bat.misc@batbytes.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |bat.misc@batbytes.com
https://bugs.winehq.org/show_bug.cgi?id=49094
Patrick Donnelly bat.misc@batbytes.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Fixed by SHA1| |449ca2fbf9e44a40ff2cc6eedad | |a8dd2f94c7adf Resolution|--- |FIXED
--- Comment #1 from Patrick Donnelly bat.misc@batbytes.com --- It appears this commit fixes the issue:
commit 449ca2fbf9e44a40ff2cc6eedada8dd2f94c7adf HEAD Author: Zhiyi Zhang zzhang@codeweavers.com Date: Tue May 5 20:30:39 2020 +0800
user32: Leave critical section before calling callbacks in EnumDisplayMonitors().
Previously, callbacks were called with a critical section held. It was intended that monitor handles passed to callbacks should always be valid. But it created a deadlock condition when callbacks call other functions which try to grab the critical section using a different thread. Tests also show that a monitor handle can be invalid after a display change. So do not hold the critical section when calling callbacks. Monitor handles will be checked when passed to GetMonitorInfo(), which is the sole function that consumes HMONITORs.
Signed-off-by: Zhiyi Zhang zzhang@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
https://bugs.winehq.org/show_bug.cgi?id=49094
Patrick Donnelly bat.misc@batbytes.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |UNCONFIRMED Resolution|FIXED |---
--- Comment #2 from Patrick Donnelly bat.misc@batbytes.com --- Unfortunately I was wrong. This still occurs.
https://bugs.winehq.org/show_bug.cgi?id=49094
Ivan iangullo@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |iangullo@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=49094
zefkerr zefkerrigan@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |zefkerrigan@gmail.com