Page 1 of 1

[Lou][2.0.9] Crash using a blueprint with shift+click.

Posted: Wed Oct 23, 2024 3:49 pm
by Raudo
I was using a blueprint with concrete and hazard concrete, when I clicked it to place it the game crashed to the desktop.

It happens every time I try to use it.

If I remove the hazard concrete, the blueprint works fine and there is no crash.

Re: [2.0.9] Crash using a blueprint with shift+click.

Posted: Wed Oct 23, 2024 4:02 pm
by Lou
Could you please provide the causing blueprint? (Either as an import string or to have it in a save)

Re: [Lou][2.0.9] Crash using a blueprint with shift+click.

Posted: Thu Oct 24, 2024 2:56 am
by Raudo

Re: [Lou][2.0.9] Crash using a blueprint with shift+click.

Posted: Thu Oct 24, 2024 11:32 am
by toor
Not sure if 100% the same.
But the server / game also crashes when I had a hazard concrete placed and marked for destruction.
Then try to Copy over that concrete with other hazard concrete facing in a different direction.
Crashes instantly.

Stacktrace:

Code: Select all

11.567 Error CrashHandler.cpp:641: Received SIGSEGV
Factorio crashed. Generating symbolized stacktrace, please wait ...
/tmp/factorio-build-wlUFwi/src/Util/StacktraceToStream.cpp (52): walkStackAndPrintToStream
/tmp/factorio-build-wlUFwi/src/Util/StacktraceToStream.cpp (60): Util::printStacktraceToStream(WriteStream&)
/tmp/factorio-build-wlUFwi/src/Util/Logger.cpp (334): Logger::writeStacktrace(WriteStream*, StackTraceInfo*)
/tmp/factorio-build-wlUFwi/src/Util/Logger.cpp (379): Logger::logStacktrace(StackTraceInfo*)
/tmp/factorio-build-wlUFwi/src/Util/CrashHandler.cpp (183): CrashHandler::writeStackTrace(CrashHandler::CrashReason)
/tmp/factorio-build-wlUFwi/src/Util/CrashHandler.cpp (644): CrashHandler::commonSignalHandler(int)
/tmp/factorio-build-wlUFwi/src/Util/CrashHandler.cpp (652): CrashHandler::SignalHandler(int)
0x7c50fa8c604f
/opt/gcc-13.2.0/include/c++/13.2.0/bits/unique_ptr.h (99): std::default_delete<Entity>::operator()(Entity*) const
/opt/gcc-13.2.0/include/c++/13.2.0/bits/unique_ptr.h (404): std::unique_ptr<Entity, std::default_delete<Entity> >::~unique_ptr()
/opt/gcc-13.2.0/include/c++/13.2.0/bits/stl_construct.h (88): void std::destroy_at<std::unique_ptr<Entity, std::default_delete<Entity> > >(std::unique_ptr<Entity, std::default_delete<Entity> >*)
/opt/gcc-13.2.0/include/c++/13.2.0/bits/stl_construct.h (149): void std::_Destroy<std::unique_ptr<Entity, std::default_delete<Entity> > >(std::unique_ptr<Entity, std::default_delete<Entity> >*)
/opt/gcc-13.2.0/include/c++/13.2.0/bits/stl_construct.h (163): void std::_Destroy_aux<false>::__destroy<std::unique_ptr<Entity, std::default_delete<Entity> >*>(std::unique_ptr<Entity, std::default_delete<Entity> >*, std::unique_ptr<Entity, std::default_delete<Entity> >*)
/opt/gcc-13.2.0/include/c++/13.2.0/bits/stl_construct.h (196): void std::_Destroy<std::unique_ptr<Entity, std::default_delete<Entity> >*>(std::unique_ptr<Entity, std::default_delete<Entity> >*, std::unique_ptr<Entity, std::default_delete<Entity> >*)
/opt/gcc-13.2.0/include/c++/13.2.0/bits/alloc_traits.h (947): void std::_Destroy<std::unique_ptr<Entity, std::default_delete<Entity> >*, std::unique_ptr<Entity, std::default_delete<Entity> > >(std::unique_ptr<Entity, std::default_delete<Entity> >*, std::unique_ptr<Entity, std::default_delete<Entity> >*, std::allocator<std::unique_ptr<Entity, std::default_delete<Entity> > >&)
/opt/gcc-13.2.0/include/c++/13.2.0/bits/stl_vector.h (1934): std::vector<std::unique_ptr<Entity, std::default_delete<Entity> >, std::allocator<std::unique_ptr<Entity, std::default_delete<Entity> > > >::_M_erase_at_end(std::unique_ptr<Entity, std::default_delete<Entity> >*)
/opt/gcc-13.2.0/include/c++/13.2.0/bits/stl_vector.h (1603): std::vector<std::unique_ptr<Entity, std::default_delete<Entity> >, std::allocator<std::unique_ptr<Entity, std::default_delete<Entity> > > >::clear()
/tmp/factorio-build-wlUFwi/src/Entity/ToDeleteList.cpp (33): ToDeleteList::clear()
/tmp/factorio-build-wlUFwi/src/Map/Map.cpp (1373): Map::removeEntitiesStagedForDeletion()
/tmp/factorio-build-wlUFwi/src/Map/Map.cpp (1473): Map::applyStagedChanges()
/tmp/factorio-build-wlUFwi/src/Input/InputSource.cpp (75): InputSource::flushToListeners(InputAction const&, bool)
/tmp/factorio-build-wlUFwi/src/Input/InputSource.cpp (67): InputSource::flushActions(bool, MapTick)
/tmp/factorio-build-wlUFwi/src/Net/NetworkInputHandler.cpp (176): NetworkInputHandler::flushActions(bool, MapTick)
/tmp/factorio-build-wlUFwi/src/Input/InputSource.cpp (55): InputSource::nextTick(MapTick)
/tmp/factorio-build-wlUFwi/src/Net/NetworkInputHandler.cpp (124): NetworkInputHandler::nextTick(MapTick)
/tmp/factorio-build-wlUFwi/src/Net/NetworkInputHandler.cpp (116): NetworkInputHandler::tryToApplyNextTickClosure()
/tmp/factorio-build-wlUFwi/src/Net/ServerMultiplayerManager.cpp (756): ServerMultiplayerManager::updateMultiplayerInputInternal()
/tmp/factorio-build-wlUFwi/src/Net/ServerMultiplayerManager.cpp (744): ServerMultiplayerManager::updateMultiplayerInputInternal()
/tmp/factorio-build-wlUFwi/src/Net/MultiplayerManagerBase.cpp (166): MultiplayerManagerBase::updateMultiplayerInput()
/tmp/factorio-build-wlUFwi/src/MainLoop.cpp (1382): MainLoop::gameUpdateStep(MultiplayerManagerBase*, Scenario*, AppManager*, MainLoop::HeavyMode)
/tmp/factorio-build-wlUFwi/src/MainLoop.cpp (1205): MainLoop::gameUpdateLoop(MainLoop::HeavyMode)
/tmp/factorio-build-wlUFwi/src/MainLoop.cpp (647): MainLoop::mainLoopStepHeadless(MainLoop::HeavyMode)
/tmp/factorio-build-wlUFwi/src/MainLoop.cpp (407): MainLoop::run(Filesystem::Path const&, Filesystem::Path const&, bool, bool, std::function<void ()>, Filesystem::Path const&, MainLoop::HeavyMode)
/tmp/factorio-build-wlUFwi/src/CommandLineMultiplayer.cpp (295): hostMultiplayerGameInternal(cxxopts::ParseResult const&, bool)
/tmp/factorio-build-wlUFwi/src/CommandLineMultiplayer.cpp (350): CommandLineMultiplayer::hostCommandLineMultiplayerGame(cxxopts::ParseResult const&, Filesystem::Path const&, Filesystem::Path const&, bool)
/tmp/factorio-build-wlUFwi/src/Main.cpp (705): fmain(int, char**)
/tmp/factorio-build-wlUFwi/src/Main.cpp (1347): main
../sysdeps/nptl/libc_start_call_main.h (58): __libc_start_call_main
../csu/libc-start.c (360): __libc_start_main_impl
_start
0xffffffffffffffff
Stack trace logging done

