Opened 10 years ago

Closed 10 years ago

#6659 closed defect (fixed)

INDY3: Rare assertion in AdLib player

Reported by: eriktorbjorn Owned by: lordhoto
Priority: normal Component: Engine: SCUMM
Version: Keywords:
Cc: Game: Indiana Jones 3

Description

Current Git snapshot, English VGA version of the game.

Very occasionally, the new AdLib player will trip the following assertion when Indy changes clothes after climing out a window in Castle Brunwald:

scummvm: engines/scumm/players/player_ad.cpp:324: void Scumm::Player_AD::freeHWChannel(int): Assertion `_hwChannels[channel].allocated' failed.

It happened the first time I tried it, but I don't know how many times I had to try for it to happen a second time, let alone a third when I finally tried it in GDB. I can only assume it is some interaction between the music and the random (?) sound effects. Anyway, here is the backtrace I finally got:

~~~~~~

0 0xb7fde424 in __kernel_vsyscall ()

1 0xb77df527 in __GI_raise (sig=sig@entry=6)

at ../nptl/sysdeps/unix/sysv/linux/raise.c:56

2 0xb77e28a3 in __GI_abort () at abort.c:89

3 0xb77d88a7 in __assert_fail_base (

fmt=0xb79131b4 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", 
assertion=assertion@entry=0x942e58c "_hwChannels[channel].allocated", 
file=file@entry=0x942e568 "engines/scumm/players/player_ad.cpp", 
line=line@entry=324, 
function=function@entry=0x942e9a0  "void Scumm::Player_AD::freeHWChannel(int)") at assert.c:92

4 0xb77d8957 in __GI___assert_fail (

assertion=0x942e58c "_hwChannels[channel].allocated", 
file=0x942e568 "engines/scumm/players/player_ad.cpp", line=324, 
function=0x942e9a0  "void Scumm::Player_AD::freeHWChannel(int)") at assert.c:101

5 0x0814e3a0 in Scumm::Player_AD::freeHWChannel (this=0x9edec90, channel=1)

at engines/scumm/players/player_ad.cpp:324

6 0x0814f854 in Scumm::Player_AD::stopSfx (this=0x9edec90, sfx=0x9edef18)

at engines/scumm/players/player_ad.cpp:843

7 0x0814e2f6 in Scumm::Player_AD::allocateHWChannel (this=0x9edec90,

priority=118, owner=0x9edef18) at engines/scumm/players/player_ad.cpp:311

8 0x0814f5c4 in Scumm::Player_AD::startSfx (this=0x9edec90, sfx=0x9edef18,

resource=0xa09dc50 "v") at engines/scumm/players/player_ad.cpp:779

9 0x0814dad2 in Scumm::Player_AD::startSound (this=0x9edec90, sound=58)

at engines/scumm/players/player_ad.cpp:137

10 0x08082185 in Scumm::Sound::playSound (this=0x9ee6410, soundID=58)

at engines/scumm/sound.cpp:406

11 0x08081652 in Scumm::Sound::processSoundQueues (this=0x9ee6410)

at engines/scumm/sound.cpp:141

12 0x080815e9 in Scumm::Sound::processSound (this=0x9ee6410)

at engines/scumm/sound.cpp:128

13 0x0807f4a3 in Scumm::ScummEngine::scummLoop_handleSound (this=0x9fe65f8)

at engines/scumm/scumm.cpp:2442

14 0x0807e86c in Scumm::ScummEngine::scummLoop (this=0x9fe65f8, delta=6)

at engines/scumm/scumm.cpp:2224

15 0x0807de35 in Scumm::ScummEngine::go (this=0x9fe65f8)

at engines/scumm/scumm.cpp:2024

16 0x08080216 in Scumm::ScummEngine::run (this=0x9fe65f8)

at ./engines/scumm/scumm.h:420

17 0x08051f5c in runGame (plugin=0x9ecdce8, system=..., edebuglevels=...)

at base/main.cpp:244

18 0x08052fd3 in scummvm_main (argc=2, argv=0xbffff364) at base/main.cpp:489

19 0x08050ac4 in main (argc=2, argv=0xbffff364)

at backends/platform/sdl/posix/posix-main.cpp:45

~~~~~~

Ticket imported from: bugs/6659.

Attachments (1)

indy3-vga.s12 (16.0 KB ) - added by eriktorbjorn 10 years ago.

Download all attachments as: .zip

Change History (4)

by eriktorbjorn, 10 years ago

Attachment: indy3-vga.s12 added

comment:1 by lordhoto, 10 years ago

Owner: set to lordhoto
Resolution: fixed
Status: newpending

comment:2 by lordhoto, 10 years ago

I think this should be gone with the combination of 5be5f36aa90ecb09cde5a3d207860906bb6975f6 and a21c9ef913179fcceef82e2e926e8fc78665f8b0. At last I was not able to reproduce it anymore... Please try to check whether you can still reproduce it.

comment:3 by lordhoto, 10 years ago

Status: pendingclosed
Note: See TracTickets for help on using tickets.