Page 1 of 1

[0.12.16] Rotating a locomotive crashes the game

Posted: Tue Nov 10, 2015 12:05 am
by FraGag
Rotating a lone locomotive on a running train that has crashed into some other rolling stock causes the game to crash.

To reproduce, start a new game with the attached custom scenario (locomotive-crash-demo.tar.gz, unpack in the scenarios subdirectory), let the locomotive crash into the cargo wagon, then put the mouse cursor on the locomotive and use the Rotate key to rotate the locomotive.

When a locomotive on a running train is actually moving (there is no obstacle in front of the locomotive), using the Rotate key on the locomotive does nothing. However, if the locomotive is colliding with some other rolling stock, it is possible to rotate it. The locomotive moves forward a little, then the game crashes.

As a side note, it's also possible to rotate a moving locomotive when it's being driven manually. It looks a bit weird to me, but I don't know if it's a bug or if it's intentional.

Crash log:
0.000 2015-11-09 18:55:57; Factorio 0.12.16 (Build 17230, linux64)
0.000 Operating system: Linux
0.000 Program arguments: "/home/francis/factorio/bin/x64/factorio"
0.000 Read data path: /home/francis/factorio/data
0.000 Write data path: /home/francis/.factorio
0.000 Binaries path: /home/francis/factorio/bin
0.018 Available display adapters: 1
0.018 [0]: resolution 1920x1080px at [0,0]
0.018 Create display on adapter 0. Size 1280x720 at position [310, 162]. Monitor 0
0.355 Initialised OpenGL:[0] GeForce GTX 780/PCIe/SSE2; driver: 4.5.0 NVIDIA 355.11
0.377 Graphics options: [FullScreen: true] [VSync: true] [UIScale: 100%] [MultiSampling: OFF] [Graphics quality: normal] [Video memory usage: all] [Light scale: 20%] [Screen: 255]
0.402 Loading mod core 0.0.0 (data.lua)
0.403 Loading mod base 0.12.16 (data.lua)
0.722 Initial atlas bitmap size is 16384
0.724 Created atlas bitmap 16384x7707
5.731 Info Updater.cpp:731: Downloading https://www.factorio.com/updater/get-av ... iVersion=2
6.184 0 packages available to download (experimental updates enabled).
6.206 Factorio initialised
11.052 Info Scenario.cpp:123: Map version 0.12.16-2
22.638 Error RailPath.cpp:44: Path is already off.
Factorio crashed. Generating symbolized stacktrace, please wait ...
23.108 Warning Logger.cpp:315: Symbols.size() == 25, usedSize == 18
#0 0x743519 in CrashHandler::SignalHandler(int) at /tmp/factorio-m2CxmI/src/Util/CrashHandler.cpp:141
#1 0x7fb91b582680 in ?? at ??:0
#2 0x7fb91b5825f8 in ?? at ??:0
#3 0x7fb91b583a7a in ?? at ??:0
#4 0x4af4cf in RailPath::updatePosition(Rail*, Rail*) [clone .constprop.53345] at /tmp/factorio-m2CxmI/src/Rail/RailPath.cpp:42
#5 0x8fca12 in Train::resolveRailTransition(Rail*, Rail*, bool) [clone .constprop.53344] at /tmp/factorio-m2CxmI/src/Rail/Train.cpp:1247
#6 0x6e75c2 in RailJoint::startOnNewRail(Rail*, RailDirection, RailDirection, bool) [clone .part.46799] [clone .constprop.53338] at /tmp/factorio-m2CxmI/src/Rail/RailJoint.cpp:90
#7 0x6ebd93 in RollingStock::move(double, RidingState::Direction const&, bool) at /tmp/factorio-m2CxmI/src/Entity/RollingStock.cpp:224
#8 0x96b51b in move at /tmp/factorio-m2CxmI/src/Entity/RollingStock.cpp:300
#9 0x96c77e in Train::move(double) [clone .constprop.52738] at /tmp/factorio-m2CxmI/src/Rail/Train.cpp:1567
#10 0x96dce8 in move at /tmp/factorio-m2CxmI/src/Rail/Train.cpp:1431
#11 0xa1ce48 in Train::updateSpeedAndMove(Map&) [clone .constprop.52736] at /tmp/factorio-m2CxmI/src/Rail/Train.cpp:963
#12 0xa235be in TrainManager::update(Map&, bool) at /tmp/factorio-m2CxmI/src/Rail/Train.cpp:664
#13 0x6f0f88 in update at /tmp/factorio-m2CxmI/src/Rail/TrainManager.cpp:139
#14 0x802f44 in Scenario::update() at /tmp/factorio-m2CxmI/src/Map/Map.cpp:917
#15 0xd35daf in update at /tmp/factorio-m2CxmI/src/Game.cpp:143
#16 0x7fb91d1ab4a4 in update at /tmp/factorio-m2CxmI/src/Scenario/Scenario.cpp:701
#17 0x7fb91b63813d in MainLoop::updateLoop(ThreadBarrier*, boost::chrono::time_point<boost::chrono::steady_clock, boost::chrono::duration<long, boost::ratio<1l, 1000000000l> > >*, boost::chrono::time_point<boost::chrono::steady_clock, boost::chrono::duration<long, boost::ratio<1l, 1000000000l> > >*, bool*, bool) at /tmp/factorio-m2CxmI/src/MainLoop.cpp:256
23.567 Warning Logger.cpp:315: Symbols.size() == 24, usedSize == 17
23.567 Error Util.cpp:63: Unexpected error occurred. You can help us to solve the problem by posting the contents of the log file on the Factorio forums.
Factorio crashed. Generating symbolized stacktrace, please wait ...
#0 0x743519 in CrashHandler::SignalHandler(int) at /tmp/factorio-m2CxmI/src/Util/CrashHandler.cpp:141
#1 0x7fb91b582680 in ?? at ??:0
#2 0x7fb91c0f4369 in ?? at ??:0
25.078 Error Util.cpp:63: Unexpected error occurred. You can help us to solve the problem by posting the contents of the log file on the Factorio forums.

Re: [0.12.16] Rotating a locomotive crashes the game

Posted: Tue Nov 10, 2015 8:59 am
by HanziQ
Thanks for the report, fixed for the next release. Rotating locomotives while driving in manual is intentional.