The game crashes when trying to play a scenario that was saved with the “player” inside a locomotive.
How to reproduce the crash
* Alternative 1: Edit the attached scenario and click “Play” or “Tick once”. The attached log file is from this alternative.
* Alternative 2: Try to play the attached scenario via “New game”. Please note that with this alternative, the game crashes so hard that it won’t produce a useful stack trace.
How to reproduce the crashing scenario
* Create a new Sandbox scenario in the editor.
* Place some rails and a locomotive.
* Enter the locomotive.
* Save.
Note: Doing this with a new Freeplay scenario also produces a crash, but it never produced a useful stack trace for me.
How reproducible is it?
Always.
Worthy of note
When opening the broken scenario in the editor, it is possible to move around, so the “player” is not inside the locomotive even though the scenario was saved with the “player” inside.
Code: Select all
19.524 Error CrashHandler.cpp:633: Received SIGSEGV
Factorio crashed. Generating symbolized stacktrace, please wait ...
Raw stacktrace: 0xd266a7, 0xf0e1ad, 0xd7e0c5, 0xd7e751, 0xd7e809, 0x33060, 0xe3c0d2, 0x1a4e2f5, 0x12d383a, 0x12d3b8d, 0x12d4208, 0x12d4657, 0x12d81ab, 0x13147a4, 0x1314aa1, 0xd3d851, 0x200fe40, 0x74a4, 0
74.372 Warning Logger.cpp:526: Symbols.size() == 30, usedSize == 18
#0 0x0000000000f0e1ad in std::__uniq_ptr_impl<LoggerFileWriteStream, std::default_delete<LoggerFileWriteStream> >::_M_ptr() const at /home/build/gcc-9.2/include/c++/9.2.0/bits/unique_ptr.h:154
#1 0x0000000000d7e0c5 in std::unique_ptr<LoggerFileWriteStream, std::default_delete<LoggerFileWriteStream> >::get() const at /home/build/gcc-9.2/include/c++/9.2.0/bits/unique_ptr.h:353
#2 0x0000000000d7e751 in std::unique_ptr<LoggerFileWriteStream, std::default_delete<LoggerFileWriteStream> >::operator->() const at /home/build/gcc-9.2/include/c++/9.2.0/bits/unique_ptr.h:347
#3 0x0000000000d7e809 in Logger::flush() at /tmp/factorio-build-J5waGd/src/Util/Logger.cpp:566
#4 0x0000000000033060 in Logger::logStacktrace(StackTraceInfo*) at /tmp/factorio-build-J5waGd/src/Util/Logger.cpp:552
#5 0x0000000000e3c0d2 in GlobalContext::getMap() at /tmp/factorio-build-J5waGd/src/GlobalContext.cpp:2048
#6 0x0000000001a4e2f5 in CrashHandler::writeStackTrace(CrashHandler::CrashReason) at /tmp/factorio-build-J5waGd/src/Util/CrashHandler.cpp:188
#7 0x00000000012d383a in CrashHandler::commonSignalHandler(int) at /tmp/factorio-build-J5waGd/src/Util/CrashHandler.cpp:635
#8 0x00000000012d3b8d in CrashHandler::SignalHandler(int) at /tmp/factorio-build-J5waGd/src/Util/CrashHandler.cpp:650
#9 0x00000000012d4208 in ?? at ??:0
#10 0x00000000012d4657 in VehiclePassenger::setPositionWithoutMapRegistration(MapPosition const&) at /tmp/factorio-build-J5waGd/src/Entity/Vehicle.cpp:83
#11 0x00000000012d81ab in Vehicle::update() at /tmp/factorio-build-J5waGd/src/Entity/Vehicle.cpp:289
#12 0x00000000013147a4 in void EntityOrderHelpers::EntityOrderList<LogisticRobot, ConstructionRobot, Inserter, Roboport, HeatPipe, Loader, AssemblingMachine, Furnace, MiningDrill, FluidWagon, ArtilleryWagon, CargoWagon, Locomotive, Character, Boiler, Generator, BurnerGenerator, Reactor, Lab, LandMine, ArithmeticCombinator, ArtilleryFlare, ArtilleryProjectile, ArtilleryTurret, Beam, Car, SpiderVehicle, CharacterCorpse, CombatRobot, Corpse, DeciderCombinator, ElectricEnergyInterface, EnemySpawner, Explosion, FireFlame, FlameThrowerExplosion, FluidStream, FluidTurret, FlyingText, Gate, HeatInterface, HighlightBoxEntity, InfinityContainer, InfinityPipe, ItemRequestProxy, OffshorePump, ParticleSource, PowerSwitch, Projectile, Pump, Radar, ProgrammableSpeaker, RocketSilo, RocketSiloRocket, SimpleSmoke, SmokeWithTrigger, SpeechBubble, Sticker, Turret, Unit>::update<Locomotive>(EntityOrderHelpers::ActiveEntitiesEntry&, IntrusiveListIterator<UpdatableEntity, void, false>&) at /tmp/factorio-build-J5waGd/src/Surface/ActiveEntitiesOrder.hpp:119
#13 0x0000000001314aa1 in EntityOrderHelpers::EntityOrderList<LogisticRobot, ConstructionRobot, Inserter, Roboport, HeatPipe, Loader, AssemblingMachine, Furnace, MiningDrill, FluidWagon, ArtilleryWagon, CargoWagon, Locomotive, Character, Boiler, Generator, BurnerGenerator, Reactor, Lab, LandMine, ArithmeticCombinator, ArtilleryFlare, ArtilleryProjectile, ArtilleryTurret, Beam, Car, SpiderVehicle, CharacterCorpse, CombatRobot, Corpse, DeciderCombinator, ElectricEnergyInterface, EnemySpawner, Explosion, FireFlame, FlameThrowerExplosion, FluidStream, FluidTurret, FlyingText, Gate, HeatInterface, HighlightBoxEntity, InfinityContainer, InfinityPipe, ItemRequestProxy, OffshorePump, ParticleSource, PowerSwitch, Projectile, Pump, Radar, ProgrammableSpeaker, RocketSilo, RocketSiloRocket, SimpleSmoke, SmokeWithTrigger, SpeechBubble, Sticker, Turret, Unit>::update(std::array<EntityOrderHelpers::ActiveEntitiesEntry, 60ul>&, IntrusiveListIterator<UpdatableEntity, void, false>&) at /tmp/factorio-build-J5waGd/src/Surface/ActiveEntitiesOrder.hpp:135
#14 0x0000000000d3d851 in Surface::update() at /tmp/factorio-build-J5waGd/src/Surface/Surface.cpp:1621
#15 0x000000000200fe40 in Map::updateEntities() at /tmp/factorio-build-J5waGd/src/Map/Map.cpp:1610 (discriminator 2)
#16 0x00000000000074a4 in Map::update() at /tmp/factorio-build-J5waGd/src/Map/Map.cpp:1571
#17 (nil) in Game::update() at /tmp/factorio-build-J5waGd/src/Game.cpp:210
#18 (nil) in Scenario::update() at /tmp/factorio-build-J5waGd/src/Scenario/Scenario.cpp:1275
#19 0x000075f3de5fa998 in Scenario::postUpdate() at /tmp/factorio-build-J5waGd/src/Scenario/Scenario.cpp:1169
#20 (nil) in Scenario::updateStep() at /tmp/factorio-build-J5waGd/src/Scenario/Scenario.cpp:1164
#21 (nil) in MainLoop::gameUpdateStep(MultiplayerManagerBase*, Scenario*, AppManager*, MainLoop::HeavyMode) at /tmp/factorio-build-J5waGd/src/MainLoop.cpp:1254
#22 (nil) in MainLoop::gameUpdateLoop(MainLoop::HeavyMode) at /tmp/factorio-build-J5waGd/src/MainLoop.cpp:1119
#23 (nil) in std::function<void ()>::operator=(decltype(nullptr)) at /home/build/gcc-9.2/include/c++/9.2.0/bits/std_function.h:498
#24 0x000075f3cc3b7e00 in WorkerThread::loop() at /tmp/factorio-build-J5waGd/src/Util/WorkerThread.cpp:49
#25 (nil) in std::default_delete<std::thread::_State>::operator()(std::thread::_State*) const at /home/build/gcc-9.2-source/gcc-9.2.0/build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/unique_ptr.h:81
#26 0x000075f300000000 in std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >::~unique_ptr() at /home/build/gcc-9.2-source/gcc-9.2.0/build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/unique_ptr.h:284
#27 (nil) in execute_native_thread_routine at /home/build/gcc-9.2-source/gcc-9.2.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/../../../../../libstdc++-v3/src/c++11/thread.cc:79
#28 (nil) in ?? at ??:0
#29 (nil) in ?? at ??:0
Stack trace logging done