Page 1 of 1

[Rseding91] .15.26 GUI/remote change crash

Posted: Mon Jul 03, 2017 7:34 am
by Nexela
Using Creative Mode Mod and Nanobots Mod

https://mods.factorio.com/api/downloads ... _1.8.2.zip
https://mods.factorio.com/api/downloads ... _0.3.7.zip

Open a new game
Click the creative mode button at the top
Click Modding, Click Interfaces, Click Nanobots
Press ESCAPE and save game
Load Game Boom

Offending code (nanobots side) interface.lua Commenting these out causes the crash to stop and the save to load

Code: Select all

--Register with creative-mode for easy testing
if remote.interfaces["creative-mode"] and remote.interfaces["creative-mode"]["register_remote_function_to_modding_ui"] then
    remote.call("creative-mode", "register_remote_function_to_modding_ui", MOD.if_name, "print_global")
    remote.call("creative-mode", "register_remote_function_to_modding_ui", MOD.if_name, "reset_mod")
    remote.call("creative-mode", "register_remote_function_to_modding_ui", MOD.if_name, "reset_queue")
    remote.call("creative-mode", "register_remote_function_to_modding_ui", MOD.if_name, "console")
end

Code: Select all

 61.012 Loading script.dat: 19110 bytes.
  61.014 Checksum for script E:/Games/Factorio_Web/Factorio_Devel/temp/currently-playing/control.lua: 282129324
  61.044 Checksum for script __creative-mode__/control.lua: 3979402691
  61.050 Error CrashHandler.cpp:141: Exception Code: c0000005, Address: 0x000000013f7c8463
ModuleBase: 0x000000013f720000, ImageSize: 01215000, RelativeAddress: 000a8463
  61.050 Error CrashHandler.cpp:151: Exception Context:
rax=00000000249867f0, rbx=000000009f11b500, rcx=000000006cc3c670,
rdx=000000009f11b500, rsi=000000009f11b500, rdi=000000006cc3c670,
rip=000000013f7c8463, rsp=000000005193d8b0, rbp=000000005193da39,
 r8=0000000000000000,  r9=000000004fea7010, r10=000000006cc3c680,
r11=000000004fea6ed0, r12=0000000000000001, r13=000000000e995850,
r14=000000006d1cd320, r15=0000000000000000
  61.050 Crashed in E:\Games\Factorio_Web\Factorio_Devel\bin\x64\factorio.exe (0x000000013f720000 - 0x0000000140935000)
