PDA

View Full Version : Server Crash



Ni3ls
6th December 2014, 11:52
Hi all,
My servers got crashed. This is printed in console log

Client 590 connecting with 50 challenge ping from 79.106.9.13:21843
79.106.9.13:21843:reconnect
Going from CS_FREE to CS_CONNECTED for (num 3 guid 0)
SV_ReadPackets: fixing up a translated port
cmdCount > MAX_PACKET_USERCMDS
cmdCount > MAX_PACKET_USERCMDS
cmdCount > MAX_PACKET_USERCMDS
SV_ReadPackets: fixing up a translated port
SV_ReadPackets: fixing up a translated port
cmdCount > MAX_PACKET_USERCMDS
cmdCount > MAX_PACKET_USERCMDS
Ive tried to google it, but I cant find any result or fix. Doesn anybody know what this mean?

Tally
6th December 2014, 12:06
Hi all,
My servers got crashed. This is printed in console log

Client 590 connecting with 50 challenge ping from 79.106.9.13:21843
79.106.9.13:21843:reconnect
Going from CS_FREE to CS_CONNECTED for (num 3 guid 0)
SV_ReadPackets: fixing up a translated port
cmdCount > MAX_PACKET_USERCMDS
cmdCount > MAX_PACKET_USERCMDS
cmdCount > MAX_PACKET_USERCMDS
SV_ReadPackets: fixing up a translated port
SV_ReadPackets: fixing up a translated port
cmdCount > MAX_PACKET_USERCMDS
cmdCount > MAX_PACKET_USERCMDS
Ive tried to google it, but I cant find any result or fix. Doesn anybody know what this mean?

What is your com_maxFPS set to? Try setting it to 100 and see if it fixes it.

Ni3ls
6th December 2014, 13:19
Of the player or of the server? I didnt know you could set maxfps for a server though :/

set sv_fps "20" This is for the server

IzNoGoD
6th December 2014, 13:23
Dont change sv_fps if you're not going to change ALL waits in your .gsc files. AFAIK, wait 0.05 is hardcoded to wait 1 serverframe, thus wait 1 will wait 20 frames on sv_fps 20, and 20 on sv_fps 100, resulting in 0.2 second waittime.

I personally think you have too many cvar writes to your clients per frame, try to reduce those instead

Tally
6th December 2014, 13:29
Of the player or of the server? I didnt know you could set maxfps for a server though :/

set sv_fps "20" This is for the server

com_maxfps is not a server dvar.

Ni3ls
6th December 2014, 13:48
com_maxfps is not a server dvar.

Thats what I thought. So why should I change my own maxfps? I wasnt even in the server.

@Izno I will take a look at that

IzNoGoD
6th December 2014, 13:48
com_maxfps is not a server dvar.

Damn, misread that too myself

Tally
6th December 2014, 14:37
Thats what I thought. So why should I change my own maxfps? I wasnt even in the server.

@Izno I will take a look at that

because too high FPS from a client leads to too much data hitting the server (= too high max packets) and it causes the server crash with that error message.

Mitch
6th December 2014, 17:46
Are you running a version of libcod? I had the same error a long time ago. I thought it was caused by my data manipulation with libcod.

Ni3ls
7th December 2014, 11:54
Are you running a version of libcod? I had the same error a long time ago. I thought it was caused by my data manipulation with libcod.

Yeah Im running libcod cracked.

@Tally, I cant prevend others from having a high fps

Mitch
7th December 2014, 12:41
Yeah Im running libcod cracked.

@Tally, I cant prevend others from having a high fps

If your libcod version is build after 8 March then it can't be the problem.
How many client cvars do you set on connect?

Ni3ls
8th December 2014, 10:14
I use the newest version of libcod


//EXTRA OPTIONS///
self setClientCvar("menutext","Extra");
self setClientCvar("extra1","1. Reset Score");
self setClientCvar("extra2","2. FPS ^2On^7/^1Off");
self setClientCvar("extra3","3. Lagometer ^2On^7/^1Off");
self setClientCvar("extra4","4. Rename");
self setClientCvar("extra5","5. Admin Login");
self setClientCvar("extra6","");
self setClientCvar("extra7","");
//Stats
self setClientCvar("title1","^9evil^1.^7Current Stats");
self setClientCvar("bestkillnameround","Name of Player");
self setClientCvar("bestkillround","Kills");
self setClientCvar("bestheadnameround","Name of Player");
self setClientCvar("bestheadround","Head");
self setClientCvar("bestbashnameround","Name of Player");
self setClientCvar("bestbashround","Bash");

