[0.14.21] Crash when giving error function a boolean

This subforum contains all the issues which we already resolved.
Neemys
Filter Inserter
Filter Inserter
Posts: 461
Joined: Sat Apr 09, 2016 6:16 pm
Contact:

[0.14.21] Crash when giving error function a boolean

Post by Neemys »

Hi

If you give the error function a boolean instead of a string the game crash.

Add the following piece of code anywhere (data.lua, control.lua, whatever, it just need to be executed).

Code: Select all

error(true)
or use the provided mod and factorio will crash when it try to execute the line. Here the log for when it crash during data.lua phase of the provided mod.

Code: Select all

   0.003 2017-01-13 00:31:35; Factorio 0.14.21 (build 25327, win64, steam)
   0.003 Operating system: Windows 7 Service Pack 1
   0.003 Program arguments: "Z:\Jeux\Steam\steamapps\common\Factorio\bin\x64\Factorio.exe" 
   0.003 Read data path: Z:/Jeux/Steam/steamapps/common/Factorio/data
   0.003 Write data path: C:/Users/Neemys/AppData/Roaming/Factorio
   0.003 Binaries path: Z:/Jeux/Steam/steamapps/common/Factorio/bin
   0.019 System info: [CPU:         Intel(R) Core(TM) i7-3820 CPU @ 3.60GHz, 8 cores, RAM: 16337MB]
   0.019 Display options: [FullScreen: 1] [VSync: 1] [UIScale: 100%] [MultiSampling: OFF] [Screen: 255]
   0.020 Available display adapters: 2
   0.020  [0]: \\.\DISPLAY1 - NVIDIA GeForce GTX 660 {0x05, [0,0], 1920x1080, 32bit, 60Hz}
   0.020  [1]: \\.\DISPLAY2 - NVIDIA GeForce GTX 660 {0x01, [1920,0], 1920x1080, 32bit, 60Hz}
   0.020 Create display on adapter 0. Size 1280x720 at position [310, 162].
   0.314 Initialised OpenGL:[0] GeForce GTX 660/PCIe/SSE2; driver: 4.5.0 NVIDIA 368.81
   0.315     Video memory size (dedicated/total available/current available): 2048/2048/1680 MB
   0.348 DSound: Starting _dsound_update thread
   0.349 DSound: Enter _dsound_update; tid=8744
   0.350 Desktop composition is active.
   0.350 Graphics options: [Graphics quality: normal] [Video memory usage: all] [Light scale: 100%] [DXT: false]
   0.446 Loading mod core 0.0.0 (data.lua)
   0.451 Loading mod base 0.14.21 (data.lua)
   0.547 Loading mod testbug 1.0.4 (data.lua)
   0.548 Error CrashHandler.cpp:230: Received SIGSEGV
Factorio crashed. Generating symbolized stacktrace, please wait ...
c:\cygwin64\tmp\factorio-skvdcq\libraries\stackwalker\stackwalker.cpp (906): StackWalker::ShowCallstack
c:\cygwin64\tmp\factorio-skvdcq\src\util\logger.cpp (337): Logger::writeStacktrace
c:\cygwin64\tmp\factorio-skvdcq\src\util\logger.cpp (391): Logger::logStacktrace
c:\cygwin64\tmp\factorio-skvdcq\src\util\crashhandler.cpp (105): CrashHandler::writeStackTrace
c:\cygwin64\tmp\factorio-skvdcq\src\util\crashhandler.cpp (233): CrashHandler::SignalHandler
d:\th\minkernel\crts\ucrt\src\appcrt\misc\exception_filter.cpp (219): _seh_filter_exe
f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl (273): `__scrt_common_main_seh'::`1'::filt$0
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 0000000140284614)
0000000140284614 (Factorio): (filename not available): __C_specific_handler
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 0000000076E77E8D)
0000000076E77E8D (ntdll): (filename not available): RtlDecodePointer
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 0000000076E684CF)
0000000076E684CF (ntdll): (filename not available): RtlUnwindEx
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 0000000076E9BAC8)
0000000076E9BAC8 (ntdll): (filename not available): KiUserExceptionDispatcher
c:\cygwin64\tmp\factorio-skvdcq\src\util\luahelper.cpp (1258): LuaHelper::packageDofile
c:\cygwin64\tmp\factorio-skvdcq\src\data\luadataloader.cpp (82): LuaDataLoader::loadData
c:\cygwin64\tmp\factorio-skvdcq\src\data\modmanager.cpp (290): ModManager::loadMod
c:\cygwin64\tmp\factorio-skvdcq\src\data\modmanager.cpp (230): ModManager::loadModsPhase
c:\cygwin64\tmp\factorio-skvdcq\src\data\modmanager.cpp (180): ModManager::loadData
c:\cygwin64\tmp\factorio-skvdcq\src\globalcontext.cpp (356): GlobalContext::init
c:\cygwin64\tmp\factorio-skvdcq\src\mainloop.cpp (156): MainLoop::run
c:\cygwin64\tmp\factorio-skvdcq\src\main.cpp (808): wmain
f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl (255): __scrt_common_main_seh
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 0000000076D459CD)
0000000076D459CD (kernel32): (filename not available): BaseThreadInitThunk
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 0000000076E7A2E1)
0000000076E7A2E1 (ntdll): (filename not available): RtlUserThreadStart
   3.503 Error Util.cpp:77: Unexpected error occurred. If you're running the latest version of the game you can help us solve the problem by posting the contents of the log file on the Factorio forums.
Please also include the save file(s), any mods you may be using, and any steps you know of to reproduce the crash.
I know that the error function should be calling with a string but the game shouldn't crash if a mod do something wrong so here the report. Sorry if it has already been reported, doing a search with error and boolean do give lots of result.
Attachments
testbug_1.0.4.zip
Mod to reproduce the crash.
(796 Bytes) Downloaded 69 times
Want more space restriction ? Or maybe you want to be forced to use train for other thing than ore and oil ? Try Building Platform Mod !
Rseding91
Factorio Staff
Factorio Staff
Posts: 14281
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: [0.14.21] Crash when giving error function a boolean

Post by Rseding91 »

Fixed for 0.15.

It's actually a failing of the Lua language not being able to convert a Boolean to a string.
If you want to get ahold of me I'm almost always on Discord.
Neemys
Filter Inserter
Filter Inserter
Posts: 461
Joined: Sat Apr 09, 2016 6:16 pm
Contact:

Re: [0.14.21] Crash when giving error function a boolean

Post by Neemys »

Thanks for the explanation, good luck with the other bug reports ;)
Want more space restriction ? Or maybe you want to be forced to use train for other thing than ore and oil ? Try Building Platform Mod !
Post Reply

Return to “Resolved Problems and Bugs”