Page 1 of 1

[1.1.107] Crash loading save, force index check fails

Posted: Fri Apr 19, 2024 7:59 am
by oof2win2
Hi. Loaded a map on a headless server from 1.1.104 and it crashed. The crash is reproducible and always occurs immediately on startup. Log attached in spoiler and savefile as attachment.

Code: Select all

   0.000 2024-04-19 09:53:55; Factorio 1.1.107 (build 62234, linux64, headless)
   0.028 Operating system: Linux (Ubuntu 20.04)
   0.028 Program arguments: "/opt/factorio/servers/awf-regular/bin/x64/factorio" "--config" "/opt/factorio/servers/awf-regular/config/config.ini" "--port" "39002" "--start-server-load-latest" "--server-settings" "/opt/factorio/servers/awf-regular/server-settings.json" "--server-adminlist" "/opt/factorio/server-data/server-adminlist.json" "--server-banlist" "/opt/factorio/servers/awf-regular/server-banlist.json" "--rcon-port" "39002" "--rcon-password" <private>
   0.028 Config path: /opt/factorio/servers/awf-regular/config/config.ini
   0.028 Read data path: /opt/factorio/servers/awf-regular/data
   0.028 Write data path: /opt/factorio/servers/awf-regular [1605176/1859925MB]
   0.028 Binaries path: /opt/factorio/servers/awf-regular/bin
   0.033 System info: [CPU: Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz, 8 cores, RAM: 31979 MB]
   0.033 Environment: DISPLAY=<unset> WAYLAND_DISPLAY=<unset> DESKTOP_SESSION=<unset> XDG_SESSION_DESKTOP=<unset> XDG_CURRENT_DESKTOP=<unset> __GL_FSAA_MODE=<unset> __GL_LOG_MAX_ANISO=<unset> __GL_SYNC_TO_VBLANK=<unset> __GL_SORT_FBCONFIGS=<unset> __GL_YIELD=<unset>
   0.033 Running in headless mode
   0.062 Loading mod core 0.0.0 (data.lua)
   0.080 Loading mod base 1.1.107 (data.lua)
   0.223 Loading mod base 1.1.107 (data-updates.lua)
   0.297 Checksum for core: 607699937
   0.297 Checksum of base: 1054619811
   0.452 Prototype list checksum: 3034860339
   0.489 Info PlayerData.cpp:76: Local player-data.json available, timestamp 1713452643
   0.489 Info PlayerData.cpp:83: Cloud player-data.json unavailable
   0.498 Factorio initialised
   0.508 Info ServerSynchronizer.cpp:29: nextHeartbeatSequenceNumber(0) initialized Synchronizer nextTickClosureTick(0).
   0.508 Info ServerMultiplayerManager.cpp:814: updateTick(4294967295) changing state from(Ready) to(PreparedToHostGame)
   0.508 Info ServerMultiplayerManager.cpp:814: updateTick(4294967295) changing state from(PreparedToHostGame) to(CreatingGame)
   0.508 Loading map /opt/factorio/servers/awf-regular/saves/AwF-Scenario-Stable.zip: 105548570 bytes.
   0.557 Loading level.dat: 337869350 bytes.
   0.562 Info Scenario.cpp:204: Map version 1.1.104-0