self setClientCvar("title2","^9evil^1.^7Best Stats");
self setClientCvar("bestkillname","Name of Player");
self setClientCvar("bestkill","Kills");
self setClientCvar("bestheadname","Name of Player");
self setClientCvar("besthead","Head");
self setClientCvar("bestbashname","Name of Player");
self setClientCvar("bestbash","Bash");

+ default ones.

Mitch
8th December 2014, 15:41
//EXTRA OPTIONS///
self setClientCvar("menutext","Extra");
...
self setClientCvar("bestbash","Bash");

+ default ones.

cmdCount can't be over 32 commands. So it might work if you delay setting these cvars after someone joins your server. Or setting them on joining a team etc.

Btw MAX_PACKET_USERCMDS = 32

guiismiti
8th December 2014, 18:33
Yeah Im running libcod cracked.

@Tally, I cant prevend others from having a high fps

You can use setClientCvar("com_maxfps", 80) in an infinite loop called from StartGameType

Ni3ls
9th December 2014, 10:39
You can use setClientCvar("com_maxfps", 80) in an infinite loop called from StartGameType

I know, but that really sucks

Mitch
9th December 2014, 12:31
I know, but that really sucks

Try connecting to your server with 'cl_maxpackets' set to 100 and 'packetdup' on 5.
If you can duplicate the crash then you might find out how to prevent it.

Edit: snaps is irrelevant. (it is the data you receive from the server)
Com_maxfps set to 100 is high enough

http://mare-server.forumotion.com/t165-cod-2-improve-your-connection
http://bashandslash.com/index.php?option=com_content&task=view&id=590&Itemid=106

Ni3ls
14th April 2015, 17:32
Try connecting to your server with 'cl_maxpackets' set to 100 and 'packetdup' on 5.
If you can duplicate the crash then you might find out how to prevent it.

This doesn't crash the server


Edit: snaps is irrelevant. (it is the data you receive from the server)
Com_maxfps set to 100 is high enough

I always play with com_maxfps 125 so this doesn't crash it either

Mitch
14th April 2015, 19:14
Test something like this:

/say !test;name test;wait 5;reconnect

Now on !test you run these commands on your server:

self setClientCvar("com_maxfps", 125); // just an example
self setClientCvar("cl_allowdownload", 1); // a few cvars to fill your user commands


And on connect you also add a few cvars.

Edit: you can post crash's segmentation fault error? It should be the last line when you run 'dmesg'. Then i might be able to backtrace the error.

