[Scummvm-tracker] [ScummVM :: Bugs] #13953: TINSEL: DW2 - random setMusicSceneDetails() mutex lock-ups when changing scenes
ScummVM :: Bugs
trac at scummvm.org
Sun Dec 4 13:08:06 UTC 2022
#13953: TINSEL: DW2 - random setMusicSceneDetails() mutex lock-ups when changing
scenes
-------------------------+----------------------------
Reporter: dwatteau | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: Engine: Tinsel
Version: | Keywords: mutex,lock-up
Game: Discworld II |
-------------------------+----------------------------
ScummVM 2.6.1 and current Git HEAD. I can only trigger this on OSX PPC,
but I think this may be a general issue that's more likely to be triggered
there (see below).
In a full gameplay (9 hours) of Discworld II DOS/GB, the game randomly got
stuck on the fade-to-black screen around 15 times when leaving a
scene/room for the next one. I had to force quit ScummVM, restart it and
load the nearest save. DW1 was very stable on the same setup, in
comparison.
Areas where this would frequently happen when leaving the scene were: the
cemetery, the vampire's crypt, the University garden, and the place
zooming on the two or three camels in Djelibeybi. The latter is where it
was the most likely to happen (more than 1 time out of 10).
When this happens, the engine appears to (randomly) get stuck right after
`Setting music scene details: camels.mus` is displayed, when
PCMMusicPlayer::setMusicSceneDetails() calls `setVol(255)`. This brings us
to MixerImpl::setChannelVolume() calling `Common::StackLock lock(_mutex)`
but never coming back from it.
Attaching some saves and logs below...
FWIW, this port is big-endian ppc32, uses GCC 4.8.5 and SDL 1.2. The bug
happens with either a -O2 release build or a -O0 debug build. With Debian
ppc32 on the same machine, I can't reproduce it, but I wonder if OSX PPC
10.4/10.5 isn't just "luckier" in triggering some threading issues, as in
bug #13661 for SAGA.
--
Ticket URL: <https://bugs.scummvm.org/ticket/13953>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list