Factorio crashed. Generating symbolized stacktrace, please wait ...
/tmp/factorio-build-QzKTIe/src/Util/Logger.cpp (336): Logger::writeStacktrace(FileWriteStream*, StackTraceInfo*)
/tmp/factorio-build-QzKTIe/src/Util/Logger.cpp (346): Logger::logStacktrace(StackTraceInfo*)
/tmp/factorio-build-QzKTIe/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-QzKTIe/src/Util/Logging.cpp (93): Logging::logAndAbortOrThrow(char const*, unsigned int, LogLevel, char const*, ...) [clone .constprop.0]
/tmp/factorio-build-QzKTIe/src/Surface/Chunk.cpp (828): Chunk::removeActiveNeighbourForce(ForceID)
/tmp/factorio-build-QzKTIe/src/Entity/MilitaryTarget.cpp (146): MilitaryTarget::checkNearbyForcesUnRegistration(ChunkPosition const&)
/tmp/factorio-build-QzKTIe/src/Entity/MilitaryTarget.cpp (141): MilitaryTarget::checkNearbyForcesUnRegistration(ChunkPosition const&)
/tmp/factorio-build-QzKTIe/src/Entity/MilitaryTarget.cpp (92): MilitaryTarget::unregisterOnChunk()
/tmp/factorio-build-QzKTIe/src/Entity/MilitaryTarget.cpp (152): MilitaryTarget::onDestroy()
/tmp/factorio-build-QzKTIe/src/Entity/EntityWithOwner.cpp (347): EntityWithOwner::setIsMilitaryTarget(bool)
/tmp/factorio-build-QzKTIe/src/Entity/EntityWithOwner.cpp (71): operator()
/opt/gcc-13.2.0/include/c++/13.2.0/bits/invoke.h (61): __invoke_impl<void, EntityWithOwner::EntityWithOwner(const EntityLoadingParameters&, MapDeserialiser&, MigrateFromEntityWithHealth)::<lambda()>&>
/opt/gcc-13.2.0/include/c++/13.2.0/bits/invoke.h (111): __invoke_r<void, EntityWithOwner::EntityWithOwner(const EntityLoadingParameters&, MapDeserialiser&, MigrateFromEntityWithHealth)::<lambda()>&>
/opt/gcc-13.2.0/include/c++/13.2.0/bits/std_function.h (290): _M_invoke
/tmp/factorio-build-QzKTIe/src/Map/SaveLoadHelper.cpp (7): LoadHelper::setup(LoadHelper&, SetupData const&)
/tmp/factorio-build-QzKTIe/src/Map/MapDeserialiser.cpp (86): MapDeserialiser::setupFinalLoadHelpers(SetupData const&)
/tmp/factorio-build-QzKTIe/src/Map/Map.cpp (1104): Map::setupEntities(MapDeserialiser*, bool, ProgressObserver*)
/tmp/factorio-build-QzKTIe/src/Map/Map.cpp (1187): Map::setupEntities(Map&, MapDeserialiser*, bool, ProgressObserver*)
/tmp/factorio-build-QzKTIe/src/Scenario/Scenario.cpp (355): Scenario::loadFactory(MapInterface, Filesystem::Path const*, Filesystem::Path const&, ScenarioExecutionContext, LoadType, MapDeserialiser*, InputType, InputHandler*, MultiplayerManagerBase*, ProgressObserver*, bool, InputListener*) [clone .constprop.1]
/tmp/factorio-build-QzKTIe/src/Scenario/ParallelScenarioLoader.cpp (172): ParallelScenarioLoader::doLoad(MapInterface, ParallelScenarioLoader*, MapDeserialiser*, InputType, InputHandler*, MultiplayerManagerBase*, NamedBool<EnableReplayTag>)
/opt/gcc-13.2.0/include/c++/13.2.0/bits/invoke.h (61): void std::__invoke_impl<void, void (*)(MapInterface, ParallelScenarioLoader*, MapDeserialiser*, InputType, InputHandler*, MultiplayerManagerBase*, NamedBool<EnableReplayTag>), MapInterface, ParallelScenarioLoader*, MapDeserialiser*, InputType, InputHandler*, MultiplayerManagerBase*, NamedBool<EnableReplayTag>::Enum>(std::__invoke_other, void (*&&)(MapInterface, ParallelScenarioLoader*, MapDeserialiser*, InputType, InputHandler*, MultiplayerManagerBase*, NamedBool<EnableReplayTag>), MapInterface&&, ParallelScenarioLoader*&&, MapDeserialiser*&&, InputType&&, InputHandler*&&, MultiplayerManagerBase*&&, NamedBool<EnableReplayTag>::Enum&&)
/opt/gcc-13.2.0/include/c++/13.2.0/bits/invoke.h (96): std::__invoke_result<void (*)(MapInterface, ParallelScenarioLoader*, MapDeserialiser*, InputType, InputHandler*, MultiplayerManagerBase*, NamedBool<EnableReplayTag>), MapInterface, ParallelScenarioLoader*, MapDeserialiser*, InputType, InputHandler*, MultiplayerManagerBase*, NamedBool<EnableReplayTag>::Enum>::type std::__invoke<void (*)(MapInterface, ParallelScenarioLoader*, MapDeserialiser*, InputType, InputHandler*, MultiplayerManagerBase*, NamedBool<EnableReplayTag>), MapInterface, ParallelScenarioLoader*, MapDeserialiser*, InputType, InputHandler*, MultiplayerManagerBase*, NamedBool<EnableReplayTag>::Enum>(void (*&&)(MapInterface, ParallelScenarioLoader*, MapDeserialiser*, InputType, InputHandler*, MultiplayerManagerBase*, NamedBool<EnableReplayTag>), MapInterface&&, ParallelScenarioLoader*&&, MapDeserialiser*&&, InputType&&, InputHandler*&&, MultiplayerManagerBase*&&, NamedBool<EnableReplayTag>::Enum&&)
/opt/gcc-13.2.0/include/c++/13.2.0/bits/std_thread.h (292): void std::thread::_Invoker<std::tuple<void (*)(MapInterface, ParallelScenarioLoader*, MapDeserialiser*, InputType, InputHandler*, MultiplayerManagerBase*, NamedBool<EnableReplayTag>), MapInterface, ParallelScenarioLoader*, MapDeserialiser*, InputType, InputHandler*, MultiplayerManagerBase*, NamedBool<EnableReplayTag>::Enum> >::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul>)
/opt/gcc-13.2.0/include/c++/13.2.0/bits/std_thread.h (299): std::thread::_Invoker<std::tuple<void (*)(MapInterface, ParallelScenarioLoader*, MapDeserialiser*, InputType, InputHandler*, MultiplayerManagerBase*, NamedBool<EnableReplayTag>), MapInterface, ParallelScenarioLoader*, MapDeserialiser*, InputType, InputHandler*, MultiplayerManagerBase*, NamedBool<EnableReplayTag>::Enum> >::operator()()
/opt/gcc-13.2.0/include/c++/13.2.0/bits/std_thread.h (244): std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(MapInterface, ParallelScenarioLoader*, MapDeserialiser*, InputType, InputHandler*, MultiplayerManagerBase*, NamedBool<EnableReplayTag>), MapInterface, ParallelScenarioLoader*, MapDeserialiser*, InputType, InputHandler*, MultiplayerManagerBase*, NamedBool<EnableReplayTag>::Enum> > >::_M_run()
/tmp/tmp.AizlpDmMs1/objdir/../gcc-13.2.0/libstdc++-v3/src/c++11/thread.cc (104): execute_native_thread_routine
/build/glibc-SzIz7B/glibc-2.31/nptl/pthread_create.c (477): start_thread
__clone
0xffffffffffffffff
Stack trace logging done
   9.896 Error Chunk.cpp:828: force.getIndex() - 1u < this->activeNeighbourForces.size() was not true
   9.896 Error CrashHandler.cpp:641: Received 6
