2025-07-19 00:45 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0004978Spring engineGeneralpublic2017-06-26 12:23
ReporterMajorBoredom 
Assigned To 
PrioritynormalSeveritycrashReproducibilityalways
StatusresolvedResolutionunable to reproduce 
Product Version100.0 
Target VersionFixed in Version 
Summary0004978: Engine hangs in SDL2 / libX11 after load (linux/nvidia driver)
DescriptionI built this engine from 100.0 tag in git. The version string was manually set to 100.0 in order to join public servers. I was able to join a game once after building. After a reboot, subsequent attempts to load a game result in a hang.

The watchdog thread gives the following, after a brief delay at load:

[f=0000000] [LuaIntro] LuaIntro v1.0 (Lua 5.1)
[... ~5 sec delay ...]
[f=0000000] Warning: [Watchdog] Hang detection triggered for Spring 100.0.
[f=0000000] Warning: (in thread: main)
[f=0000000] [CrashHandler] Warning: Suspended-thread Stacktrace (main) for Spring 100.0:
[f=0000000] [CrashHandler] Warning: [00] sigaction.c:? __restore_rt
[f=0000000] [CrashHandler] Warning: [01] /lib64/libpthread.so.0(pthread_cond_wait+0xc5) [0x3deac0b565] ??
[f=0000000] [CrashHandler] Warning: [02] /lib64/libX11.so.6(_XReply+0xc7) [0x3dec841b07] ??
[f=0000000] [CrashHandler] Warning: [03] /lib64/libXrandr.so.2() [0x3df92057d9] ??
[f=0000000] [CrashHandler] Warning: [04] /lib64/libSDL2-2.0.so.0(+0xb22c6) [0x7fc4bcea02c6] ??
[f=0000000] [CrashHandler] Warning: [05] /lib64/libSDL2-2.0.so.0(+0xb48b3) [0x7fc4bcea28b3] ??
[f=0000000] [CrashHandler] Warning: [06] /lib64/libX11.so.6(_XError+0x12b) [0x3dec843c2b] ??
[f=0000000] [CrashHandler] Warning: [07] /lib64/libX11.so.6() [0x3dec840c87] ??
[f=0000000] [CrashHandler] Warning: [08] /lib64/libX11.so.6() [0x3dec840d35] ??
[f=0000000] [CrashHandler] Warning: [09] /lib64/libX11.so.6(_XReply+0x1f0) [0x3dec841c30] ??
[f=0000000] [CrashHandler] Warning: [10] /lib64/libX11.so.6(XSync+0x3d) [0x3dec83d76d] ??
[f=0000000] [CrashHandler] Warning: [11] /lib64/libGL.so.1() [0x31d3288f23] ??
[f=0000000] [CrashHandler] Warning: Suspended-thread Stacktrace (audio) for Spring 100.0:
[f=0000000] [CrashHandler] Warning: [00] sigaction.c:? __restore_rt
[f=0000000] [CrashHandler] Warning: [01] /lib64/libpthread.so.0(pthread_cond_timedwait+0x132) [0x3deac0b912] ??
[f=0000000] [CrashHandler] Warning: [02] /lib64/libboost_thread-mt.so.1.53.0(_ZN5boost18condition_variable13do_wait_untilERNS_11unique_lockINS_5mutexEEERK8timespec+0x7c) [0x34a6c102dc] ??
[f=0000000] [CrashHandler] Warning: [03] /lib64/libboost_thread-mt.so.1.53.0(_ZN5boost11this_thread5hiden11sleep_untilERK8timespec+0x56) [0x34a6c0cdd6] ??
[f=0000000] [CrashHandler] Warning: [04] .../rts/System/Sound/OpenAL/Sound.cpp:384 CSound::StartThread(int)
[f=0000000] [CrashHandler] Warning: [05] .../rts/System/Platform/Linux/ThreadSupport.cpp:192 Threading::ThreadStart(boost::function<void ()>, std::shared_ptr<Threading::ThreadControls>*)
[f=0000000] [CrashHandler] Warning: <06> /usr/include/boost/function/function_template.hpp:875 boost::function0<void>::clear()
[f=0000000] [CrashHandler] Warning: <06> /usr/include/boost/function/function_template.hpp:759 ~function0
[f=0000000] [CrashHandler] Warning: <06> /usr/include/boost/function/function_template.hpp:1048 ~function
[f=0000000] [CrashHandler] Warning: <06> /usr/include/boost/bind/bind.hpp:313 operator()<void (*)(boost::function<void()>, std::shared_ptr<Threading::ThreadControls>*), boo [...]
[f=0000000] [CrashHandler] Warning: <06> /usr/include/boost/bind/bind_template.hpp:20 boost::_bi::bind_t<void, void (*)(boost::function<void ()>, std::shared_ptr<Threading::ThreadC [...]
[f=0000000] [CrashHandler] Warning: [06] /usr/include/boost/thread/detail/thread.hpp:117 boost::detail::thread_data<boost::_bi::bind_t<void, void (*)(boost::function<void ()>, std::sh [...]
[f=0000000] [CrashHandler] Warning: [07] /lib64/libboost_thread-mt.so.1.53.0() [0x34a6c0c0da] ??
[f=0000000] [CrashHandler] Warning: [08] pthread_create.c:? start_thread
[f=0000000] [CrashHandler] Warning: [09] /lib64/libc.so.6(clone+0x6d) [0x3dea4f5dbd] ??

Additional InformationThe main thread is hanging inside SDL2/libX11. Obviously I do not have the source or debuginfo for these compiled in but it seems to be inside XSync / XReply: looks like SDL2 events.

Are there SDL2 parameters that I can tweak to attempt a workaround or to diagnose?
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files

-Relationships
+Relationships

-Notes

~0015266

MajorBoredom (reporter)

Update: The hang occurs for both Balanced Annihilation and Tech Annihilation in network play.

Update: I can start the engine from the command line ("./spring") and it will arrive at the system menu with no hang. I can also start a 1-player in the "testing only" sandbox and it will load and function correctly.

~0015267

abma (administrator)

Last edited: 2015-10-03 21:56

View 2 revisions

> I built this engine from 100.0 tag in git. The version string was manually set to 100.0 in order to join public servers. I was able to join a game once after building. After a reboot, subsequent attempts to load a game result in a hang.

whats the output of "git describe"?

~0015268

abma (administrator)

(22:18:00) [99]Gambit: it's 100.0-33-gfa5d693 -- it is based on 100.0 with a few changes
(22:18:15) abma_irc: then you broke the code

~0015269

MajorBoredom (reporter)

Last edited: 2015-10-03 22:26

View 2 revisions

No, it still happens with 100.0 and with the tarball. I checked 100.0 before posting, obviously. The changes I made are nothing that would break anything.

~0015270

abma (administrator)

possible related to 0004952

the nvidia driver seems to cause a bug there

~0015271

MajorBoredom (reporter)

This problem went away with Safemode = 1 in springlobby.conf.

Unfortunately, this does not look like the true fix. When I revert back to Safemode = 0, the problem vanishes and the engine starts properly again. So the problem may involve some hysteresis or memory on the part of the driver (if it is in fact the nvidia driver).

Also, the next line after the hang *should* read one of the two:
[f=0000000] LoadingScreen: single-threaded
    or
[f=0000000] Registering thread controls for thread [load]
...depending on whether you have LoadingMT=-1 or LoadingMT=0

~0017900

Kloot (developer)

reminiscent of 0004908 (although without the error messages), but too old now and not reported by anyone else.
+Notes

-Issue History
Date Modified Username Field Change
2015-10-03 18:39 MajorBoredom New Issue
2015-10-03 19:52 MajorBoredom Note Added: 0015266
2015-10-03 21:56 abma Note Added: 0015267
2015-10-03 21:56 abma Note Edited: 0015267 View Revisions
2015-10-03 22:17 abma Note Added: 0015268
2015-10-03 22:17 abma Status new => resolved
2015-10-03 22:17 abma Resolution open => no change required
2015-10-03 22:17 abma Assigned To => abma
2015-10-03 22:21 MajorBoredom File Added: infolog.txt
2015-10-03 22:25 MajorBoredom Note Added: 0015269
2015-10-03 22:25 MajorBoredom Status resolved => feedback
2015-10-03 22:25 MajorBoredom Resolution no change required => reopened
2015-10-03 22:26 MajorBoredom Note Edited: 0015269 View Revisions
2015-10-03 22:39 abma Note Added: 0015270
2015-10-04 01:12 MajorBoredom Note Added: 0015271
2015-10-04 01:12 MajorBoredom Status feedback => assigned
2015-10-04 02:23 abma Summary Engine hangs in SDL2 / libX11 after load => Engine hangs in SDL2 / libX11 after load (linux/nvidia driver)
2015-10-04 03:49 abma Severity block => crash
2015-11-06 23:52 abma Assigned To abma =>
2015-11-06 23:52 abma Status assigned => new
2017-06-26 12:23 Kloot Status new => resolved
2017-06-26 12:23 Kloot Resolution reopened => unable to reproduce
2017-06-26 12:23 Kloot Note Added: 0017900
+Issue History