Opened 6 weeks ago
Last modified 5 weeks ago
#15125 new defect
SCUMM: DIG: segmentation fault after entering the asteroid
Reported by: | 1player | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | Engine: SCUMM |
Version: | Keywords: | ||
Cc: | 1player | Game: | The Dig |
Description (last modified by )
[94639.807951] scummvm[447613]: segfault at 5654460ebd70 ip 0000564a19d6b28c sp 00007ffce2f2e730 error 4 in scummvm[564a19ca4000+3e62000] likely on CPU 15 (core 5, socket 0)
Reproducible with Steam's version of The Dig, imported wholesale into ScummVM as suggested by the Wiki.
Steps to reproduce:
- Load the attached save file
- Crashes a couple of seconds later
Affects:
ScummVM from Flathub and the one in the Arch Linux repositories.
ScummVM 2.8.1 (Mar 16 2024 08:27:46)
Using SDL backend with SDL 2.30.2
Features compiled in: TAINTED Vorbis FLAC MP3 ALSA SEQ sndio TiMidity RGB zLib MPEG2 FluidSynth Theora AAC A/52 FreeType2 FriBiDi JPEG PNG GIF TTS cloud (servers, local) ENet SDL2 TinyGL OpenGL (with shaders)
Attachments (3)
Change History (13)
by , 6 weeks ago
Attachment: | dig-steam-win.s02 added |
---|
comment:1 by , 6 weeks ago
Description: | modified (diff) |
---|
comment:2 by , 6 weeks ago
Component: | --Unset-- → Engine: SCUMM |
---|---|
Summary: | The Dig segmentation fault after entering the asteroid → SCUMM: DIG: segmentation fault after entering the asteroid |
comment:3 by , 6 weeks ago
comment:4 by , 5 weeks ago
Mind sharing your save? I tried bisecting the crash, but older versions refuse to load the game as the file has an 'invalid version'. The earliest I've been able to try is v2.8.0, which still segfaults.
By the way, this is the stacktrace:
Thread 1 "scummvm" received signal SIGSEGV, Segmentation fault. 0x0000555555a0732c in Scumm::IMuseDigital::playDigMusic (this=0x5555574e9070, songName=0x555f7e1e475c <error: Cannot access memory at address 0x555f7e1e475c>, table=0x555f7e1e4758, attribPos=1090519115, sequence=true) at engines/scumm/imuse_digi/dimuse_scripts.cpp:534 534 if (table->attribPos != 0) (gdb) bt #0 0x0000555555a0732c in Scumm::IMuseDigital::playDigMusic (this=0x5555574e9070, songName=0x555f7e1e475c <error: Cannot access memory at address 0x555f7e1e475c>, table=0x555f7e1e4758, attribPos=1090519115, sequence=true) at engines/scumm/imuse_digi/dimuse_scripts.cpp:534 #1 0x0000555555a0666c in Scumm::IMuseDigital::setDigMusicSequence (this=0x5555574e9070, seqId=2000) at engines/scumm/imuse_digi/dimuse_scripts.cpp:316 #2 0x0000555555a05aaa in Scumm::IMuseDigital::scriptSetSequence (this=0x5555574e9070, soundId=0) at engines/scumm/imuse_digi/dimuse_scripts.cpp:136 #3 0x0000555555a05937 in Scumm::IMuseDigital::scriptRefresh (this=0x5555574e9070) at engines/scumm/imuse_digi/dimuse_scripts.cpp:98 #4 0x0000555555a05777 in Scumm::IMuseDigital::scriptParse (this=0x5555574e9070, cmd=4, a=-1, b=-1) at engines/scumm/imuse_digi/dimuse_scripts.cpp:48 #5 0x00005555559f9d0f in Scumm::IMuseDigital::diMUSERefreshScript (this=0x5555574e9070) at engines/scumm/imuse_digi/dimuse_engine.cpp:999 #6 0x00005555559f7bb5 in Scumm::IMuseDigital::refreshScripts (this=0x5555574e9070) at engines/scumm/imuse_digi/dimuse_engine.cpp:377 #7 0x00005555559c80a5 in Scumm::ScummEngine_v7::scummLoop_handleSound (this=0x555557f59760) at engines/scumm/scumm.cpp:3586 #8 0x00005555559c4b76 in Scumm::ScummEngine::scummLoop (this=0x555557f59760, delta=5) at engines/scumm/scumm.cpp:2786 #9 0x00005555559c3a28 in Scumm::ScummEngine::go (this=0x555557f59760) at engines/scumm/scumm.cpp:2457 #10 0x00005555559ca067 in Scumm::ScummEngine::run (this=0x555557f59760) at ./engines/scumm/scumm.h:583 #11 0x000055555597c3b2 in runGame (plugin=0x555556bd6ad0, enginePlugin=0x555556bd6720, system=..., debugLevels=...) at base/main.cpp:326 #12 0x000055555597e79c in scummvm_main (argc=1, argv=0x7fffffffdbd8) at base/main.cpp:805 #13 0x000055555597925e in main (argc=1, argv=0x7fffffffdbd8) at backends/platform/sdl/posix/posix-main.cpp:44
comment:5 by , 5 weeks ago
Cc: | added |
---|
by , 5 weeks ago
Attachment: | dig-steam-win.s04 added |
---|
by , 5 weeks ago
Attachment: | dig-steam-win.s03 added |
---|
comment:6 by , 5 weeks ago
These work for me, thanks (it crashed three times before I made a save, I didn't want to replay the whole thing again.)
comment:7 by , 5 weeks ago
Just to be sure: are you able to replicate it each single time? (EDIT: Meaning, playing from the beginning).
@eriktorbjorn did some useful debugging on this ticket and found out that upon loading your save (which crashes on our end as well) _curMusicState was 1090519115 which likely smells like memory corruption...
comment:8 by , 5 weeks ago
Also, just to be sure: are you able to replicate it with the same data files on another device?
comment:9 by , 5 weeks ago
I don't have another device to test with. I have played from the beginning only once AFAIR, and made a few saves along the way. It is possible the corruption started on the first save. I haven't tried replaying the whole thing again on a fresh save.
comment:10 by , 5 weeks ago
Oh 🙂 that changes things... It's definitely possible that this was a one-off corruption thing. When you can please try the first 5 minutes of the game on a fresh start (up until you get inside the asteroid) and tell me how it goes.
Strange, I can't reproduce it from a new game, but I can from within your savegame... I'll ask around if any other dev is able to reproduce this