URL:
<http://gna.org/bugs/?16535>
Summary: Exiting quickly the network connection menu then
the game crashes it
Project: Wormux
Submitted by: kurosu
Submitted on: Wednesday 08/25/2010 at 08:37
Category: Network
Severity: 4 - Important
Priority: 5 - Normal
Status: Confirmed
Assigned to: None
Originator Email:
Open/Closed: Open
Release:
Discussion Lock: Any
_______________________________________________________
Details:
It's basically the IndexServer object being freed while some of its code is
being run in another thread.
Here's the valgrind trace:
Thread 3:
Invalid read of size 4
at 0x4467937: std::_Rb_tree_increment(std::_Rb_tree_node_base*) (in
/usr/lib/libstdc++.so.6.0.10)
by 0x81D2162: std::_Rb_tree_iterator<std::pair<std::string const, int>
>::operator++() (stl_tree.h:182)
by 0x81D0DD0: IndexServer::GetServerAddress(std::string&, int&, unsigned&)
(index_server.cpp:219)
by 0x81D1BA1: IndexServer::Connect(std::string const&)
(index_server.cpp:114)
by 0x812E40C: RefreshNetInfo(void*) (network_connection_menu.cpp:108)
by 0x40E1F7A: (within /usr/lib/libSDL-1.2.so.0.11.1)
by 0x412FC9C: (within /usr/lib/libSDL-1.2.so.0.11.1)
by 0x47C64BF: start_thread (in /lib/i686/cmov/libpthread-2.7.so)
by 0x460A84D: clone (in /lib/i686/cmov/libc-2.7.so)
Address 0x4f10d7c is 12 bytes inside a block of size 24 free'd
at 0x402272A: operator delete(void*) (vg_replace_malloc.c:342)
[...]
by 0x817641E: std::map<std::string, int, std::less<std::string>,
std::allocator<std::pair<std::string const, int> > >::clear()
(stl_map.h:582)
by 0x81D1BF0: IndexServer::~IndexServer() (index_server.cpp:43)
by 0x81CDC31: BaseSingleton::ReleaseSingletons() (singleton.cpp:56)
by 0x810026E: AppWormux::~AppWormux() (main.cpp:91)
by 0x81003F5: main (main.cpp:433)
Invalid read of size 4
at 0x446794E: std::_Rb_tree_increment(std::_Rb_tree_node_base*) (in
/usr/lib/libstdc++.so.6.0.10)
by 0x81D2162: std::_Rb_tree_iterator<std::pair<std::string const, int>
>::operator++() (stl_tree.h:182)
by 0x81D0DD0: IndexServer::GetServerAddress(std::string&, int&, unsigned&)
(index_server.cpp:219)
by 0x81D1BA1: IndexServer::Connect(std::string const&)
(index_server.cpp:114)
by 0x812E40C: RefreshNetInfo(void*) (network_connection_menu.cpp:108)
by 0x40E1F7A: (within /usr/lib/libSDL-1.2.so.0.11.1)
by 0x412FC9C: (within /usr/lib/libSDL-1.2.so.0.11.1)
by 0x47C64BF: start_thread (in /lib/i686/cmov/libpthread-2.7.so)
by 0x460A84D: clone (in /lib/i686/cmov/libc-2.7.so)
Address 0x4f10d74 is 4 bytes inside a block of size 24 free'd
at 0x402272A: operator delete(void*) (vg_replace_malloc.c:342)
[...]
by 0x817641E: std::map<std::string, int, std::less<std::string>,
std::allocator<std::pair<std::string const, int> > >::clear()
(stl_map.h:582)
by 0x81D1BF0: IndexServer::~IndexServer() (index_server.cpp:43)
by 0x81CDC31: BaseSingleton::ReleaseSingletons() (singleton.cpp:56)
by 0x810026E: AppWormux::~AppWormux() (main.cpp:91)
by 0x81003F5: main (main.cpp:433)
Invalid read of size 4
at 0x4467970: std::_Rb_tree_increment(std::_Rb_tree_node_base*) (in
/usr/lib/libstdc++.so.6.0.10)
by 0x81D2162: std::_Rb_tree_iterator<std::pair<std::string const, int>
>::operator++() (stl_tree.h:182)
by 0x81D0DD0: IndexServer::GetServerAddress(std::string&, int&, unsigned&)
(index_server.cpp:219)
by 0x81D1BA1: IndexServer::Connect(std::string const&)
(index_server.cpp:114)
by 0x812E40C: RefreshNetInfo(void*) (network_connection_menu.cpp:108)
by 0x40E1F7A: (within /usr/lib/libSDL-1.2.so.0.11.1)
by 0x412FC9C: (within /usr/lib/libSDL-1.2.so.0.11.1)
by 0x47C64BF: start_thread (in /lib/i686/cmov/libpthread-2.7.so)
by 0x460A84D: clone (in /lib/i686/cmov/libc-2.7.so)
Address 0x4f10d7c is 12 bytes inside a block of size 24 free'd
at 0x402272A: operator delete(void*) (vg_replace_malloc.c:342)
[...]
by 0x817641E: std::map<std::string, int, std::less<std::string>,
std::allocator<std::pair<std::string const, int> > >::clear()
(stl_map.h:582)
by 0x81D1BF0: IndexServer::~IndexServer() (index_server.cpp:43)
by 0x81CDC31: BaseSingleton::ReleaseSingletons() (singleton.cpp:56)
by 0x810026E: AppWormux::~AppWormux() (main.cpp:91)
by 0x81003F5: main (main.cpp:433)
Invalid read of size 4
at 0x449FEAE: std::string::assign(std::string const&) (in
/usr/lib/libstdc++.so.6.0.10)
by 0x449FF93: std::string::operator=(std::string const&) (in
/usr/lib/libstdc++.so.6.0.10)
by 0x81D0E4C: IndexServer::GetServerAddress(std::string&, int&, unsigned&)
(index_server.cpp:223)
by 0x81D1BA1: IndexServer::Connect(std::string const&)
(index_server.cpp:114)
by 0x812E40C: RefreshNetInfo(void*) (network_connection_menu.cpp:108)
by 0x40E1F7A: (within /usr/lib/libSDL-1.2.so.0.11.1)
by 0x412FC9C: (within /usr/lib/libSDL-1.2.so.0.11.1)
by 0x47C64BF: start_thread (in /lib/i686/cmov/libpthread-2.7.so)
by 0x460A84D: clone (in /lib/i686/cmov/libc-2.7.so)
Address 0xfffffffc is not stack'd, malloc'd or (recently) free'd
Process terminating with default action of signal 11 (SIGSEGV)
Access not within mapped region at address 0xFFFFFFFC
at 0x449FEAE: std::string::assign(std::string const&) (in
/usr/lib/libstdc++.so.6.0.10)
by 0x449FF93: std::string::operator=(std::string const&) (in
/usr/lib/libstdc++.so.6.0.10)
by 0x81D0E4C: IndexServer::GetServerAddress(std::string&, int&, unsigned&)
(index_server.cpp:223)
by 0x81D1BA1: IndexServer::Connect(std::string const&)
(index_server.cpp:114)
by 0x812E40C: RefreshNetInfo(void*) (network_connection_menu.cpp:108)
by 0x40E1F7A: (within /usr/lib/libSDL-1.2.so.0.11.1)
by 0x412FC9C: (within /usr/lib/libSDL-1.2.so.0.11.1)
by 0x47C64BF: start_thread (in /lib/i686/cmov/libpthread-2.7.so)
by 0x460A84D: clone (in /lib/i686/cmov/libc-2.7.so)
_______________________________________________________
Reply to this item at:
<http://gna.org/bugs/?16535>
_______________________________________________
Message sent via/by Gna!
http://gna.org/
_______________________________________________
Wormux-gna mailing list
[email protected]
https://mail.gna.org/listinfo/wormux-gna