Page 1 of 1

[0.17.36] stuck on quit

Posted: Sat May 04, 2019 7:44 pm
by Anzah
After multi hour session playing Factorio on Steam I tried to quit the game by clicking exit button in the menu. Game didn't quit, but I left it running anyway as I was hoping it would eventually quit.

I didn't check the clock, but maybe half an hour later Factorio was still running. I tried to kill the process from terminal, but there was no reaction. I tried again with ABRT signal and Factorio finally died. I'll attach the log. Here's the stack trace part:

Code: Select all

31870.618 Received SIGTERM, shutting down
31891.345 Time travel logging:
  85.483 Popped blueprint record (player-index: 0, ID: 1)
Factorio crashed. Generating symbolized stacktrace, please wait ...
Raw stacktrace: 0xaf01eb, 0xc8709d, 0xb6f81b, 0xb6f96d, 0xb6f9c9, 0x36910, 0x8ee3, 0x141157c, 0x14119cb, 0x140b722, 0x140b0d5, 0x1407849, 0x844dd2, 0xeb7861, 0xeb7b89, 0x6e1ade, 0xf59f3b, 0xf5a75d, 0xf5a99e, 0x52388e, 0, 0x5319de
31897.647 Warning Logger.cpp:503: Symbols.size() == 33, usedSize == 21
#0  0x0000000000c8709d in std::__uniq_ptr_impl<LoggerFileWriteStream, std::default_delete<LoggerFileWriteStream> >::_M_ptr() const at /usr/include/c++/8/bits/unique_ptr.h:150
#1  0x0000000000b6f81b in std::unique_ptr<LoggerFileWriteStream, std::default_delete<LoggerFileWriteStream> >::get() const at /usr/include/c++/8/bits/unique_ptr.h:343
#2  0x0000000000b6f96d in std::unique_ptr<LoggerFileWriteStream, std::default_delete<LoggerFileWriteStream> >::operator->() const at /usr/include/c++/8/bits/unique_ptr.h:337
#3  0x0000000000b6f9c9 in Logger::flush() at /tmp/factorio-build-8cz6Fw/src/Util/Logger.cpp:541
#4  0x0000000000036910 in Logger::logStacktrace(StackTraceInfo*) at /tmp/factorio-build-8cz6Fw/src/Util/Logger.cpp:527
#5  0x0000000000008ee3 in GlobalContext::getMap() at /tmp/factorio-build-8cz6Fw/src/GlobalContext.cpp:1802
#6  0x000000000141157c in CrashHandler::writeStackTrace(CrashHandler::CrashReason) at /tmp/factorio-build-8cz6Fw/src/Util/CrashHandler.cpp:176
#7  0x00000000014119cb in CrashHandler::commonSignalHandler(int) at /tmp/factorio-build-8cz6Fw/src/Util/CrashHandler.cpp:569
#8  0x000000000140b722 in CrashHandler::SignalHandler(int) at /tmp/factorio-build-8cz6Fw/src/Util/CrashHandler.cpp:583
#9  0x000000000140b0d5 in ?? at ??:0
#10 0x0000000001407849 in ?? at ??:0
#11 0x0000000000844dd2 in _al_thread_join at /tmp/factorio-build-8cz6Fw/libraries/Allegro/src/unix/uxthread.c:94
#12 0x0000000000eb7861 in al_join_thread at /tmp/factorio-build-8cz6Fw/libraries/Allegro/src/threads.c:203
#13 0x0000000000eb7b89 in _al_acodec_stop_feed_thread at /tmp/factorio-build-8cz6Fw/libraries/Allegro/addons/acodec/helper.c:31
#14 0x00000000006e1ade in ogg_stream_close at /tmp/factorio-build-8cz6Fw/libraries/Allegro/addons/acodec/ogg.c:368
#15 0x0000000000f59f3b in al_destroy_audio_stream at /tmp/factorio-build-8cz6Fw/libraries/Allegro/addons/audio/kcm_stream.c:154
#16 0x0000000000f5a75d in AllegroFileToPackagePathAdapter::~AllegroFileToPackagePathAdapter() at /tmp/factorio-build-8cz6Fw/src/Package/AllegroFileToPackagePathAdapter.cpp:14
#17 0x0000000000f5a99e in StreamData::~StreamData() at /tmp/factorio-build-8cz6Fw/src/Sound/SoundInstance.cpp:14
#18 0x000000000052388e in std::default_delete<StreamData>::operator()(StreamData*) const at /usr/include/c++/8/bits/unique_ptr.h:81
#19 (nil) in std::unique_ptr<StreamData, std::default_delete<StreamData> >::~unique_ptr() at /usr/include/c++/8/bits/unique_ptr.h:274
#20 0x00000000005319de in SoundInstance::~SoundInstance() at /tmp/factorio-build-8cz6Fw/src/Sound/SoundInstance.hpp:10
#21 (nil) in EnvironmentSoundPlayer::~EnvironmentSoundPlayer() at /tmp/factorio-build-8cz6Fw/src/Sound/EnvironmentSoundPlayer.cpp:45
#22 0x0000000000000001 in std::default_delete<EnvironmentSoundPlayer>::operator()(EnvironmentSoundPlayer*) const at /usr/include/c++/8/bits/unique_ptr.h:81
#23 (nil) in std::unique_ptr<EnvironmentSoundPlayer, std::default_delete<EnvironmentSoundPlayer> >::~unique_ptr() at /usr/include/c++/8/bits/unique_ptr.h:274
#24 (nil) in GameView::~GameView() at /tmp/factorio-build-8cz6Fw/src/GameView.cpp:689
#25 (nil) in GameView::~GameView() at /tmp/factorio-build-8cz6Fw/src/GameView.cpp:694
#26 (nil) in GarbageCollector::cleanGarbage() at /tmp/factorio-build-8cz6Fw/src/Util/GarbageCollector.cpp:13 (discriminator 1)
#27 (nil) in MainLoop::prepare() at /tmp/factorio-build-8cz6Fw/src/MainLoop.cpp:933
#28 (nil) in MainLoop::mainLoopStep(WorkerThread&, MainLoop::HeavyMode) at /tmp/factorio-build-8cz6Fw/src/MainLoop.cpp:613
#29 (nil) in MainLoop::run(Filesystem::Path const&, Filesystem::Path const&, bool, bool, std::function<void ()>, Filesystem::Path const&, MainLoop::HeavyMode) at /tmp/factorio-build-8cz6Fw/src/MainLoop.cpp:375
#30 (nil) in main at /tmp/factorio-build-8cz6Fw/src/Main.cpp:1257 (discriminator 3)
#31 (nil) in ?? at ??:0
#32 (nil) in _start at ??:?
Stack trace logging done
31902.558 Warning Logger.cpp:503: Symbols.size() == 28, usedSize == 20

Re: [0.17.36] stuck on quit

Posted: Mon May 06, 2019 11:36 am
by kovarex
Hello. Can you reproduce it? This basically looks, like audio thread couldn't be stopped, which looks like a 1/0 magic to me, unless it happens consistently.

Re: [0.17.36] stuck on quit

Posted: Mon May 06, 2019 12:49 pm
by mrvn
That always happens under Linux when you close your laptop or otherwise suspend. The pulse library doesn't survive that and then the audio thread of factory no longer finished when you quit and the game hangs.

I reported that some time ago but it was put into "won't fix".

Re: [0.17.36] stuck on quit

Posted: Tue May 07, 2019 7:36 pm
by Anzah
mrvn wrote: Mon May 06, 2019 12:49 pm That always happens under Linux when you close your laptop or otherwise suspend. The pulse library doesn't survive that and then the audio thread of factory no longer finished when you quit and the game hangs.

I reported that some time ago but it was put into "won't fix".
I'm playing on desktop and I don't suspend.

I'll try to find some time to play some more sessions and see how reproducible the issue is.

Re: [0.17.36] stuck on quit

Posted: Thu May 09, 2019 9:18 am
by mrvn
Maybe factorio should set an alarm on exit so it gets interrupted when it's stuck and can quit harder.