Re: [Lou][2.0.9] Crash using a blueprint with shift+click.

Posted: Thu Oct 24, 2024 11:35 am
by toor
Okay it's the blueprint and not the copy over.
Somehow I placed 8 Hazard Concrete in a 2x2 tile:

Code: Select all

0eNqlktEKwjAMRf8lzx3YubWsvyI+1C1uga4bbRV19N/tFPRFEexbSHLuzYUscDAnnB3ZAGoBaifrQe0W8NRbbdae1SOCgkHftOuKtNA6DAiRAdkOL6B43DMIZPBJzpOnQJNd2TQttqVkcE2FrGWCPssVjvohJNF/eYPHb7jItBd59q/rRWZ6kZdeZKb/aZ++gAKOaf7+KQZndP4hWIuyqZqmrjac862M8Q4M080x
Placing this instantly crashes the server.

Re: [Lou][2.0.9] Crash using a blueprint with shift+click.

Posted: Thu Oct 24, 2024 12:52 pm
by Rseding91
I am not able to reproduce any crash with those blueprints with any kind of shift+click building. Are you able to reproduce it on a fresh save file?

Re: [Lou][2.0.9] Crash using a blueprint with shift+click.

Posted: Thu Oct 24, 2024 1:37 pm
by Raudo
Yes, fresh save and it also crashes instantly once you press shift+click.

Fresh installation also aswell, no mods.

Re: [Lou][2.0.9] Crash using a blueprint with shift+click.

Posted: Fri Oct 25, 2024 12:51 pm
by Lou
Most likely the issue of multiple hazzard concretes on the same spot in a blueprint (which gets fixed on string import, hence no reproduction from blueprint string).

If you send a save with a blueprint in-game I can verify it is indeed the same issue. (or you can just count the displayed hazzard concretes vs the sum)

Also (assuming I am correct), exporting and reimporting the blueprint should fix it for your purposes.

Re: [Lou][2.0.9] Crash using a blueprint with shift+click.

Posted: Fri Oct 25, 2024 2:31 pm
by Raudo
You are correct in everything.

The copied string has 383 hazard concrete vs 390 of the original blueprint.

Using the copied string works perfectly.

Thank you!