[Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)

This subforum contains all the issues which we already resolved.
Post Reply
talchas
Inserter
Inserter
Posts: 32
Joined: Sat Dec 16, 2017 1:58 am
Contact:

[Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)

Post by talchas »

Running angels + bobs + a bunch of stuff, I had a ghost of an induction furnace crafting iron bars -> molten iron (fluid). I then hooked this up to a pipe, into a casting machine set to molten copper fluid -> copper plates. Filling in the ghost by hand succeeded, the furnace animated for a bit, and then the game crashed, presumably due to the fluid conflict.
Attachments
factorio-current.log
(60.54 KiB) Downloaded 134 times

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

Re: [Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)

Post by Dominik »

Hi, thanks for the report. But I will need more info.
The log does not contain the crash. I guess it has been overwritten.
How does the furnace work? It outputs different fluid based on what you put inside, or there are different types of furnaces that output different fluids, or is it a recipe?

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

Re: [Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)

Post by Dominik »

It would be nice if you could reproduce it and send me to proper log.
I have identified a kinda related issue though in the base game now then testing what you did. But I don't think it is the same thing.
I suspect that it actually might be an assembler inside and not a furnace. In that case it would be the same issue I already have.

Coppermine
Long Handed Inserter
Long Handed Inserter
Posts: 79
Joined: Sat May 06, 2017 11:25 am
Contact:

Re: [Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)

Post by Coppermine »

I've had (what I believe to be) the same crash (also in 0.17.12) with Angel's Electrolysers and Algae farms. These, and the Induction furnace mentioned in the OP, are all assembler-like entities, not furnace-like.

It happens when a fluid-related recipe is set on the ghost and you build on the ghost, inheriting the recipe, with (possibly) the fluids not matching those in adjacent pipes.

The crash in my log is:

Code: Select all

Factorio crashed. Generating symbolized stacktrace, please wait ...
Raw stacktrace: 0xaf674b, 0xc6e1ad, 0x9ecac8, 0xc626aa, 0xe48293, 0xedd729, 0xeddf7c, 0xede243, 0xedea50, 0xedf04e, 0xedf303, 0xf05d31, 0xf31580, 0xf31e3d, 0xf3207e, 0x520838, 0, 0x52e49e
 111.045 Warning Logger.cpp:542: Symbols.size() == 25, usedSize == 17
