Opened 5 years ago

Closed 2 years ago

#6618 closed defect (fixed)

RINGWORLD2: Game can hang when restoring savegame

Reported by: eriktorbjorn Owned by: csnover
Priority: blocker Component: Engine: TsAGE
Keywords: has-save-game, has-backtrace, has-pull-request Cc:
Game: Return to Ringworld

Description

While preparing bug report #6617 I noticed that if I try to load the savegame attached to that bug report while the creature that appears when you play the flute (and the game is waiting for me to click to dismiss a message), ScummVM will hang on a black screen.

Ticket imported from: bugs/6618.

Attachments (1)

ringworld2-cd.028 (22.3 KB ) - added by csnover 2 years ago.

Download all attachments as: .zip

Change History (8)

comment:1 by digitall, 5 years ago

The relevant savegame is:
https://sourceforge.net/p/scummvm/bugs/6617/attachment/ringworld2-cd.028

Replicated here with latest git master on Linux x86_64. Will get gdb backtrace to see where it is hung up.

comment:2 by digitall, 5 years ago

Ah, it is stuck in an Stacklock mutex in the audio. Backtrace follows:
#4 0x00000000006e0940 in SdlMutexManager::lockMutex
(this=0xc033c0,
mutex=0xe051c0) at backends/mutex/sdl/sdl-mutex.cpp:36
#5 0x00000000006cdeaa in ModularBackend::lockMutex
(this=0xbb1010,
mutex=0xe051c0) at backends/modular-backend.cpp:222
#6 0x00000000007bc06b in Common::StackLock::lock
(this=0x7ffffffb7020)
at common/mutex.cpp:68
#7 0x00000000007bbfee in Common::StackLock::StackLock
(this=0x7ffffffb7020,
mutex=..., mutexName=0x0) at common/mutex.cpp:57
#8 0x0000000000775c80 in Audio::MixerImpl::stopHandle
(this=0xe2d330,
handle=...) at audio/mixer.cpp:324
#9 0x00000000005bdb57 in TsAGE::PlayStream::stop
(this=0x12d7c60)
at engines/tsage/sound.cpp:2646
#10 0x00000000005a71dd in
TsAGE::Ringworld2::VisualSpeaker::stopSpeaking (
this=0x1336590) at engines/tsage/ringworld2
/ringworld2_speakers.cpp:269
#11 0x000000000065ffc9 in TsAGE::StripManager::remove
(this=0x13359c0)
at engines/tsage/converse.cpp:746
#12 0x0000000000423d2a in TsAGE::Action::remove
(this=0x1335980)
at engines/tsage/core.cpp:195
#13 0x00000000004de15e in TsAGE::Ringworld2::SceneExt::remove
(this=0x1335980)
at engines/tsage/ringworld2/ringworld2_logic.cpp:402
#14 0x00000000005b231e in TsAGE::SceneManager::sceneChange
(this=0x12d2d68)
at engines/tsage/scenes.cpp:78
#15 0x00000000005b2d0c in
TsAGE::SceneManager::listenerSynchronize (
this=0x12d2d68, s=...) at engines/tsage/scenes.cpp:252
#16 0x000000000041cc81 in TsAGE::Saver::restore
(this=0x1205300, slot=28)
at engines/tsage/saveload.cpp:201
#17 0x00000000004341a4 in TsAGE::SceneHandler::dispatch
(this=0x12282a0)
at engines/tsage/core.cpp:4445
#18 0x00000000004ded4d in
TsAGE::Ringworld2::SceneHandlerExt::dispatch (
this=0x12282a0) at engines/tsage/ringworld2
/ringworld2_logic.cpp:630
#19 0x000000000043372f in TsAGE::GameHandler::execute
(this=0x12282a0)
at engines/tsage/core.cpp:4263
#20 0x00000000005b498e in TsAGE::Game::execute
(this=0x1228280)
at engines/tsage/scenes.cpp:617
#21 0x000000000041f714 in TsAGE::TSageEngine::run
(this=0x121bc40)
at engines/tsage/tsage.cpp:134

comment:3 by csnover, 2 years ago

Priority: normalblocker

Raising all identified crasher, hang, and memory violation bugs which I could not fully triage myself to blocker priority for the next release.

comment:4 by csnover, 2 years ago

Keywords: has-backtrace added

by csnover, 2 years ago

Attachment: ringworld2-cd.028 added

comment:5 by csnover, 2 years ago

Keywords: has-save-game added

comment:6 by csnover, 2 years ago

Keywords: has-pull-request added
Owner: set to csnover

comment:7 by csnover, 2 years ago

Resolution: fixed
Status: newclosed

Thanks for your report! A patch for this issue has been added in commit fe45300891fea90f7ad72d66af7f060c3ec6b753 and will be available in daily builds 1.10.0git-5490 and later.

Note: See TracTickets for help on using tickets.