[Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)
[Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)
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 209 times
Re: [Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)
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?
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?
Re: [Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)
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.
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.
-
- 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)
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:
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
Re: [Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)
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.)
Re: [Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)
Whoops, my bad, I should have double checked the attachment. And yes, that crash is the same (and 0.17.14 fixes it).
Re: [Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)
I am still seeing this in 0.17.14...
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.
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
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 194 times
-
- mod-list.json
- my installed mods
- (2.75 KiB) Downloaded 197 times
-
- factorio-dump-current.dmp
- dump from log
- (815.38 KiB) Downloaded 190 times
-
- reproducable-bug.zip
- save file to reproduce bug
- (1.56 MiB) Downloaded 193 times
- blargh2015
- Inserter
- Posts: 32
- Joined: Sun Jun 03, 2018 3:47 pm
- Contact:
Re: [Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)
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.
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 217 times
-
- mod-list.json
- Mods list
- (2.64 KiB) Downloaded 195 times
-
- Blargh_Save_File.zip
- Save game immediately prior to crash
- (6.94 MiB) Downloaded 198 times
Re: [Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)
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?
If you lay it down in the correct direction, it should now either not build or reset the recipe (instead of crashing previously), right?
Re: [Dominik][0.17.12][Mod] Crash when replacing a ghost (causing fluid conflict)
No worries, I already got it. BTW the issue was unrelated to the original one. Should be in the next release.
- blargh2015
- Inserter
- Posts: 32
- Joined: Sun Jun 03, 2018 3:47 pm
- Contact: