[0.16.22] Crash when removing splitter after modded loader
Posted: Wed Feb 07, 2018 10:30 am
by Deadlock989
Searched and can't find anything that looks similar. Mining a modded loader and then immediately afterwards mining a splitter that was facing it crashes the game, but only when in this orientation, not the other three directions:
This is an irregular crash, it doesn't happen 100% of the time, but is more likely to happen the quicker you're moving, with it happening more than 50% of the time if the player is running at full speed and holding down the right mouse button to mine items in sequence. The loader must have been in the "correct" direction, i.e. in input mode, not output. The loaders are a copy of vanilla loaders but altered to be 1x1 tiles, the only substantive changes are to collision box, collision mask, selection box, belt length, belt distance and container distance. Can't reproduce it with vanilla loaders. Can't reproduce it when the arrangement is blueprinted and then rotated by 90, 180, 270. It seems like the splitter hasn't had time to do something crucial (Splitter::disconnectGroundConnections?) if the entities are removed at maximum speed. If you remove each item individually without running and wait between each item removal, the game doesn't crash.
To reproduce: hold down right mouse button just above the loader; start running south; mine the loader; mine the splitter. Problem behaviour: game crashes more than half the time. Expected behaviour: game doesn't crash.
Crash log below, example save attached with a copy of the loader mod.
Crash log
Factorio crashed. Generating symbolized stacktrace, please wait ...
c:\cygwin64\tmp\factorio-tdsspr\libraries\stackwalker\stackwalker.cpp (923): StackWalker::ShowCallstack
c:\cygwin64\tmp\factorio-tdsspr\src\util\logger.cpp (372): Logger::writeStacktrace
c:\cygwin64\tmp\factorio-tdsspr\src\util\logger.cpp (471): Logger::logStacktrace
c:\cygwin64\tmp\factorio-tdsspr\src\util\crashhandler.cpp (127): CrashHandler::writeStackTrace
c:\cygwin64\tmp\factorio-tdsspr\src\util\crashhandler.cpp (334): CrashHandler::SehHandler
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 0000000076C2B940)
0000000076C2B940 (kernel32): (filename not available): UnhandledExceptionFilter
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 0000000076D43398)
0000000076D43398 (ntdll): (filename not available): MD5Final
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 0000000076CC85C8)
0000000076CC85C8 (ntdll): (filename not available): _C_specific_handler
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 0000000076CD9D2D)
0000000076CD9D2D (ntdll): (filename not available): RtlDecodePointer
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 0000000076CC91CF)
0000000076CC91CF (ntdll): (filename not available): RtlUnwindEx
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 0000000076D01248)
0000000076D01248 (ntdll): (filename not available): KiUserExceptionDispatcher
ERROR: SymGetSymFromAddr64, GetLastError: 126 (Address: 000000003F800000)
ERROR: SymGetLineFromAddr64, GetLastError: 126 (Address: 000000003F800000)
ERROR: SymGetModuleInfo64, GetLastError: 1114 (Address: 000000003F800000)
000000003F800000 ((module-name not available)): (filename not available): (function-name not available)
c:\cygwin64\tmp\factorio-tdsspr\src\entity\splitter.cpp (575): Splitter::disconnectGroundConnections
c:\cygwin64\tmp\factorio-tdsspr\src\entity\transportbeltconnectable.cpp (424): TransportBeltConnectable::onDestroy
c:\cygwin64\tmp\factorio-tdsspr\src\entity\entity.cpp (275): Entity::forceDestroy
c:\cygwin64\tmp\factorio-tdsspr\src\entity\entity.cpp (816): Entity::mine
c:\cygwin64\tmp\factorio-tdsspr\src\manualstorage.cpp (187): ManualStorage::handleMinedEntity
c:\cygwin64\tmp\factorio-tdsspr\src\manualminer.cpp (119): ManualMiner::performMining
c:\cygwin64\tmp\factorio-tdsspr\src\entity\character.cpp (728): Character::update
c:\cygwin64\tmp\factorio-tdsspr\src\surface\chunk.cpp (575): Chunk::updateActiveEntities
c:\cygwin64\tmp\factorio-tdsspr\src\surface\chunk.cpp (624): Chunk::updateEntities
c:\cygwin64\tmp\factorio-tdsspr\src\surface\surface.cpp (1174): Surface::update
c:\cygwin64\tmp\factorio-tdsspr\src\map\map.cpp (1275): Map::update
c:\cygwin64\tmp\factorio-tdsspr\src\game.cpp (153): Game::update
c:\cygwin64\tmp\factorio-tdsspr\src\scenario\scenario.cpp (831): Scenario::update
c:\cygwin64\tmp\factorio-tdsspr\src\mainloop.cpp (991): MainLoop::gameUpdateStep
c:\cygwin64\tmp\factorio-tdsspr\src\mainloop.cpp (858): MainLoop::gameUpdateLoop
c:\cygwin64\tmp\factorio-tdsspr\src\util\workerthread.cpp (36): WorkerThread::loop
c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.12.25827\include\thr\xthread (232): std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl MapGenerationHelper::*)(void) __ptr64,MapGenerationHelper * __ptr64>,std::default_delete<std::tuple<void (__cdecl MapGenerationHelper::*)(void) __ptr64,MapGenerationHelper * __ptr64> > > >::_Go
c:\program files (x86)\microsoft visual studio\2017\community\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: 0000000076BA59ED)
0000000076BA59ED (kernel32): (filename not available): BaseThreadInitThunk
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 0000000076CDC541)
0000000076CDC541 (ntdll): (filename not available): RtlUserThreadStart
52.748 Error CrashHandler.cpp:128: Map tick at moment of crash: 4336
52.748 Error Util.cpp:67: 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.
53.881 Creating crash dump.
53.952 CrashDump success
Re: [0.16.22] Crash when removing splitter after modded loader
Posted: Wed Feb 07, 2018 10:33 am
by posila
Thanks for the report.
I believe this has been fixed for next release (0.16.23): 56701
Re: [0.16.22] Crash when removing splitter after modded loader
Posted: Wed Feb 07, 2018 10:34 am
by Deadlock989
Great. Thanks for super-speedy response.
Re: [0.16.22] Crash when removing splitter after modded loader
Posted: Thu Feb 08, 2018 5:50 pm
by y.petremann
Deadlock989 wrote:Great. Thanks for super-speedy response.
Only post if necessary but got those crash on other directions (splitter and loader going down like on the image)