Logger::writeStacktrace skipped.
   9.896 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.
   9.896 Uploading log file
   9.966 Info SystemUtil.cpp:878: Started /opt/factorio/servers/awf-regular/bin/x64/factorio; trampoline PID: 3018105

Uplading the savefile didn't work, so here is a link: https://we.tl/t-SDz3kBoiZf

Re: [1.1.107] Crash loading save, force index check fails

Posted: Fri Apr 19, 2024 12:43 pm
by Rseding91
Thanks for the report. That check means your save is corrupt. The most common way being a position was corrupt in memory when you last played it and the entity is saved with the wrong position. The only known way that has happened is bad or failing RAM.

You should look into fixing your hardware or this will likely continue to happen with future saves.

Re: [1.1.107] Crash loading save, force index check fails

Posted: Sat Apr 20, 2024 6:32 am
by distortions864
Something similar probably happened to us.

Code: Select all

17:31.13:   pipeHandle.go:  857: Error Util.cpp:86: Cannot load base mod version 1.1.106 with game version 1.1.107. Update probably failed, please download the game again.
Our server has ECC ram, and this happened on 15 separate copies of factorio.
It is possible the update was corrupt I guess, but our script does check that it is a valid zip file.

Re: [1.1.107] Crash loading save, force index check fails

Posted: Sat Apr 20, 2024 11:31 am
by Sanqui
distortions864 wrote:
Sat Apr 20, 2024 6:32 am
Something similar probably happened to us.

Code: Select all

17:31.13:   pipeHandle.go:  857: Error Util.cpp:86: Cannot load base mod version 1.1.106 with game version 1.1.107. Update probably failed, please download the game again.
Our server has ECC ram, and this happened on 15 separate copies of factorio.
It is possible the update was corrupt I guess, but our script does check that it is a valid zip file.
This seems like a different problem. How exactly are you updating the game? Can you please post the entire log file?

Re: [1.1.107] Crash loading save, force index check fails

Posted: Sun Apr 21, 2024 9:26 pm
by distortions864
Sadly, I didn't check in time and so the factorio log is gone.
It is updated via a python script: https://github.com/narc0tiq/factorio-updater