[Scummvm-tracker] [ScummVM :: Bugs] #11244: CLOUD: Crash when loading a save from the launcher
ScummVM :: Bugs
trac at scummvm.org
Wed Nov 6 17:11:36 CET 2019
#11244: CLOUD: Crash when loading a save from the launcher
-------------------+--------------------
Reporter: bgK | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: Cloud
Keywords: | Game:
-------------------+--------------------
ScummVM 4810a5d8d35c5caa79f9a3a1e93d882de32b2d87.
When loading a save from the launcher, if cloud saves sync is still in
progress, the following crash occurs:
{{{
Thread 6 received signal SIGSEGV, Segmentation fault
#0 0x004c7e80 in Common::SharedPtr<Graphics::Surface>::decRef
(this=0x801ed0c) at ../common/ptr.h:203
#1 Common::SharedPtr<Graphics::Surface>::~SharedPtr (this=0x801ed0c,
__in_chrg=<optimized out>) at ../common/ptr.h:124
#2 SaveStateDescriptor::~SaveStateDescriptor (this=0x801ec80,
__in_chrg=<optimized out>) at ../engines/savestate.h:45
#3 Common::Array<SaveStateDescriptor>::freeStorage (this=<optimized out>,
elements=<optimized out>, storage=0x801ec80) at ../common/array.h:319
#4 Common::Array<SaveStateDescriptor>::operator= (array=None of size 1,
capacity 134678855 = {...}, this=0x866e764) at ../common/array.h:205
#5 Common::Array<SaveStateDescriptor>::operator= (array=None of size 1,
capacity 134678855 = {...}, this=0x866e764) at ../common/array.h:201
#6 GUI::SaveLoadChooserDialog::listSaves (this=0x866e6e0) at ../gui
/saveload-dialog.cpp:301
#7 0x004c725c in GUI::SaveLoadChooserDialog::updateSaveList
(this=this at entry=0x866e6e0) at ../gui/saveload-dialog.cpp:296
#8 0x004c87b0 in GUI::SaveLoadChooserSimple::updateSaveList
(this=0x866e6e0) at ../gui/saveload-dialog.cpp:661
#9 0x004cb688 in GUI::SaveLoadChooserSimple::handleCommand
(this=0x866e6e0, sender=sender at entry=0x866f7cc, cmd=cmd at entry=1397966158,
data=<optimized out>) at ../gui/saveload-dialog.cpp:470
#10 0x0050e0dc in GUI::CommandSender::sendCommand (data=0, cmd=1397966158,
this=0x866f7cc) at ../gui/object.h:55
#11 Cloud::SavesSyncRequest::downloadNextFile (this=this at entry=0x866f7b8)
at ../backends/cloud/savessyncrequest.cpp:269
#12 0x0050ffb4 in Cloud::SavesSyncRequest::directoryListedCallback
(this=<optimized out>, response=...) at
../backends/cloud/savessyncrequest.cpp:162
#13 0x005180e0 in
Cloud::Dropbox::DropboxListDirectoryRequest::responseCallback
(this=<optimized out>, response=...) at
../backends/cloud/dropbox/dropboxlistdirectoryrequest.cpp:195
#14 0x00529580 in Networking::CurlJsonRequest::handle (this=0x866e068) at
../backends/networking/curl/curljsonrequest.cpp:77
#15 0x00526ccc in Networking::ConnectionManager::interateRequests
(this=this at entry=0x816edb8) at
../backends/networking/curl/connectionmanager.cpp:184
#16 0x00526ed4 in Networking::ConnectionManager::handle (this=0x816edb8)
at ../backends/networking/curl/connectionmanager.cpp:159
#17 0x00506ea4 in DefaultTimerManager::handler (this=this at entry=0x802d568)
at ../backends/timer/default/default-timer.cpp:106
#18 0x0010a3e0 in _3DS::timerThreadFunc (arg=0x801e008) at
../backends/platform/3ds/osystem-events.cpp:288
#19 0x00621a90 in _thread_begin (arg=<optimized out>) at /home/fincs
/pacman-packages/libctru/src/ctrulib-1.6.0/libctru/source/thread.c:37
}}}
Meanwhile, the main thread is starting the engine normally:
{{{
#0 svcSendSyncRequest () at /home/fincs/pacman-
packages/libctru/src/ctrulib-1.6.0/libctru/source/svc.s:336
#1 0x006271c0 in FSUSER_OpenFile (out=0x8006328, out at entry=0x8006320,
archive=<optimized out>, path=..., openFlags=openFlags at entry=1,
attributes=attributes at entry=0) at /home/fincs/pacman-
packages/libctru/src/ctrulib-1.6.0/libctru/source/services/fs.c:31
#2 0x0062b928 in sdmc_open (r=0x98d018 <impure_data>,
fileStruct=0x869addc, path=<optimized out>, flags=65536, mode=438) at
/home/fincs/pacman-
packages/libctru/src/ctrulib-1.6.0/libctru/source/sdmc_dev.c:385
#3 0x007a3628 in _open_r ()
#4 0x007873c0 in _fopen_r ()
#5 0x0053218c in StdioStream::makeFromPath (path=...,
writeMode=<optimized out>) at ../common/str.h:208
#6 0x00531408 in POSIXFilesystemNode::createReadStream (this=<optimized
out>) at ../backends/fs/posix/posix-fs.h:60
#7 0x00600800 in Common::FSNode::createReadStream (this=0x8006d00) at
../common/ptr.h:152
#8 0x00600000 in Common::File::open (node=..., this=0x8006468) at
../common/file.cpp:73
--Type <RET> for more, q to quit, c to continue without paging--
#9 Common::File::open (this=this at entry=0x8006468, node=...) at
../common/file.cpp:62
#10 0x0053a2f4 in AdvancedMetaEngine::getFileProperties
(this=this at entry=0x802a608, parent=..., allFiles=..., game=...,
fname="a_data_french.mhk", fileProps=...) at ../common/hashmap.h:586
#11 0x0053a47c in AdvancedMetaEngine::detectGame
(this=this at entry=0x802a608, parent=..., allFiles=...,
language=language at entry=Common::EN_ANY,
platform=platform at entry=Common::kPlatformWindows, extra="") at
../engines/advancedDetector.cpp:408
#12 0x005395b8 in AdvancedMetaEngine::createInstance
(this=this at entry=0x802a608, syst=syst at entry=0x801e008, engine=0x8007b60,
engine at entry=0x8007b58) at ../engines/advancedDetector.cpp:258
#13 0x0010d474 in runGame (Python Exception <class 'UnicodeDecodeError'>
'utf-8' codec can't decode byte 0xf8 in position 0: invalid start byte:
edebuglevels=, system=..., plugin=0x802ed80) at ../base/main.cpp:193
#14 scummvm_main (argc=argc at entry=1, argv=argv at entry=0x8000000) at
../base/main.cpp:577
#15 0x00105d00 in main (argc=1, argv=0x8000000) at
../backends/platform/3ds/main.cpp:52
}}}
The save / load dialog is long gone when the network thread tries to
access it.
Perhaps the save / load dialog should simply poll updates from the "cloud
manager" rather than being updated by another thread.
--
Ticket URL: <https://bugs.scummvm.org/ticket/11244>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list