[0.16.51] Crash: "Rail::getPosition"

This subforum contains all the issues which we already resolved.
Post Reply
lactosis
Manual Inserter
Manual Inserter
Posts: 1
Joined: Sat Feb 02, 2019 1:54 am
Contact:

[0.16.51] Crash: "Rail::getPosition"

Post 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
Attachments
factorio-dump-current.dmp
(534.71 KiB) Downloaded 46 times
factorio-current.log
(16.96 KiB) Downloaded 50 times

User avatar
TruePikachu
Filter Inserter
Filter Inserter
Posts: 978
Joined: Sat Apr 09, 2016 8:39 pm
Contact:

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

Post 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.

kovarex
Factorio Staff
Factorio Staff
Posts: 8078
Joined: Wed Feb 06, 2013 12:00 am
Contact:

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

Post by kovarex »

This will not happen in 0.17

Post Reply

Return to “Resolved Problems and Bugs”