Back to the Vavoom Forum Archives


Forum

[Fixed] [>=1.23 Linux] crash on network MP connections

Wed, 08 Aug 2007 18:28:25

scen

Latest versions of Vavoom crashes when i try to search a local server to join a multiplayer game; this problems occurs only on Linux (not in Windows). I've typed >=1.23 in the title because i've checked that this issue appears only since 1.23 (the version that pulls in a complete rewritten network protocol): 1.22.1 works without problems, for example. Steps to reproduce the problem: [list=1:1t4f3a42] [*:1t4f3a42]Start a server (dedicated, or through the client, then Multiplayer -> New game)[/*:m:1t4f3a42] [*:1t4f3a42]Starting a client, then Multiplayer -> Join a game -> Search for games[/*:m:1t4f3a42] [*:1t4f3a42]Client suddenly crashes[/*:m:1t4f3a42][/list:o:1t4f3a42] debug.txt says
signal: Segmentation Violation
- VStr::Resize
- VDatagramDriver::SearchForHosts
- Datagram_SearchForHosts
- VNetwork::Slist_Poll
- VNetwork::Poll
- Host_Frame
Log: Doing C_Shutdown
Log: Doing CL_Shutdown
Log: Doing SV_Shutdown
Log: Doing delete GNet
Log: Doing delete GInput
Log: Doing V_Shutdown
Log: Doing delete GAudio
Log: Doing T_Shutdown
Log: Doing Sys_Shutdown
Log: Doing delete GSoundManager
Log: Doing R_ShutdownTexture
Log: Doing VCommand::Shutdown
Log: Doing VCvar::Shutdown
Log: Doing ShutdownMapInfo
Log: Doing FL_Shutdown
Log: Doing W_Shutdown
Log: Doing GLanguage.FreeData
Log: Doing VObject::StaticExit
Log: Doing VName::StaticExit
Uninitialised: Doing Z_Shutdown
STACK TRACE:

stack 0 0x56ab42 frame 0 0x7fff47fefbc0


ERROR: Segmentation Violation
and here's a GDB backtrace
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 47358489728736 (LWP 10270)]
0x0000000000510e37 in VStr::Resize (this=0x89af3c, NewLen=0) at str.h:131
131     str.h: No such file or directory.
        in str.h
(gdb) bt
#0  0x0000000000510e37 in VStr::Resize (this=0x89af3c, NewLen=0) at str.h:131
#1  0x000000000047876a in VDatagramDriver::SearchForHosts (this=0x7c1180, Drv=0x7f7c20, xmit=false) at str.h:169
#2  0x0000000000478a6a in VDatagramDriver::SearchForHosts (this=0x7c1180, xmit=false) at net_dgrm.cpp:335
#3  0x000000000047e2fc in VNetwork::Slist_Poll (this=0x89ae3c) at net_main.cpp:416
#4  0x000000000047e46b in VNetwork::Slist_Poll (Arg=0x7f7de0) at net_main.cpp:375
#5  0x000000000047eaae in VNetwork::Poll (this=0x89ae3c) at net_main.cpp:290
#6  0x000000000045531d in Host_Frame () at host.cpp:375
#7  0x000000000056ab23 in main (argc=<value optimized out>, argv=<value optimized out>) at sys_sdl.cpp:675
#8  0x00002b1280b87374 in __libc_start_main () from /lib/libc.so.6
#9  0x0000000000408019 in _start ()
(gdb)
Similar problem if i try to connect using the "join game at" box, entering the IP address of running server. debug.txt and GDB backtrace are slightly different: debug.txt
signal: Segmentation Violation
- VStr::Resize
- VDatagramDriver::SearchForHosts
- Datagram_SearchForHosts
- VNetwork::Slist_Poll
- VNetwork::Poll
- VNetwork::Connect
- CL_EstablishConnection
- VCommand::ExecuteString
- VCmdBuf::Exec
- Host_Frame
Log: Doing C_Shutdown
Log: Doing CL_Shutdown
Log: Doing SV_Shutdown
Log: Doing delete GNet
Log: Doing delete GInput
Log: Doing V_Shutdown
Log: Doing delete GAudio
Log: Doing T_Shutdown
Log: Doing Sys_Shutdown
Log: Doing delete GSoundManager
Log: Doing R_ShutdownTexture
Log: Doing VCommand::Shutdown
Log: Doing VCvar::Shutdown
Log: Doing ShutdownMapInfo
Log: Doing FL_Shutdown
Log: Doing W_Shutdown
Log: Doing GLanguage.FreeData
Log: Doing VObject::StaticExit
Log: Doing VName::StaticExit
Uninitialised: Doing Z_Shutdown
STACK TRACE:

stack 0 0x56ab42 frame 0 0x7fff7a7eb3c0


ERROR: Segmentation Violation
GDB backtrace:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 47043633415904 (LWP 10360)]
0x0000000000510e37 in VStr::Resize (this=0x8832bc, NewLen=0) at str.h:131
131     in str.h
(gdb) bt
#0  0x0000000000510e37 in VStr::Resize (this=0x8832bc, NewLen=0) at str.h:131
#1  0x000000000047876a in VDatagramDriver::SearchForHosts (this=0x7c1180, Drv=0x7f7c20, xmit=false) at str.h:169
#2  0x0000000000478a6a in VDatagramDriver::SearchForHosts (this=0x7c1180, xmit=false) at net_dgrm.cpp:335
#3  0x000000000047e2fc in VNetwork::Slist_Poll (this=0x8831bc) at net_main.cpp:416
#4  0x000000000047e46b in VNetwork::Slist_Poll (Arg=0x7f7de0) at net_main.cpp:375
#5  0x000000000047eaae in VNetwork::Poll (this=0x8831bc) at net_main.cpp:290
#6  0x000000000047d834 in VNetwork::Connect (this=0x8831bc, InHost=0xaf985c "192.168.0.1") at net_main.cpp:582
#7  0x0000000000415965 in CL_EstablishConnection (host=0xaf985c "192.168.0.1") at cl_main.cpp:380
#8  0x0000000000415b13 in TCmdConnect::Run (this=<value optimized out>) at cl_main.cpp:464
#9  0x000000000041a6b9 in VCommand::ExecuteString (Acmd=@0x7fff7a2ddd60, src=VCommand::SRC_Command, APlayer=0x0)
    at cmd.cpp:343
#10 0x000000000041a90a in VCmdBuf::Exec (this=0x6fb880) at cmd.cpp:530
#11 0x0000000000455302 in Host_Frame () at host.cpp:369
#12 0x000000000056ab23 in main (argc=<value optimized out>, argv=<value optimized out>) at sys_sdl.cpp:675
#13 0x00002ac931d26374 in __libc_start_main () from /lib/libc.so.6
#14 0x0000000000408019 in _start ()
(gdb)
I've checked also the Windows version: with that all runs fine <!-- s:P --><img src="{SMILIES_PATH}/icon_razz.gif" alt=":P" title="Razz" /><!-- s:P --> All but the "Search for games...": if i run both dedicated server and client on the same machine, the client can't find the running server (but specifying the IP address on the box below works fine)
Wed, 08 Aug 2007 21:59:48

Firebrand

It seems the problem is when looking for the host's name, then <!-- s;) --><img src="{SMILIES_PATH}/icon_wink.gif" alt=";)" title="Wink" /><!-- s;) -->. I'm sure it's easy to fix.
Fri, 10 Aug 2007 10:04:10

scen

Ok, i've resolved *partially* the problem. The key was my /etc/hosts:
127.0.0.1      gondor.middle.earth gondor localhost
192.168.0.1     gondor  gondor.middle.earth mygentoo.gondor
192.168.0.2     rohan   rohan.middle.earth
gondor is the hostname of my system, but it was resolved first as 127.0.0.1, causing Vavoom to set wrongly the IP listening address to this value. Changing the hosts file like this
127.0.0.1      gondor.middle.earth localhost
192.168.0.1     gondor  gondor.middle.earth mygentoo.gondor
192.168.0.2     rohan   rohan.middle.earth
solves the problem. In this case it would be wise to add the -ip option [quote="vavoom.txt":2z6r7e68] -IP specifies IP address, Windows version only -ip <address> also in other OS, like Linux. So i can avoid problems like the one explained above! Finally, IMHO it would be right enfoce a better handling of this event (avoiding the crash) Another thing: the ""Search for games..." doesn't seem to work also in Linux. Ask me if you need more informations! <!-- s8) --><img src="{SMILIES_PATH}/icon_cool.gif" alt="8)" title="Cool" /><!-- s8) -->
Sun, 19 Oct 2008 18:14:58

Janis Legzdinsh

Fixed.

Back to the Vavoom Forum Archives