Factorio crashed. Generating symbolized stacktrace, please wait ...
c:\cygwin64\tmp\factorio-qqimwx\libraries\stackwalker\stackwalker.cpp (923): StackWalker::ShowCallstack
c:\cygwin64\tmp\factorio-qqimwx\src\util\logger.cpp (364): Logger::writeStacktrace
c:\cygwin64\tmp\factorio-qqimwx\src\util\logger.cpp (421): Logger::logStacktrace
c:\cygwin64\tmp\factorio-qqimwx\src\util\crashhandler.cpp (105): CrashHandler::writeStackTrace
c:\cygwin64\tmp\factorio-qqimwx\src\util\crashhandler.cpp (177): CrashHandler::SehHandler
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 000000007769BC10)
000000007769BC10 (kernel32): (filename not available): UnhandledExceptionFilter
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00000000777A0108)
00000000777A0108 (ntdll): (filename not available): EtwEventSetInformation
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 0000000077737958)
0000000077737958 (ntdll): (filename not available): _C_specific_handler
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 000000007774812D)
000000007774812D (ntdll): (filename not available): RtlDecodePointer
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 000000007773855F)
000000007773855F (ntdll): (filename not available): RtlUnwindEx
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 000000007776BCB8)
000000007776BCB8 (ntdll): (filename not available): KiUserExceptionDispatcher
c:\cygwin64\tmp\factorio-qqimwx\src\customgui\customgui.cpp (389): CustomGui::addMapping
c:\cygwin64\tmp\factorio-qqimwx\src\customgui\customguielement.cpp (61): CustomGuiElement::addModMappingRecursively
c:\cygwin64\tmp\factorio-qqimwx\src\customgui\customguielement.cpp (298): CustomGuiElement::add
c:\cygwin64\tmp\factorio-qqimwx\src\script\luaguielement.cpp (295): LuaGuiElement::luaAdd
c:\cygwin64\tmp\factorio-qqimwx\src\script\luabinder.hpp (312): LuaBinder<LuaRecipePrototype>::callWrapper
c:\cygwin64\tmp\factorio-qqimwx\libraries\lua\ldo.c (320): luaD_precall
c:\cygwin64\tmp\factorio-qqimwx\libraries\lua\lvm.c (710): luaV_execute
c:\cygwin64\tmp\factorio-qqimwx\libraries\lua\lapi.c (950): f_call
c:\cygwin64\tmp\factorio-qqimwx\libraries\lua\ldo.c (131): luaD_rawrunprotected
c:\cygwin64\tmp\factorio-qqimwx\src\script\luaremote.cpp (103): LuaInterface::runFunction
c:\cygwin64\tmp\factorio-qqimwx\src\script\luaremote.cpp (196): LuaRemote::luaRemoteCall
c:\cygwin64\tmp\factorio-qqimwx\src\script\luabinder.hpp (312): LuaBinder<LuaCommandProcessor>::callWrapper
c:\cygwin64\tmp\factorio-qqimwx\libraries\lua\ldo.c (320): luaD_precall
c:\cygwin64\tmp\factorio-qqimwx\libraries\lua\lvm.c (710): luaV_execute
c:\cygwin64\tmp\factorio-qqimwx\libraries\lua\lapi.c (950): f_call
c:\cygwin64\tmp\factorio-qqimwx\libraries\lua\ldo.c (131): luaD_rawrunprotected
c:\cygwin64\tmp\factorio-qqimwx\libraries\lua\lapi.c (976): lua_pcallk
c:\cygwin64\tmp\factorio-qqimwx\src\util\luahelper.cpp (1690): LuaHelper::packageDofile
c:\cygwin64\tmp\factorio-qqimwx\src\util\luahelper.cpp (1720): LuaHelper::packageRequireTryFile
c:\cygwin64\tmp\factorio-qqimwx\src\util\luahelper.cpp (1789): LuaHelper::packageRequire
c:\cygwin64\tmp\factorio-qqimwx\libraries\lua\ldo.c (320): luaD_precall
c:\cygwin64\tmp\factorio-qqimwx\libraries\lua\lvm.c (710): luaV_execute
c:\cygwin64\tmp\factorio-qqimwx\libraries\lua\lapi.c (950): f_call
c:\cygwin64\tmp\factorio-qqimwx\libraries\lua\ldo.c (131): luaD_rawrunprotected
c:\cygwin64\tmp\factorio-qqimwx\libraries\lua\lapi.c (976): lua_pcallk
c:\cygwin64\tmp\factorio-qqimwx\src\util\luahelper.cpp (1690): LuaHelper::packageDofile
c:\cygwin64\tmp\factorio-qqimwx\src\script\luagamescript.cpp (313): LuaGameScript::LuaGameScript
c:\cygwin64\tmp\factorio-qqimwx\src\script\luacontext.cpp (200): LuaContext::createScript
c:\cygwin64\tmp\factorio-qqimwx\src\script\luacontext.cpp (41): LuaContext::LuaContext
c:\cygwin64\tmp\factorio-qqimwx\src\scenario\scenario.cpp (424): Scenario::createLuaContext
c:\cygwin64\tmp\factorio-qqimwx\src\scenario\scenario.cpp (235): Scenario::loadFactory
c:\cygwin64\tmp\factorio-qqimwx\src\scenario\parallelscenarioloader.cpp (116): ParallelScenarioLoader::doLoad
c:\program files (x86)\microsoft visual studio 14.0\vc\include\thr\xthread (247): std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl*)(ParallelScenarioLoader * __ptr64,MapDeserialiser * __ptr64,enum InputType,InputHandler * __ptr64,MultiplayerManagerBase * __ptr64,bool),ParallelScenarioLoader * __ptr64,MapDeserialiser * __ptr64,enum InputType,InputHandler * __ptr64,MultiplayerManagerBase * __ptr64,bool>,std::default_delete<std::tuple<void (__cdecl*)(ParallelScenarioLoader * __ptr64,MapDeserialiser * __ptr64,enum InputType,InputHandler * __ptr64,MultiplayerManagerBase * __ptr64,bool),ParallelScenarioLoader * __ptr64,MapDeserialiser * __ptr64,enum InputType,InputHandler * __ptr64,MultiplayerManagerBase * __ptr64,bool> > > >::_Run
c:\program files (x86)\microsoft visual studio 14.0\vc\include\thr\xthread (210): std::_Pad::_Call_func
d:\th\minkernel\crts\ucrt\src\appcrt\startup\thread.cpp (115): thread_start<unsigned int (__cdecl*)(void * __ptr64)>
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00000000776159CD)
00000000776159CD (kernel32): (filename not available): BaseThreadInitThunk
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 000000007774A561)
000000007774A561 (ntdll): (filename not available): RtlUserThreadStart

Re: [Rseding91] .15.26 GUI/remote change crash

Posted: Mon Jul 03, 2017 10:30 am
by Rseding91
Thanks for the report. I've fixed it for the next version of 0.15 so attempting to do remote.call from outside of an event will result in an error instead of desyncs/crashes.