Spring freezing (no sound, no screen updates) ingame.
Posted: 11 Jul 2007, 05:06
Hi... I'm using Spring on linux (amd64, 64bit Spring compiled from 74.b3 branch in svn)
from time to time spring completely locks up - i've got no clue what could be the cause.
I compiled spring with debugging infos, attached gdb to get the bt when it is locked up:
(gdb) bt
#0 0x0000003003edb548 in ?? () from /lib/libc.so.6
#1 0x0000003003e741d2 in ?? () from /lib/libc.so.6
#2 0x0000003003e73261 in free () from /lib/libc.so.6
#3 0x0000003362e11309 in ?? () from /usr/lib/libSDL-1.2.so.0
#4 0x0000003362e11351 in SDL_WaitThread () from /usr/lib/libSDL-1.2.so.0
#5 0x0000003362e55241 in ?? () from /usr/lib/libSDL-1.2.so.0
#6 0x0000003362e11a57 in ?? () from /usr/lib/libSDL-1.2.so.0
#7 0x0000003362e08725 in SDL_QuitSubSystem () from /usr/lib/libSDL-1.2.so.0
#8 0x0000003362e0876e in SDL_Quit () from /usr/lib/libSDL-1.2.so.0
#9 0x0000003362e08f9f in ?? () from /usr/lib/libSDL-1.2.so.0
#10 <signal handler called>
#11 0x0000003003e6f483 in ?? () from /lib/libc.so.6
#12 0x0000003003e7326c in free () from /lib/libc.so.6
#13 0x000000300b2a150a in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string () from /usr/lib/libstdc++.so.6
#14 0x0000000000581683 in ~CommandDescription (this=0xaa32e98) at rts/Game/command.h:100
#15 0x00000000005817ed in std::_Destroy<CommandDescription> (__pointer=0xaa32e98)
at /usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../../../include/c++/4.1.2/bits/stl_construct.h:107
#16 0x000000000058180b in std::__destroy_aux<CommandDescription*> (__first=0xaa32e98, __last=0xaa32f48)
at /usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../../../include/c++/4.1.2/bits/stl_construct.h:122
#17 0x0000000000581840 in std::_Destroy<CommandDescription*> (__first=0xaa326b0, __last=0xaa32f48)
at /usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../../../include/c++/4.1.2/bits/stl_construct.h:155
#18 0x0000000000581863 in std::_Destroy<CommandDescription*, CommandDescription> (__first=0xaa326b0,
__last=0xaa32f48)
at /usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../../../include/c++/4.1.2/bits/stl_construct.h:182
#19 0x0000000000581d74 in ~vector (this=0x763b310)
at /usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../../../include/c++/4.1.2/bits/stl_vector.h:272
#20 0x0000000000795f27 in ~CCommandAI (this=0x763b2a0) at rts/Sim/Units/CommandAI/CommandAI.cpp:256
#21 0x0000000000785977 in ~CFactoryCAI (this=0x763b2a0) at rts/Sim/Units/CommandAI/FactoryCAI.cpp:96
#22 0x000000000075b296 in ~CUnit (this=0x77d73c0) at rts/Sim/Units/Unit.cpp:213
#23 0x00000000007c7172 in ~CBuilding (this=0x77d73c0) at rts/Sim/Units/UnitTypes/Building.cpp:48
---Type <return> to continue, or q <return> to quit---
#24 0x00000000007c5195 in ~CFactory (this=0x77d73c0) at rts/Sim/Units/UnitTypes/Factory.cpp:54
#25 0x000000000077e36b in CUnitHandler::Update (this=0x5a0b7a0) at rts/Sim/Units/UnitHandler.cpp:206
#26 0x00000000005a3138 in CGame::SimFrame (this=0x15967d0) at rts/Game/Game.cpp:1893
#27 0x00000000005a4afd in CGame::ClientReadNet (this=0x15967d0) at rts/Game/Game.cpp:2304
#28 0x00000000005a78d8 in CGame::Update (this=0x15967d0) at rts/Game/Game.cpp:1470
#29 0x00000000004df9d7 in SpringApp::Update (this=0x7fffadbaaf90) at rts/System/Main.cpp:812
#30 0x00000000004e2eab in SpringApp::Run (this=0x7fffadbaaf90, argc=2, argv=0x7fffadbab0f8)
at rts/System/Main.cpp:990
#31 0x00000000004e2ff8 in Run (argc=2, argv=0x7fffadbab0f8) at rts/System/Main.cpp:1047
#32 0x00000000004e317f in main (argc=2, argv=0x7fffadbab0f8, envp=0x7fffadbab110)
at rts/System/Main.cpp:1087
---
i'm not perfectly sure...
from what i can guess looking at the Bt, something goes wrong when freeing that CommandDescription and SDL insists on waiting for some Thread in the Signal handler (i assume signal 11)
p (*(CommandDescription*)0xaa32e98)
$5 = {id = -353, type = 0, action = {static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x92203d8 "buildunit_corwolv"}}, hotkey = {static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x300b4f3e18 ""}}, name = {static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x460fa88 "corwolv"}}, iconname = {static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x300b4f3e18 ""}}, mouseicon = {static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x300b4f3e18 ""}}, tooltip = {static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x92205e8 "Build: Wolverine Light Mobile Artillery\nHealth 550\nMetal cost 159\nEnergy cost 2219 Build time 3254"}}, showUnique = false, onlyKey = false, onlyTexture = false,
params = {<std::_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {
_M_impl = {<std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<__gnu_cxx::new_allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<No data fields>}, <No data fields>}, _M_start = 0x9dbe110, _M_finish = 0x9dbe110,
_M_end_of_storage = 0x9dbe110}}, <No data fields>}}
- but i doubt theres something wrong with the object.
Any idea what could be the cause of this 'crash' ?
from time to time spring completely locks up - i've got no clue what could be the cause.
I compiled spring with debugging infos, attached gdb to get the bt when it is locked up:
(gdb) bt
#0 0x0000003003edb548 in ?? () from /lib/libc.so.6
#1 0x0000003003e741d2 in ?? () from /lib/libc.so.6
#2 0x0000003003e73261 in free () from /lib/libc.so.6
#3 0x0000003362e11309 in ?? () from /usr/lib/libSDL-1.2.so.0
#4 0x0000003362e11351 in SDL_WaitThread () from /usr/lib/libSDL-1.2.so.0
#5 0x0000003362e55241 in ?? () from /usr/lib/libSDL-1.2.so.0
#6 0x0000003362e11a57 in ?? () from /usr/lib/libSDL-1.2.so.0
#7 0x0000003362e08725 in SDL_QuitSubSystem () from /usr/lib/libSDL-1.2.so.0
#8 0x0000003362e0876e in SDL_Quit () from /usr/lib/libSDL-1.2.so.0
#9 0x0000003362e08f9f in ?? () from /usr/lib/libSDL-1.2.so.0
#10 <signal handler called>
#11 0x0000003003e6f483 in ?? () from /lib/libc.so.6
#12 0x0000003003e7326c in free () from /lib/libc.so.6
#13 0x000000300b2a150a in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string () from /usr/lib/libstdc++.so.6
#14 0x0000000000581683 in ~CommandDescription (this=0xaa32e98) at rts/Game/command.h:100
#15 0x00000000005817ed in std::_Destroy<CommandDescription> (__pointer=0xaa32e98)
at /usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../../../include/c++/4.1.2/bits/stl_construct.h:107
#16 0x000000000058180b in std::__destroy_aux<CommandDescription*> (__first=0xaa32e98, __last=0xaa32f48)
at /usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../../../include/c++/4.1.2/bits/stl_construct.h:122
#17 0x0000000000581840 in std::_Destroy<CommandDescription*> (__first=0xaa326b0, __last=0xaa32f48)
at /usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../../../include/c++/4.1.2/bits/stl_construct.h:155
#18 0x0000000000581863 in std::_Destroy<CommandDescription*, CommandDescription> (__first=0xaa326b0,
__last=0xaa32f48)
at /usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../../../include/c++/4.1.2/bits/stl_construct.h:182
#19 0x0000000000581d74 in ~vector (this=0x763b310)
at /usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../../../include/c++/4.1.2/bits/stl_vector.h:272
#20 0x0000000000795f27 in ~CCommandAI (this=0x763b2a0) at rts/Sim/Units/CommandAI/CommandAI.cpp:256
#21 0x0000000000785977 in ~CFactoryCAI (this=0x763b2a0) at rts/Sim/Units/CommandAI/FactoryCAI.cpp:96
#22 0x000000000075b296 in ~CUnit (this=0x77d73c0) at rts/Sim/Units/Unit.cpp:213
#23 0x00000000007c7172 in ~CBuilding (this=0x77d73c0) at rts/Sim/Units/UnitTypes/Building.cpp:48
---Type <return> to continue, or q <return> to quit---
#24 0x00000000007c5195 in ~CFactory (this=0x77d73c0) at rts/Sim/Units/UnitTypes/Factory.cpp:54
#25 0x000000000077e36b in CUnitHandler::Update (this=0x5a0b7a0) at rts/Sim/Units/UnitHandler.cpp:206
#26 0x00000000005a3138 in CGame::SimFrame (this=0x15967d0) at rts/Game/Game.cpp:1893
#27 0x00000000005a4afd in CGame::ClientReadNet (this=0x15967d0) at rts/Game/Game.cpp:2304
#28 0x00000000005a78d8 in CGame::Update (this=0x15967d0) at rts/Game/Game.cpp:1470
#29 0x00000000004df9d7 in SpringApp::Update (this=0x7fffadbaaf90) at rts/System/Main.cpp:812
#30 0x00000000004e2eab in SpringApp::Run (this=0x7fffadbaaf90, argc=2, argv=0x7fffadbab0f8)
at rts/System/Main.cpp:990
#31 0x00000000004e2ff8 in Run (argc=2, argv=0x7fffadbab0f8) at rts/System/Main.cpp:1047
#32 0x00000000004e317f in main (argc=2, argv=0x7fffadbab0f8, envp=0x7fffadbab110)
at rts/System/Main.cpp:1087
---
i'm not perfectly sure...
from what i can guess looking at the Bt, something goes wrong when freeing that CommandDescription and SDL insists on waiting for some Thread in the Signal handler (i assume signal 11)
p (*(CommandDescription*)0xaa32e98)
$5 = {id = -353, type = 0, action = {static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x92203d8 "buildunit_corwolv"}}, hotkey = {static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x300b4f3e18 ""}}, name = {static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x460fa88 "corwolv"}}, iconname = {static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x300b4f3e18 ""}}, mouseicon = {static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x300b4f3e18 ""}}, tooltip = {static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x92205e8 "Build: Wolverine Light Mobile Artillery\nHealth 550\nMetal cost 159\nEnergy cost 2219 Build time 3254"}}, showUnique = false, onlyKey = false, onlyTexture = false,
params = {<std::_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {
_M_impl = {<std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<__gnu_cxx::new_allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<No data fields>}, <No data fields>}, _M_start = 0x9dbe110, _M_finish = 0x9dbe110,
_M_end_of_storage = 0x9dbe110}}, <No data fields>}}
- but i doubt theres something wrong with the object.
Any idea what could be the cause of this 'crash' ?