#0  0x0000000000c6e1ad in std::__uniq_ptr_impl<LoggerFileWriteStream, std::default_delete<LoggerFileWriteStream> >::_M_ptr() const at /usr/include/c++/8/bits/unique_ptr.h:150
#1  0x00000000009ecac8 in std::unique_ptr<LoggerFileWriteStream, std::default_delete<LoggerFileWriteStream> >::get() const at /usr/include/c++/8/bits/unique_ptr.h:343
#2  0x0000000000c626aa in std::unique_ptr<LoggerFileWriteStream, std::default_delete<LoggerFileWriteStream> >::operator->() const at /usr/include/c++/8/bits/unique_ptr.h:337
#3  0x0000000000e48293 in Logger::flush() at /tmp/factorio-build-mqEV1z/src/Util/Logger.cpp:578
#4  0x0000000000edd729 in Logger::logStacktrace(StackTraceInfo*) at /tmp/factorio-build-mqEV1z/src/Util/Logger.cpp:566
#5  0x0000000000eddf7c in Logging::flush() at /tmp/factorio-build-mqEV1z/src/Util/Logging.cpp:65
#6  0x0000000000ede243 in Logging::logAndAbortOrThrow(char const*, unsigned int, LogLevel, std::string const&) at /tmp/factorio-build-mqEV1z/src/Util/Logging.cpp:90
#7  0x0000000000edea50 in ProductionHelper::createMaterialGuiSlot(MaterialID const&, unsigned int, bool, Inventory const&, FluidBoxManager const*, ItemStackTargetSpecification const&, GuiActionHandler*, GuiAction::Source, ForceData const*, bool) at /tmp/factorio-build-mqEV1z/src/Material/ProductionHelper.cpp:251
#8  0x0000000000edf04e in ProductionHelper::SlotResult& std::vector<ProductionHelper::SlotResult, std::allocator<ProductionHelper::SlotResult> >::emplace_back<ProductionHelper::SlotResult>(ProductionHelper::SlotResult&&) at /usr/include/c++/8/bits/vector.tcc:100
#9  0x0000000000edf303 in AssemblingMachineGui::updateContent() at /tmp/factorio-build-mqEV1z/src/Gui/AssemblingMachineGui.cpp:110
#10 0x0000000000f05d31 in CommonMapInteraction::openEntityGui(Controller&, ForceData const*, Entity const*, unsigned char) at /tmp/factorio-build-mqEV1z/src/Input/CommonMapInteraction.cpp:398
#11 0x0000000000f31580 in CommonMapInteraction::openGuiInternal(Controller&) at /tmp/factorio-build-mqEV1z/src/Input/CommonMapInteraction.cpp:154
#12 0x0000000000f31e3d in CommonMapInteraction::openGui(Controller&, bool) at /tmp/factorio-build-mqEV1z/src/Input/CommonMapInteraction.cpp:111
#13 0x0000000000f3207e in GameView::loadGuiForController() at /tmp/factorio-build-mqEV1z/src/GameView.cpp:561
#14 0x0000000000520838 in GameView::executeAction(GameViewAction const&) at /tmp/factorio-build-mqEV1z/src/GameView.cpp:361
#15 (nil) in GameView::executeActions(std::vector<GameViewAction, std::allocator<GameViewAction> > const&) at /tmp/factorio-build-mqEV1z/src/GameView.cpp:329 (discriminator 3)
#16 0x000000000052e49e in std::vector<GameViewAction, std::allocator<GameViewAction> >::clear() at /usr/include/c++/8/bits/stl_vector.h:1386
#17 (nil) in Game::postAllegroActionProcessed() at /tmp/factorio-build-mqEV1z/src/Game.cpp:255
#18 0x3f1555563eb33333 in Game::postUpdate() at /tmp/factorio-build-mqEV1z/src/Game.cpp:228
#19 0x421c000041980000 in MainLoop::prepare() at /tmp/factorio-build-mqEV1z/src/MainLoop.cpp:866
#20 0x3f30a3d73eda740e in MainLoop::mainLoopStep(WorkerThread&, MainLoop::HeavyMode) at /tmp/factorio-build-mqEV1z/src/MainLoop.cpp:596
#21 0x0000000000408020 in MainLoop::run(Filesystem::Path const&, Filesystem::Path const&, bool, bool, std::function<void ()>, Filesystem::Path const&, MainLoop::HeavyMode) at /tmp/factorio-build-mqEV1z/src/MainLoop.cpp:364
#22 0x0000000002f78360 in main at /tmp/factorio-build-mqEV1z/src/Main.cpp:1242 (discriminator 3)
#23 0x0000000000000001 in ?? at ??:0
#24 0x000000000f2c9238 in _start at ??:?
Stack trace logging done
 115.696 Warning Logger.cpp:542: Symbols.size() == 20, usedSize == 16
 115.696 Error ProductionHelper.cpp:255: Failed to create GUI slot: objectIndex: 0, isInput: true, inventory size: 0, fluidBoxManager: true, input size: 0, output size: 0, target specification: source: entity-inventory, target: default, inventory index: 2, slot index: 0, source: 75

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

Re: [Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)

Post by Dominik »

I believe then that I have fixed it by preventing that kind of fast-replace. Let me know if it is ok with your modded thing too (in 17.14.)

talchas
Inserter
Inserter
Posts: 32
Joined: Sat Dec 16, 2017 1:58 am
Contact:

Re: [Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)

Post by talchas »

Whoops, my bad, I should have double checked the attachment. And yes, that crash is the same (and 0.17.14 fixes it).

sturmeh
Manual Inserter
Manual Inserter
Posts: 1
Joined: Sat Mar 16, 2019 10:42 am
Contact:

