[Dominik][0.17.62] Changing fluid-consuming recipe of ghost causes crash

This subforum contains all the issues which we already resolved.
Post Reply
User avatar
Manual Inserter
Manual Inserter
Posts: 1
Joined: Sat Aug 03, 2019 4:15 am

[Dominik][0.17.62] Changing fluid-consuming recipe of ghost causes crash

Post by zjg »

I laid down a blueprint containing fluid-consuming furnaces (bob's mods), then cleared the recipe while the furnace was still a ghost (via copy-paste from another empty furnace). After the furnace was built via bots, I right-click copy/paste a new fluid-consuming recipe from another furnace. This caused both 0.17.47 and 0.17.62 to crash on an "Error FluidBoxManager.cpp:572: this->doneSetup was not true" assertion.

I don't think this is a duplicate of the other bugs I could find related to this assertion, since they were all resolved months ago.

Detailed repro steps:
1- copy the stack of gold furnaces (already saved as a blueprint in the save; toolbelt slot 2)
2- paste blueprint nearby; some of the furnaces should be ghosts, due to incoming bots
3- clear recipe from one furnace that was built from personal bots (open furnace GUI; change recipe; exit recipe GUI)
4- use blueprint-copy (ctrl-c) to copy that one empty furnace
5- paste empty furnace onto other ghost furnaces, so that the pipes are no longer expecting chlorine
6- open first furnace, change recipe to any other fluid-consuming recipe
7- copy settings for the new recipe furnace (shift-right-click)
8- wait for the incoming bots to build the rest of the furnaces
9- paste settings into other furnaces (shift-left-click)
10- crashes on one of the furnaces whose recipe was changed while it was a ghost

Relevant log excerpt:

Code: Select all

Factorio crashed. Generating symbolized stacktrace, please wait ...
c:\cygwin64\tmp\factorio-build-c3ygos\src\fluid\fluidboxmanager.cpp (572): FluidBoxManager::onDestroy
c:\cygwin64\tmp\factorio-build-c3ygos\src\fluid\fluidboxmanager.cpp (606): FluidBoxManager::reset
c:\cygwin64\tmp\factorio-build-c3ygos\src\entity\assemblingmachine.cpp (750): AssemblingMachine::checkFluidMixingWithRecipe
c:\cygwin64\tmp\factorio-build-c3ygos\src\entity\assemblingmachine.cpp (432): AssemblingMachine::setupForCrafting
c:\cygwin64\tmp\factorio-build-c3ygos\src\entity\assemblingmachine.cpp (903): AssemblingMachine::copyEntitySettings
c:\cygwin64\tmp\factorio-build-c3ygos\src\manualbuilder.cpp (1306): ManualBuilder::pasteEntitySettings
c:\cygwin64\tmp\factorio-build-c3ygos\src\gameactionhandler.cpp (1246): GameActionHandler::pasteEntitySettings
c:\cygwin64\tmp\factorio-build-c3ygos\src\gameactionhandler.cpp (328): GameActionHandler::actionPerformed
c:\cygwin64\tmp\factorio-build-c3ygos\src\input\inputhandler.cpp (61): InputHandler::flushActions
c:\cygwin64\tmp\factorio-build-c3ygos\src\gameactionhandler.cpp (371): GameActionHandler::update
c:\cygwin64\tmp\factorio-build-c3ygos\src\mainloop.cpp (1185): MainLoop::gameUpdateStep
c:\cygwin64\tmp\factorio-build-c3ygos\src\mainloop.cpp (1060): MainLoop::gameUpdateLoop
c:\cygwin64\tmp\factorio-build-c3ygos\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 MapGenerationHelper::*)(void),MapGenerationHelper *>,std::default_delete<std::tuple<void (__cdecl MapGenerationHelper::*)(void),MapGenerationHelper *> > > >::_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: 0000000076EF556D)
0000000076EF556D (kernel32): (filename not available): BaseThreadInitThunk
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 000000007715385D)
000000007715385D (ntdll): (filename not available): RtlUserThreadStart
Stack trace logging done
 117.748 Error FluidBoxManager.cpp:572: this->doneSetup was not true
Let me know if there's anything else you need from me. Thanks!
0.17.62 crash dump
(665.03 KiB) Downloaded 66 times
save for repro steps
(20.71 MiB) Downloaded 80 times
0.17.62 log
(15.43 KiB) Downloaded 74 times

Former Staff
Former Staff
Posts: 658
Joined: Sat Oct 12, 2013 9:08 am

Re: [Dominik][0.17.62] Changing fluid-consuming recipe of ghost causes crash

Post by Dominik »

Hi, thanks for the report. Quite a simple bug related to the assembler only having one fluidbox when disabled.

Post Reply

Return to “Resolved Problems and Bugs”