Ni3ls
19th April 2015, 16:36
UDP: short packet: From 85.174.67.140:0 0/39 to 46.4.55.66:20480
UDP: short packet: From 85.174.67.140:0 0/39 to 46.4.55.66:20480
UDP: short packet: From 85.174.67.140:0 0/40 to 46.4.55.66:20480
UDP: short packet: From 85.174.67.140:0 0/58 to 46.4.55.66:20480
UDP: short packet: From 85.174.67.140:0 0/58 to 46.4.55.66:20480
UDP: short packet: From 85.174.67.140:0 0/59 to 46.4.55.66:20480
UDP: short packet: From 85.174.67.140:0 0/39 to 46.4.55.66:20480
UDP: short packet: From 85.174.67.140:0 273/40 to 46.4.55.66:0
UDP: short packet: From 85.174.67.140:0 273/40 to 46.4.55.66:0
UDP: short packet: From 85.174.67.140:0 21487/39 to 46.4.55.66:29109
UDP: short packet: From 95.59.187.183:11398 21023/38 to 46.4.55.66:31166
UDP: short packet: From 41.227.52.9:29136 57385/57 to 46.4.55.66:29027
UDP: short packet: From 188.212.224.204:12874 4148/52 to 46.4.55.66:28958
UDP: short packet: From 81.214.181.88:28960 46/44 to 46.4.55.66:28962
UDP: short packet: From 85.173.218.75:0 0/23 to 46.4.55.66:20480
UDP: short packet: From 5.234.117.90:12318 4141/45 to 46.4.55.66:28958
UDP: bad checksum. From 46.183.220.250:3099 to 46.4.55.66:47808 ulen 25
UDP: short packet: From 41.225.218.200:28961 2611/50 to 46.4.55.66:28962
UDP: short packet: From 31.180.161.147:0 0/23 to 46.4.55.66:20480
UDP: short packet: From 31.180.161.147:0 0/23 to 46.4.55.66:20480
UDP: short packet: From 31.180.161.147:0 0/23 to 46.4.55.66:20480
UDP: short packet: From 31.180.161.147:0 0/23 to 46.4.55.66:20480
UDP: short packet: From 31.180.161.147:0 0/23 to 46.4.55.66:20480
UDP: short packet: From 78.174.59.67:28960 43/38 to 46.4.55.66:28962
UDP: bad checksum. From 46.183.220.250:3099 to 46.4.55.66:67 ulen 321
UDP: short packet: From 31.180.141.88:0 0/23 to 46.4.55.66:20480
UDP: bad checksum. From 46.183.220.250:3099 to 46.4.55.66:5008 ulen 72
UDP: short packet: From 31.180.173.95:0 0/23 to 46.4.55.66:20480
cod2_lnxded_1_0[835]: segfault at 84 ip 00000000080e983d sp 00000000ff923d40 error 4 in cod2_lnxded_1_0a_va_loc[8048000+13e000]
cod2_lnxded[16420]: segfault at 84 ip 00000000080e983d sp 00000000ffcbebc0 error 4 in cod2_lnxded[8048000+13e000]
UDP: short packet: From 178.149.22.246:20072 49320/39 to 46.4.55.66:28958
UDP: short packet: From 41.227.159.112:12939 26401/37 to 46.4.55.66:10549
cod2_lnxded[27669]: segfault at 84 ip 00000000080e983d sp 00000000ffa5bf00 error 4 in cod2_lnxded[8048000+13e000]
UDP: short packet: From 41.225.113.233:1128 49211/59 to 46.4.55.66:28989
UDP: short packet: From 41.225.113.233:1032 313/41 to 46.4.55.66:28958
UDP: short packet: From 94.233.22.187:0 0/23 to 46.4.55.66:20480
UDP: short packet: From 94.233.22.187:0 0/23 to 46.4.55.66:20480
UDP: short packet: From 94.233.22.187:0 0/23 to 46.4.55.66:20480
UDP: short packet: From 31.180.130.94:0 0/23 to 46.4.55.66:20480
UDP: short packet: From 94.232.201.101:0 0/23 to 46.4.55.66:20480
UDP: short packet: From 94.232.201.101:0 0/23 to 46.4.55.66:20480
UDP: bad checksum. From 46.183.220.250:3099 to 46.4.55.66:67 ulen 321
cod2_lnxded[12099]: segfault at 84 ip 00000000080e983d sp 00000000ff82af00 error 4 in cod2_lnxded[8048000+13e000]
cod2_lnxded[11820]: segfault at 84 ip 00000000080e983d sp 00000000ff850310 error 4 in cod2_lnxded[8048000+13e000]
cod2_lnxded_1_0[32390]: segfault at 84 ip 00000000080e983d sp 00000000ff80fa80 error 4 in cod2_lnxded_1_0a_va_loc[8048000+13e000]
UDP: short packet: From 94.232.201.101:0 0/23 to 46.4.55.66:20480
UDP: short packet: From 94.232.201.101:0 0/23 to 46.4.55.66:20480
cod2_lnxded[19653]: segfault at 84 ip 00000000080e983d sp 00000000ffd50330 error 4 in cod2_lnxded[8048000+13e000]
UDP: short packet: From 85.174.85.10:0 0/23 to 46.4.55.66:20480
UDP: short packet: From 85.174.85.10:0 0/23 to 46.4.55.66:20480


And now the error was CmdCount <1.

WTF?!

Mitch
19th April 2015, 17:07
Error 4 should be interrupted system call according to http://stackoverflow.com/questions/2549214/interpreting-segfault-messages.



cod2_lnxded_1_0[32390]: segfault at 84 ip 00000000080e983d sp 00000000ff80fa80 error 4 in cod2_lnxded_1_0a_va_loc[8048000+13e000]

Points to


v3 = sub_80E9270(a2); // get weapon
if ( !*(_DWORD *)(v3 + 132) // offhandClass (80e983d)


Edit: the offset (at) might be the offset of the address (ip). Then it points a different get weapon call.
Edit 2: it is possible the crash is caused by the function giveweapon when someone reconnects.

Ni3ls
19th April 2015, 20:48
So this could be a script error?

Mitch
20th April 2015, 06:26
So this could be a script error?

Sort of yes, check where you give your players their weapons and see if it contains a wait without ending on disconnect.