Re: [Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)

Post by sturmeh »

I am still seeing this in 0.17.14...

Code: Select all

Factorio crashed. Generating symbolized stacktrace, please wait ...
c:\cygwin64\tmp\factorio-build-0gksbm\libraries\stackwalker\stackwalker.cpp (924): StackWalker::ShowCallstack
c:\cygwin64\tmp\factorio-build-0gksbm\src\util\logger.cpp (376): Logger::writeStacktrace
c:\cygwin64\tmp\factorio-build-0gksbm\src\util\logger.cpp (527): Logger::logStacktrace
c:\cygwin64\tmp\factorio-build-0gksbm\src\util\logging.cpp (89): Logging::logAndAbortOrThrow
c:\cygwin64\tmp\factorio-build-0gksbm\src\util\logging.cpp (83): Logging::logAndAbortOrThrow
c:\cygwin64\tmp\factorio-build-0gksbm\src\fluid\fluidboxmanager.cpp (410): FluidBoxManager::setup
c:\cygwin64\tmp\factorio-build-0gksbm\src\entity\craftingmachine.cpp (1078): CraftingMachine::setup
c:\cygwin64\tmp\factorio-build-0gksbm\src\entity\assemblingmachine.cpp (797): AssemblingMachine::setup
c:\cygwin64\tmp\factorio-build-0gksbm\src\surface\surface.cpp (184): Surface::setupEntity
c:\cygwin64\tmp\factorio-build-0gksbm\src\manualbuilder.cpp (955): ManualBuilder::buildItem
c:\cygwin64\tmp\factorio-build-0gksbm\src\controller\godcontroller.cpp (858): GodController::buildItem
c:\cygwin64\tmp\factorio-build-0gksbm\src\gameactionhandler.cpp (667): GameActionHandler::buildItem
c:\cygwin64\tmp\factorio-build-0gksbm\src\gameactionhandler.cpp (321): GameActionHandler::actionPerformed
c:\cygwin64\tmp\factorio-build-0gksbm\src\input\inputhandler.cpp (61): InputHandler::flushActions
c:\cygwin64\tmp\factorio-build-0gksbm\src\gameactionhandler.cpp (364): GameActionHandler::update
c:\cygwin64\tmp\factorio-build-0gksbm\src\mainloop.cpp (1094): MainLoop::gameUpdateStep
c:\cygwin64\tmp\factorio-build-0gksbm\src\mainloop.cpp (967): MainLoop::gameUpdateLoop
c:\cygwin64\tmp\factorio-build-0gksbm\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 RouterBase::*)(void),ClientRouter *>,std::default_delete<std::tuple<void (__cdecl RouterBase::*)(void),ClientRouter *> > > >::_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: 00007FFF01733DC4)
00007FFF01733DC4 (KERNEL32): (filename not available): BaseThreadInitThunk
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 00007FFF01883691)
00007FFF01883691 (ntdll): (filename not available): RtlUserThreadStart
Stack trace logging done
1712.751 Error FluidBoxManager.cpp:410: !this->doneSetup was not true
Logger::writeStacktrace skipped.
1712.751 Error CrashHandler.cpp:175: Map tick at moment of crash: 5160
1712.751 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.
1717.025 Error CrashHandler.cpp:197: Heap validation: success.
1717.025 Creating crash dump.
1717.375 CrashDump success
It happens when placing either an induction furnace or a casting machine or refinery (all from bob and angels) on top of a ghost when the inputs/output don't line up, it causes the server to crash and it does not save.

If you load my save to reproduce this, you can place one of the induction furnaces in the inventory over the ghost in front of you, but first rotate it so that the input does NOT line up.

It should immediately crash.
Attachments
factorio-current-crash.log
(69.14 KiB) Downloaded 127 times
mod-list.json
my installed mods
(2.75 KiB) Downloaded 125 times
factorio-dump-current.dmp
dump from log
(815.38 KiB) Downloaded 122 times
reproducable-bug.zip
save file to reproduce bug
(1.56 MiB) Downloaded 125 times

