Page 1 of 1

[raiguard] [2.0.11][Linux headless] Crash on multiplayer related to pointers

Posted: Sat Oct 26, 2024 3:21 pm
by WildWolf
Not exactly sure how to replicate this but happens after some random time on a mass multiplayer server

Code: Select all

639.823 Error CrashHandler.cpp:641: Received SIGSEGV
Factorio crashed. Generating symbolized stacktrace, please wait ...
/tmp/factorio-build-qOkfne/src/Util/StacktraceToStream.cpp (52): walkStackAndPrintToStream
/tmp/factorio-build-qOkfne/src/Util/StacktraceToStream.cpp (60): Util::printStacktraceToStream(WriteStream&)
/tmp/factorio-build-qOkfne/src/Util/Logger.cpp (334): Logger::writeStacktrace(WriteStream*, StackTraceInfo*)
/tmp/factorio-build-qOkfne/src/Util/Logger.cpp (379): Logger::logStacktrace(StackTraceInfo*)
/tmp/factorio-build-qOkfne/src/Util/CrashHandler.cpp (183): CrashHandler::writeStackTrace(CrashHandler::CrashReason)
/tmp/factorio-build-qOkfne/src/Util/CrashHandler.cpp (644): CrashHandler::commonSignalHandler(int)
/tmp/factorio-build-qOkfne/src/Util/CrashHandler.cpp (652): CrashHandler::SignalHandler(int)
0x7f4240e4531f
/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-qOkfne/src/Entity/ToDeleteList.cpp (33): ToDeleteList::clear()
/tmp/factorio-build-qOkfne/src/Map/Map.cpp (1375): Map::removeEntitiesStagedForDeletion()
/tmp/factorio-build-qOkfne/src/Map/Map.cpp (1475): Map::applyStagedChanges()
/tmp/factorio-build-qOkfne/src/Input/InputSource.cpp (75): InputSource::flushToListeners(InputAction const&, bool)
/tmp/factorio-build-qOkfne/src/Input/InputSource.cpp (67): InputSource::flushActions(bool, MapTick)
/tmp/factorio-build-qOkfne/src/Net/NetworkInputHandler.cpp (176): NetworkInputHandler::flushActions(bool, MapTick)
/tmp/factorio-build-qOkfne/src/Input/InputSource.cpp (55): InputSource::nextTick(MapTick)
/tmp/factorio-build-qOkfne/src/Net/NetworkInputHandler.cpp (124): NetworkInputHandler::nextTick(MapTick)
/tmp/factorio-build-qOkfne/src/Net/NetworkInputHandler.cpp (116): NetworkInputHandler::tryToApplyNextTickClosure()
/tmp/factorio-build-qOkfne/src/Net/ServerMultiplayerManager.cpp (756): ServerMultiplayerManager::updateMultiplayerInputInternal()
/tmp/factorio-build-qOkfne/src/Net/ServerMultiplayerManager.cpp (744): ServerMultiplayerManager::updateMultiplayerInputInternal()
/tmp/factorio-build-qOkfne/src/Net/MultiplayerManagerBase.cpp (166): MultiplayerManagerBase::updateMultiplayerInput()
/tmp/factorio-build-qOkfne/src/MainLoop.cpp (1382): MainLoop::gameUpdateStep(MultiplayerManagerBase*, Scenario*, AppManager*, MainLoop::HeavyMode)
/tmp/factorio-build-qOkfne/src/MainLoop.cpp (1205): MainLoop::gameUpdateLoop(MainLoop::HeavyMode)
/tmp/factorio-build-qOkfne/src/MainLoop.cpp (647): MainLoop::mainLoopStepHeadless(MainLoop::HeavyMode)
/tmp/factorio-build-qOkfne/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-qOkfne/src/CommandLineMultiplayer.cpp (295): hostMultiplayerGameInternal(cxxopts::ParseResult const&, bool)
/tmp/factorio-build-qOkfne/src/CommandLineMultiplayer.cpp (350): CommandLineMultiplayer::hostCommandLineMultiplayerGame(cxxopts::ParseResult const&, Filesystem::Path const&, Filesystem::Path const&, bool)
/tmp/factorio-build-qOkfne/src/Main.cpp (705): fmain(int, char**)
/tmp/factorio-build-qOkfne/src/Main.cpp (1347): main
0x7f4240e2a1c9
__libc_start_main
_start
0xffffffffffffffff
Stack trace logging done

Re: [2.0.11] Crash during mass multiplayer session with Entity deletion

Posted: Sat Oct 26, 2024 3:40 pm
by WeasleyWells
Crash report from a user on the same server and crash: viewtopic.php?f=7&t=117689
The user above didn't know we would post a crash report and his crash report is probably unrelated to the actual reason of the crash.

Re: [2.0.11] Crash during mass multiplayer session with Entity deletion

Posted: Sat Oct 26, 2024 8:00 pm
by WildWolf
Got another one with SIGSEGV seems it might be something with null pointer or undefined pointer

Code: Select all

14503.668 Error CrashHandler.cpp:641: Received SIGSEGV
Factorio crashed. Generating symbolized stacktrace, please wait ...
/tmp/factorio-build-qOkfne/src/Util/StacktraceToStream.cpp (52): walkStackAndPrintToStream
/tmp/factorio-build-qOkfne/src/Util/StacktraceToStream.cpp (60): Util::printStacktraceToStream(WriteStream&)
/tmp/factorio-build-qOkfne/src/Util/Logger.cpp (334): Logger::writeStacktrace(WriteStream*, StackTraceInfo*)
/tmp/factorio-build-qOkfne/src/Util/Logger.cpp (379): Logger::logStacktrace(StackTraceInfo*)
/tmp/factorio-build-qOkfne/src/Util/CrashHandler.cpp (183): CrashHandler::writeStackTrace(CrashHandler::CrashReason)
/tmp/factorio-build-qOkfne/src/Util/CrashHandler.cpp (644): CrashHandler::commonSignalHandler(int)
/tmp/factorio-build-qOkfne/src/Util/CrashHandler.cpp (652): CrashHandler::SignalHandler(int)
0x7f575904531f
/tmp/tmp.dlP10F34z6/objdir/x86_64-pc-linux-gnu/libstdc++-v3/include/ext/stdio_filebuf.h (138): std::_Sp_counted_ptr<decltype(nullptr), (__gnu_cxx::_Lock_policy)2>::_M_dispose()
Stack trace logging done

Re: [2.0.11] Crash during mass multiplayer session with Entity deletion

Posted: Sat Oct 26, 2024 8:04 pm
by diddler15
was this on the biter battles server?

Re: [2.0.11][Linux headless] Crash on multiplayer related to pointers

Posted: Sat Oct 26, 2024 8:14 pm
by diddler15
if it is then the first one was probably me. i tried to paste a nuclear blueprint when i was on around 5pm ish i think ( when you posted the report) and immediatly after the whole world froze and i got server not responding error. this happened again on my private server with friends this evening which i why i think this may have been me.

idk about that second crash though?
maybe some other blueprints have the same bug


this is the offending blueprint string

Re: [raiguard] [2.0.11][Linux headless] Crash on multiplayer related to pointers

Posted: Mon Feb 03, 2025 8:04 pm
by raiguard
I doubt this is linux-specific, and without an exact reproduction there isn't much I can do. I tried placing this blueprint in multiplayer and it worked fine.