I'm abusing a rail-remnants prototype to get a simple entity with the collision box of a curved rail.
Making an educated guess from the stack trace, changing the time_to_live of that prototype from max 32-bit int (the type documented in the api) to a smaller value removed the crash.
... file attachment's aren't working, so here's the log:
Code: Select all
0.000 2023-11-07 11:44:58; Factorio 1.1.95 (build 61833, linux64, full)
0.019 Operating system: Linux (Pop 22.04)
0.019 Program arguments: "/usr/share/factorio/bin/x64/factorio" "--load-scenario" "factorio-test/Test" "--cache-sprite-atlas" "true" "--graphics-quality" "low" "-c" "/media/bigdrive/IdeaProjects/StagedBlueprintPlanning/factorio-test-data/config.ini" "--mod-directory" "/media/bigdrive/IdeaProjects/StagedBlueprintPlanning/factorio-test-data/mods/" "--instrument-mod" "debugadapter" "--check-unused-prototype-data"
0.019 Config path: /media/bigdrive/IdeaProjects/StagedBlueprintPlanning/factorio-test-data/config.ini
0.019 Read data path: /usr/share/factorio/data
0.019 Write data path: /media/bigdrive/IdeaProjects/StagedBlueprintPlanning/factorio-test-data [1536284/1812177MB]
0.019 Binaries path: /usr/share/factorio/bin
0.022 System info: [CPU: AMD Ryzen 7 5800X 8-Core Processor, 16 cores, RAM: 32007 MB]
0.022 Environment: DISPLAY=:1 WAYLAND_DISPLAY=<unset> DESKTOP_SESSION=pop XDG_SESSION_DESKTOP=pop XDG_CURRENT_DESKTOP=Unity __GL_FSAA_MODE=<unset> __GL_LOG_MAX_ANISO=<unset> __GL_SYNC_TO_VBLANK=<unset> __GL_SORT_FBCONFIGS=<unset> __GL_YIELD=<unset>
0.022 Display options: [FullScreen: 0] [VSync: 0] [UIScale: custom (125.0%)] [Native DPI: 1] [Screen: 0] [Special: lmw] [Lang: en]
1.735 Video driver: x11
1.735 Available displays: 2
1.735 [0]: LG HDR QHD 32" - {[0,0], 1440x2560, SDL_PIXELFORMAT_RGB888, 60Hz}
1.735 [1]: LG QHD 31" - {[1440,917], 2560x1440, SDL_PIXELFORMAT_RGB888, 144Hz}
1.937 Initialised OpenGL:[0] NVIDIA GeForce GTX 1660 Ti/PCIe/SSE2; driver: 3.3.0 NVIDIA 535.113.01
1.937 [Extensions] s3tc:yes; KHR_debug:yes; ARB_clear_texture:yes, ARB_copy_image:yes
1.937 [Version] 3.3
1.937 Graphics settings preset: very-high
1.937 Dedicated video memory size 6144 MB
1.951 Graphics options: [Graphics quality: normal] [Video memory usage: all] [DXT: high-quality] [Color: 32bit]
1.951 [Max threads (load/render): 32/14] [Max texture size: 0] [Tex.Stream.: 0] [Rotation quality: low] [Other: stDCWT] [B:0,C:0,S:100]
1.960 [Audio] Backend:SDL(default); Driver:pulseaudio, Device:Default device, Depth:16, Channels:2, Frequency:44100
2.047 Loading mod settings debugadapter 1.1.37 (instrument-settings.lua)
2.070 Loading mod settings debugadapter 1.1.37 (settings.lua)
2.071 Loading mod settings factorio-test 1.0.2 (settings.lua)
2.073 Loading mod settings PickerDollies 1.2.6 (settings.lua)
2.073 Loading mod settings bp100 0.25.3 (settings.lua)
2.076 Loading mod core 0.0.0 (data.lua)
2.100 Loading mod settings debugadapter 1.1.37 (instrument-data.lua)
2.102 Loading mod base 1.1.95 (data.lua)
2.200 Loading mod WiderNoticeTextBoxes 1.1.0 (data.lua)
2.205 Loading mod factorio-test 1.0.2 (data.lua)
2.210 Loading mod PickerDollies 1.2.6 (data.lua)
2.216 Loading mod bp100 0.25.3 (data.lua)
2.223 Loading mod base 1.1.95 (data-updates.lua)
2.227 Loading mod bp100 0.25.3 (data-updates.lua)
2.233 Loading mod bp100 0.25.3 (data-final-fixes.lua)
2.285 Checksum for core: 2152183905
2.285 Checksum of base: 1215362964
2.285 Checksum of debugadapter: 1935600697
2.285 Checksum of WiderNoticeTextBoxes: 3914411874
2.285 Checksum of factorio-test: 527632488
2.285 Checksum of stdlib: 0
2.285 Checksum of PickerDollies: 455736647
2.285 Checksum of bp100: 4021872455
Factorio crashed. Generating symbolized stacktrace, please wait ...
/tmp/factorio-build-b72gSY/src/Util/Logger.cpp (336): Logger::writeStacktrace(FileWriteStream*, StackTraceInfo*)
/tmp/factorio-build-b72gSY/src/Util/Logger.cpp (346): Logger::logStacktrace(StackTraceInfo*)
/tmp/factorio-build-b72gSY/src/Util/Logging.cpp (101): Logging::logAndAbortOrThrow(char const*, unsigned int, LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) [clone .constprop.0]
/tmp/factorio-build-b72gSY/src/Util/Logging.cpp (93): Logging::logAndAbortOrThrow(char const*, unsigned int, LogLevel, char const*, ...) [clone .constprop.0]
/tmp/factorio-build-b72gSY/src/FloatCast.hpp (63): std::enable_if<(!(is_same_v<bool, int>))&&(is_integral_v<int>), int>::type float_cast<int>(float)
/tmp/factorio-build-b72gSY/src/Entity/CorpsePrototype.cpp (82): CorpsePrototype::CorpsePrototype(PropertyTree const&)
/tmp/factorio-build-b72gSY/src/Entity/RailRemnantsPrototype.cpp (28): RailRemnantsPrototype::RailRemnantsPrototype(PropertyTree const&)
/tmp/factorio-build-b72gSY/src/Entity/RailRemnantsPrototype.cpp (69): RailRemnantsPrototype::load(PropertyTree const&)
/tmp/factorio-build-b72gSY/src/ID/PrototypeList.cpp (29): PrototypeList<EntityPrototype>::executeLoader(EntityPrototype* (*)(PropertyTree const&), PropertyTree const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
/tmp/factorio-build-b72gSY/src/Data/PrototypeLoader.cpp (31): auto PrototypeLoader::registerLoader<EntityPrototype>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, EntityPrototype* (*)(PropertyTree const&))::{lambda(auto:1&, auto:2&)#2}::operator()<PropertyTree const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const>(PropertyTree const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const
/opt/gcc-12.2.0/include/c++/12.2.0/bits/invoke.h (61): void std::__invoke_impl<void, PrototypeLoader::registerLoader<EntityPrototype>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, EntityPrototype* (*)(PropertyTree const&))::{lambda(auto:1&, auto:2&)#2}&, PropertyTree const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__invoke_other, PrototypeLoader::registerLoader<EntityPrototype>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, EntityPrototype* (*)(PropertyTree const&))::{lambda(auto:1&, auto:2&)#2}&, PropertyTree const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
/opt/gcc-12.2.0/include/c++/12.2.0/bits/invoke.h (111): std::enable_if<is_invocable_r_v<void, PrototypeLoader::registerLoader<EntityPrototype>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, EntityPrototype* (*)(PropertyTree const&))::{lambda(auto:1&, auto:2&)#2}&, PropertyTree const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, void>::type std::__invoke_r<void, PrototypeLoader::registerLoader<EntityPrototype>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, EntityPrototype* (*)(PropertyTree const&))::{lambda(auto:1&, auto:2&)#2}&, PropertyTree const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(PrototypeLoader::registerLoader<EntityPrototype>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, EntityPrototype* (*)(PropertyTree const&))::{lambda(auto:1&, auto:2&)#2}&, PropertyTree const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
/opt/gcc-12.2.0/include/c++/12.2.0/bits/std_function.h (290): std::_Function_handler<void (PropertyTree const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), PrototypeLoader::registerLoader<EntityPrototype>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, EntityPrototype* (*)(PropertyTree const&))::{lambda(auto:1&, auto:2&)#2}>::_M_invoke(std::_Any_data const&, PropertyTree const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
/opt/gcc-12.2.0/include/c++/12.2.0/bits/std_function.h (591): std::function<void (PropertyTree const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>::operator()(PropertyTree const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const
/tmp/factorio-build-b72gSY/src/Data/PrototypeLoader.cpp (288): PrototypeLoader::loadPrototypeForType(std::function<void (PropertyTree const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, PropertyTree const&)
/tmp/factorio-build-b72gSY/src/Data/PrototypeLoader.cpp (74): PrototypeLoader::loadPrototypes(PropertyTree const&, PropertyTree const&)
/tmp/factorio-build-b72gSY/src/Data/ModManager.cpp (839): ModManager::loadModPrototypes(PropertyTree&, PropertyTree const&) [clone .constprop.0]
/tmp/factorio-build-b72gSY/src/Data/ModManager.cpp (1244): ModManager::processMods(PropertyTree&, PropertyTree const&)
/tmp/factorio-build-b72gSY/src/Data/ModManager.cpp (558): ModManager::loadData(bool)
/tmp/factorio-build-b72gSY/src/GlobalContext.cpp (557): GlobalContext::init(bool, bool, bool, std::optional<WindowPositionData>) [clone .constprop.0] [clone .isra.0]
/tmp/factorio-build-b72gSY/src/MainLoop.cpp (297): MainLoop::run(Filesystem::Path const&, Filesystem::Path const&, bool, bool, std::function<void ()>, Filesystem::Path const&, MainLoop::HeavyMode)
/tmp/factorio-build-b72gSY/src/Main.cpp (1267): main
../sysdeps/nptl/libc_start_call_main.h (58): __libc_start_call_main
../csu/libc-start.c (392): __libc_start_main_impl
0x780ea2
0xffffffffffffffff
Stack trace logging done
2.568 Error FloatCast.hpp:63: 2147483648.000000 > 2147483520.000000
2.568 Error CrashHandler.cpp:641: Received 6
Logger::writeStacktrace skipped.
2.568 Error Util.cpp:100: 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.
4.098 Error CrashHandler.cpp:639: Received SIGSEGV
Logger::writeStacktrace skipped.
4.098 Error Util.cpp:100: 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.