User avatar
blargh2015
Inserter
Inserter
Posts: 28
Joined: Sun Jun 03, 2018 3:47 pm
Contact:

Re: [Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)

Post by blargh2015 »

For what it's worth, we've been seeing the exact same crash with the same circumstances on our headless dedicated server (also with Bobs+Angels+other mods) - placing casting machines is especially tricky with trying to figure out what their orientation in the blueprint was - a mismatch causes a crash every time, with a similar log. Oddly enough, the client does not crash, just the headless server. This is with Factorio 0.17.14.

Our temporary workaround is to right-click to remove the ghost before placing the block, which keeps the crash from happening.

Attached is a save game /save'd immediately before the crash. Placing the next casting machine will crash the game on incorrect orientation.

Code: Select all

 302.213 Warning Logger.cpp:503: Symbols.size() == 33, usedSize == 22
Factorio crashed. Generating symbolized stacktrace, please wait ...
Raw stacktrace: 0x9e9165, 0x9e98e8, 0xa0b86f, 0xb26299, 0xc24651, 0xc24791, 0x9eec5f, 0xe9e202, 0xe9ebb5, 0xaeaf04, 0xc41e21, 0x7dda8d, 0xc02e82, 0xbe5f7c, 0xc811c0, 0xf145de, 0xf14cd0, 0xf2fb17, 0xf304cb, 0x51b4b4, 0, 0x52a7ee
 306.948 Warning Logger.cpp:503: Symbols.size() == 28, usedSize == 21
