[Bug 43674] New: Oxygen Not Included: occasional hangs
wine-bugs at winehq.org
wine-bugs at winehq.org
Fri Sep 8 00:29:04 CDT 2017
https://bugs.winehq.org/show_bug.cgi?id=43674
Bug ID: 43674
Summary: Oxygen Not Included: occasional hangs
Product: Wine
Version: 2.15
Hardware: x86-64
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: ntdll
Assignee: wine-bugs at winehq.org
Reporter: thelonewolfling at gmail.com
Distribution: ---
Created attachment 59117
--> https://bugs.winehq.org/attachment.cgi?id=59117
Tailed log filtered on lines containing 0185 or RtlpWaitForCriticalSection
Every once in a while, Oxygen Not Included softlocks. By which I mean: screen
stops updating, game does not respond to keyboard or mouse input, but the
current sounds playing keep looping (!).
It seems to occur more often the later in the game you get, and more on higher
speeds. By the time you get into the 'late' game (100 cycles+) it's >1x per
cycle (10min), generally speaking. As the game has a fixed autosave of 1x per
cycle, this rapidly becomes annoying.
My gut feeling is it's something to do with playing many sounds at once. ONI
has many ambient sounds depending on what is on screen, and when working in
areas that don't have much in them it doesn't seem to crash.
Unfortunately, this doesn't seem to be deterministic - or at least, if it is,
there's enough PRNG-ness on ONI's side to hide it.
I managed to capture a (very laggy) WINEDEBUG=+relay,+seh,+tid log.
Unfortunately, it's ~26GB. Even a .xz archive is ~260MB.
There is the following message when it hangs:
354297159:013d:err:ntdll:RtlpWaitForCriticalSection section 0x12d072c8 "?" wait
timed out in thread 013d, blocked by 0185, retrying (60 sec)
(Note: the first number here is the line number (!), as this was using grep on
the output file...)
Unfortunately, this seems to be more of a symptom than a cause. Great, so it
timed out waiting for a lock... why? And where?
I can't even attach the log starting at the erroring line - even an .xz archive
is 9MB...
I grepped through the log myself (filtered on threads 0185 & 013d), and found
something interesting... For the most part, thread 0185 seems to be just
allocating / freeing (RtlAllocateHeap / RtlFreeHeap). Then suddenly it switches
behaviors with a NtRaiseException - see the attached filtered log file. My
guess is that it's catching an error (and making a dump) but not handling it
anywhere near gracefully.
This is with wine 2.15 staging.
What should be my next steps?
--
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