Page 1 of 1

[0.16.51] Crash: "Rail::getPosition"

Posted: Sat Feb 02, 2019 2:13 am
by lactosis
Hello,

My Steam version of Factorio crashed this evening. It generated factorio-current.log with full symbolized stack trace which is in the attachment.

The bug occured when we were playing on a remote headless server. I think the cause of the bug might have been Creative mode fix 0.0.32. Me and my friend both wanted to deconstruct a section of rail with signals on it. I had deconstruction planner with rail signal filter (whitelist). I attempted to deconstruct the signals from the rail at the same time as my friend used the Creator magic wand from the Creative mode to delete the entities of the rail and signals. Ít seemed that both events happened at (approximately) the same time. The game immediately crashed.

Judging from a quick glimpse at the logs, it looks like one of the methods attempted to write to an already non-existent object. Just for info, my client was Player 1, while my friend was Player 0.

Regards,
Lactosis

Re: [0.16.51] Crash: "Rail::getPosition"

Posted: Sat Feb 02, 2019 7:29 pm
by TruePikachu

Code: Select all

23581.926 Error CrashHandler.cpp:373: Exception Code: c0000005, Address: 0x00007ff60ddadbb9
ModuleBase: 0x00007ff60dbe0000, ImageSize: 013d9000, RelativeAddress: 001cdbb9
23581.926 Error CrashHandler.cpp:379: Access Violation: Read at address 00000000000000A2
23581.926 Error CrashHandler.cpp:393: Exception Context:
rax=0000000000000000, rbx=000000e75baff040, rcx=0000000000000000,
rdx=000000e75baff030, rsi=000000e75baff050, rdi=0000000000000000,
rip=00007ff60ddadbb9, rsp=000000e75bafef10, rbp=000000e75baff230,
 r8=000000e75baff068,  r9=000000e75baff020, r10=00000000000000c8,
r11=000000e75baff030, r12=0000000000000000, r13=0000029dc6404110,
r14=000000e75baff068, r15=0000000000000001
23581.926 Crashed in D:\Programs\Steam\steamapps\common\Factorio\bin\x64\Factorio.exe (0x00007ff60dbe0000 - 0x00007ff60efb9000)
Factorio crashed. Generating symbolized stacktrace, please wait ...
c:\cygwin64\tmp\factorio-build-rlyqnq\libraries\stackwalker\stackwalker.cpp (924): StackWalker::ShowCallstack
c:\cygwin64\tmp\factorio-build-rlyqnq\src\util\logger.cpp (408): Logger::writeStacktrace
c:\cygwin64\tmp\factorio-build-rlyqnq\src\util\logger.cpp (521): Logger::logStacktrace
c:\cygwin64\tmp\factorio-build-rlyqnq\src\util\crashhandler.cpp (169): CrashHandler::writeStackTrace
c:\cygwin64\tmp\factorio-build-rlyqnq\src\util\crashhandler.cpp (420): CrashHandler::SehHandler
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFC7DD7BCF0)
00007FFC7DD7BCF0 (KERNELBASE): (filename not available): UnhandledExceptionFilter
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFC80E73167)
00007FFC80E73167 (ntdll): (filename not available): memset
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFC80E5B5E6)
00007FFC80E5B5E6 (ntdll): (filename not available): _C_specific_handler
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFC80E6F7DD)
00007FFC80E6F7DD (ntdll): (filename not available): _chkstk
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFC80DDD856)
00007FFC80DDD856 (ntdll): (filename not available): RtlWalkFrameChain
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFC80E6E70E)
00007FFC80E6E70E (ntdll): (filename not available): KiUserExceptionDispatcher
c:\cygwin64\tmp\factorio-build-rlyqnq\src\entity\rail.cpp (656): Rail::getPosition
c:\cygwin64\tmp\factorio-build-rlyqnq\src\entity\rollingstock.cpp (1292): RollingStock::getDrawPositionData
c:\cygwin64\tmp\factorio-build-rlyqnq\src\entity\rollingstock.cpp (1223): RollingStock::getSelectionBox
c:\cygwin64\tmp\factorio-build-rlyqnq\src\entity\entity.cpp (1053): Entity::selectionCollide
c:\cygwin64\tmp\factorio-build-rlyqnq\src\entity\entityselector.cpp (136): EntitySelector::checkEntityForSelection
c:\cygwin64\tmp\factorio-build-rlyqnq\src\entity\entityselector.cpp (114): EntitySelector::deduceSelectedEntity
c:\cygwin64\tmp\factorio-build-rlyqnq\src\entity\entityselector.cpp (184): EntitySelector::checkIfEntitySelectionUpdateShouldBeCreated
c:\cygwin64\tmp\factorio-build-rlyqnq\src\player.cpp (443): Player::updateEntitySelector
c:\cygwin64\tmp\factorio-build-rlyqnq\src\input\inputhandlerallegro.cpp (1087): InputHandlerAllegro::sendStateChanges
c:\cygwin64\tmp\factorio-build-rlyqnq\src\gameactionhandler.cpp (308): GameActionHandler::update
c:\cygwin64\tmp\factorio-build-rlyqnq\src\mainloop.cpp (1001): MainLoop::gameUpdateStep
c:\cygwin64\tmp\factorio-build-rlyqnq\src\mainloop.cpp (874): MainLoop::gameUpdateLoop
c:\cygwin64\tmp\factorio-build-rlyqnq\src\util\workerthread.cpp (36): WorkerThread::loop
c:\program files (x86)\microsoft visual studio\2017\buildtools\vc\tools\msvc\14.12.25827\include\thr\xthread (232): std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl RouterBase::*)(void) __ptr64,ServerRouter * __ptr64>,std::default_delete<std::tuple<void (__cdecl RouterBase::*)(void) __ptr64,ServerRouter * __ptr64> > > >::_Go
c:\program files (x86)\microsoft visual studio\2017\buildtools\vc\tools\msvc\14.12.25827\include\thr\xthread (211): std::_Pad::_Call_func
d:\th\minkernel\crts\ucrt\src\appcrt\startup\thread.cpp (115): thread_start<unsigned int (__cdecl*)(void * __ptr64)>
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFC7E933034)
00007FFC7E933034 (KERNEL32): (filename not available): BaseThreadInitThunk
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFC80E43691)
00007FFC80E43691 (ntdll): (filename not available): RtlUserThreadStart
I'll dig into the dumpfile in a bit.

EDIT: The faulting `RollingStock` has null rail targetters as both its joints. Maybe a mod tried spawning a railcar off of the track? The `RollingStock` in question appears to contain a roboport provider, though I can't identify specifically what entity it is because that information isn't present in the dump.

EDIT 2: Upon rereading the description, I believe the wand deleted the tracks from under a railcar.

Re: [0.16.51] Crash: "Rail::getPosition"

Posted: Mon Feb 18, 2019 10:42 am
by kovarex
This will not happen in 0.17