#0  0x00000000009e98e8 in Logging::flush() at /tmp/factorio-build-dFnql0/src/Util/Logging.cpp:65
#1  0x0000000000a0b86f in Logging::logAndAbortOrThrow(char const*, unsigned int, LogLevel, std::string const&) at /tmp/factorio-build-dFnql0/src/Util/Logging.cpp:90
#2  0x0000000000b26299 in Logging::logAndAbortOrThrow(char const*, unsigned int, LogLevel, char const*, ...) at /tmp/factorio-build-dFnql0/src/Util/Logging.cpp:83
#3  0x0000000000c24651 in FluidBoxManager::setup(SetupData const&, bool, bool) at /tmp/factorio-build-dFnql0/src/Fluid/FluidBoxManager.cpp:410 (discriminator 1)
#4  0x0000000000c24791 in CraftingMachine::setup(SetupData const&) at /tmp/factorio-build-dFnql0/src/Entity/CraftingMachine.cpp:1080
#5  0x00000000009eec5f in AssemblingMachine::setup(SetupData const&) at /tmp/factorio-build-dFnql0/src/Entity/AssemblingMachine.cpp:797
#6  0x0000000000e9e202 in Surface::setupEntity(Entity*, SetupData const&, bool) at /tmp/factorio-build-dFnql0/src/Surface/Surface.cpp:184
#7  0x0000000000e9ebb5 in ManualBuilder::buildItem(ActionData::BuildItemParameters const&, ForceID, ID<EntityPrototype, unsigned short>, BuildItemSettings, UndoItem*) at /tmp/factorio-build-dFnql0/src/ManualBuilder.cpp:955
#8  0x0000000000aeaf04 in std::unique_ptr<ActionData::BuildItemParameters, std::default_delete<ActionData::BuildItemParameters> >::~unique_ptr() at /usr/include/c++/8/bits/unique_ptr.h:273
#9  0x0000000000c41e21 in ManualBuilder::BuildResult::~BuildResult() at /tmp/factorio-build-dFnql0/src/ManualBuilder.hpp:33
#10 0x00000000007dda8d in CharacterController::buildItem(ActionData::BuildItemParameters const&) at /tmp/factorio-build-dFnql0/src/Controller/CharacterController.cpp:576
#11 0x0000000000c02e82 in GameActionHandler::buildItem(InputAction const&, Controller*) at /tmp/factorio-build-dFnql0/src/GameActionHandler.cpp:669
#12 0x0000000000be5f7c in GameActionHandler::actionPerformed(InputAction const&) at /tmp/factorio-build-dFnql0/src/GameActionHandler.cpp:324 (discriminator 1)
#13 0x0000000000c811c0 in InputHandler::flushToListeners(InputAction const&, bool) at /tmp/factorio-build-dFnql0/src/Input/InputHandler.cpp:72
#14 0x0000000000f145de in InputHandler::flushActions(bool, unsigned int) at /tmp/factorio-build-dFnql0/src/Input/InputHandler.cpp:64
#15 0x0000000000f14cd0 in NetworkInputHandler::flushActions(bool, unsigned int) at /tmp/factorio-build-dFnql0/src/Net/NetworkInputHandler.cpp:163
#16 0x0000000000f2fb17 in InputHandler::nextTick(unsigned int) at /tmp/factorio-build-dFnql0/src/Input/InputHandler.cpp:52
#17 0x0000000000f304cb in NetworkInputHandler::nextTick(unsigned int) at /tmp/factorio-build-dFnql0/src/Net/NetworkInputHandler.cpp:121
#18 0x000000000051b4b4 in NetworkInputHandler::tryToApplyNextTickClosure() at /tmp/factorio-build-dFnql0/src/Net/NetworkInputHandler.cpp:114
#19 (nil) in ServerMultiplayerManager::updateMultiplayerInputInternal() at /tmp/factorio-build-dFnql0/src/Net/ServerMultiplayerManager.cpp:665
#20 0x000000000052a7ee in MultiplayerManagerBase::updateMultiplayerInput() at /tmp/factorio-build-dFnql0/src/Net/MultiplayerManagerBase.cpp:181
#21 (nil) in MainLoop::gameUpdateStep(MultiplayerManagerBase*, Scenario*, AppManager*, MainLoop::HeavyMode) at /tmp/factorio-build-dFnql0/src/MainLoop.cpp:1082
#22 0xbfd8000000000000 in MainLoop::gameUpdateLoop(MainLoop::HeavyMode) at /tmp/factorio-build-dFnql0/src/MainLoop.cpp:967
#23 0x3fd8000000000000 in MainLoop::mainLoopStepHeadless(MainLoop::HeavyMode) at /tmp/factorio-build-dFnql0/src/MainLoop.cpp:530
#24 0x3fd8000000000000 in MainLoop::run(Filesystem::Path const&, Filesystem::Path const&, bool, bool, std::function<void ()>, Filesystem::Path const&, MainLoop::HeavyMode) at /tmp/factorio-build-dFnql0/src/MainLoop.cpp:359
#25 (nil) in main at /tmp/factorio-build-dFnql0/src/Main.cpp:837 (discriminator 4)
#26 0x3ff0000000000000 in ?? at ??:0
#27 0x3fd8000000000000 in _start at ??:?
Stack trace logging done
 306.948 Error FluidBoxManager.cpp:410: !this->doneSetup was not true
Logger::writeStacktrace skipped.
Attachments
factorio-current.log
Log file
(181.35 KiB) Downloaded 144 times
mod-list.json
Mods list
(2.64 KiB) Downloaded 126 times
Blargh_Save_File.zip
Save game immediately prior to crash
(6.94 MiB) Downloaded 126 times

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

Re: [Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)

Post by Dominik »

I am trying to replicate the same thing in the base game. Are you able to do that with anything? The original issue was in vanilla.
If you lay it down in the correct direction, it should now either not build or reset the recipe (instead of crashing previously), right?

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

Re: [Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)

Post by Dominik »

No worries, I already got it. BTW the issue was unrelated to the original one. Should be in the next release.

User avatar
blargh2015
Inserter
Inserter
Posts: 28
Joined: Sun Jun 03, 2018 3:47 pm
Contact:

Re: [Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)

Post by blargh2015 »

Dominik wrote:
Mon Mar 18, 2019 3:08 pm
No worries, I already got it. BTW the issue was unrelated to the original one. Should be in the next release.
Confirmed fixed in 0.17.15 - thank you!

Post Reply

Return to “Resolved Problems and Bugs”