Page 1 of 1

[0.17.31] create-blueprint-item crash with no item_to_create

Posted: Sat Apr 13, 2019 11:41 pm
by shanemadden
I was adding a custom shortcut for a mod with an incorrect prototype - I assumed I could just set an associated_control_input to a create-blueprint-item action from a create-blueprint-item shortcut without setting an item_to_create on the shortcut itself, just on the action itself.

Leaving an item_to_create off a create-blueprint-item doesn't cause any validation errors during loading, but clicking the shortcut causes a crash to desktop:

Code: Select all

  46.354 Error CrashHandler.cpp:431: Access Violation: Read at address 0000000000000000
  46.354 Error CrashHandler.cpp:445: Exception Context:
rax=00000250ed360908, rbx=0000000000000000, rcx=0000000000000000,
rdx=000002509e1cd6e0, rsi=00000250ed360908, rdi=0000025084f44880,
rip=00007ff7e0624e29, rsp=000000e5b24ff1d0, rbp=0000025084e78210,
 r8=0000025084f44880,  r9=0000000000000000, r10=00000250ffb90000,
r11=00007ff9d71b9400, r12=0000025118595108, r13=000002509669b990,
r14=00000251185950a0, r15=0000000000000000
  46.354 Crashed in C:\Program Files (x86)\Steam\steamapps\common\Factorio\bin\x64\Factorio.exe (0x00007ff7dfd60000 - 0x00007ff7e13a8000)
Factorio crashed. Generating symbolized stacktrace, please wait ...
c:\cygwin64\tmp\factorio-build-6v5zkl\libraries\stackwalker\stackwalker.cpp (924): StackWalker::ShowCallstack
c:\cygwin64\tmp\factorio-build-6v5zkl\src\util\logger.cpp (376): Logger::writeStacktrace
c:\cygwin64\tmp\factorio-build-6v5zkl\src\util\logger.cpp (527): Logger::logStacktrace
c:\cygwin64\tmp\factorio-build-6v5zkl\src\util\crashhandler.cpp (172): CrashHandler::writeStackTrace
c:\cygwin64\tmp\factorio-build-6v5zkl\src\util\crashhandler.cpp (472): CrashHandler::SehHandler
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF9D38CBDD0)
00007FF9D38CBDD0 (KERNELBASE): (filename not available): UnhandledExceptionFilter
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF9D7143167)
00007FF9D7143167 (ntdll): (filename not available): memset
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF9D712B5E6)
00007FF9D712B5E6 (ntdll): (filename not available): _C_specific_handler
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF9D713F7DD)
00007FF9D713F7DD (ntdll): (filename not available): _chkstk
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF9D70AD856)
00007FF9D70AD856 (ntdll): (filename not available): RtlWalkFrameChain
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF9D713E70E)
00007FF9D713E70E (ntdll): (filename not available): KiUserExceptionDispatcher
c:\cygwin64\tmp\factorio-build-6v5zkl\src\gameactionhandler.cpp (4352): GameActionHandler::putItemToCursorStack
c:\cygwin64\tmp\factorio-build-6v5zkl\src\gameactionhandler.cpp (322): GameActionHandler::actionPerformed
c:\cygwin64\tmp\factorio-build-6v5zkl\src\input\inputhandler.cpp (61): InputHandler::flushActions
c:\cygwin64\tmp\factorio-build-6v5zkl\src\gameactionhandler.cpp (365): GameActionHandler::update
c:\cygwin64\tmp\factorio-build-6v5zkl\src\mainloop.cpp (1143): MainLoop::gameUpdateStep
c:\cygwin64\tmp\factorio-build-6v5zkl\src\mainloop.cpp (1015): MainLoop::gameUpdateLoop
c:\cygwin64\tmp\factorio-build-6v5zkl\src\util\workerthread.cpp (42): WorkerThread::loop
c:\program files (x86)\microsoft visual studio\2017\buildtools\vc\tools\msvc\14.15.26726\include\thr\xthread (230): std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl*)(ParallelScenarioSaver *),ParallelScenarioSaver *>,std::default_delete<std::tuple<void (__cdecl*)(ParallelScenarioSaver *),ParallelScenarioSaver *> > > >::_Go
c:\program files (x86)\microsoft visual studio\2017\buildtools\vc\tools\msvc\14.15.26726\include\thr\xthread (209): std::_Pad::_Call_func
minkernel\crts\ucrt\src\appcrt\startup\thread.cpp (115): thread_start<unsigned int (__cdecl*)(void * __ptr64)>
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF9D4EA3DC4)
00007FF9D4EA3DC4 (KERNEL32): (filename not available): BaseThreadInitThunk
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FF9D7113691)
00007FF9D7113691 (ntdll): (filename not available): RtlUserThreadStart
Stack trace logging done
  48.946 Error CrashHandler.cpp:177: Map tick at moment of crash: 200
  48.946 Error Util.cpp:97: 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.
 109.990 Uploading log file
 109.998 Error CrashHandler.cpp:213: Heap validation: success.
 110.000 Creating crash dump.
 110.510 CrashDump success
Repro steps: download Klonan's Unit Control https://mods.factorio.com/mod/Unit_Control, comment out the item_to_create in a shortcut https://github.com/Klonan/Unit_Control/ ... l.lua#L203 in your local copy, start a new game and click the shortcut.

Re: [0.17.31] create-blueprint-item crash with no item_to_create

Posted: Sun Apr 14, 2019 8:33 am
by Bilka
Thanks for the report, fixed for the next version.