Title: wrong modelname crashes server
Post by: davidd on August 19, 2009, 04:18:54 PM
oaded 0.8.1 compiled on freebsd 32 bit ran on 64 bit in 32 bit emulation mode. i have not tested it myself, but it struck me as odd to have a * in the headmodel client string. No crashlog was created. there are only bots and then this player connects. here the last lines of the output of the server Award: 5 2: Major gained the IMPRESSIVE award! broadcast: print "Timelimit hit.\n" Exit: Timelimit hit. red:7 blue:3 score: 13 ping: 0 client: 8 Kyonshi score: 11 ping: 0 client: 1 Tony score: 9 ping: 0 client: 2 Liz score: 9 ping: 0 client: 4 Gargoyle score: 5 ping: 0 client: 6 Jenna score: 5 ping: 0 client: 9 Assassin score: 4 ping: 0 client: 0 Grunt score: 3 ping: 0 client: 7 Jenna score: 1 ping: 0 client: 5 Major score: 1 ping: 0 client: 3 Gargoyle Sending heartbeat to dpmaster.deathmask.net Sending heartbeat to dpmaster.deathmask.net Sending heartbeat to dpmaster.deathmask.net Sending heartbeat to dpmaster.deathmask.net Sending heartbeat to dpmaster.deathmask.net Sending heartbeat to dpmaster.deathmask.net Sending heartbeat to dpmaster.deathmask.net Sending heartbeat to dpmaster.deathmask.net Sending heartbeat to dpmaster.deathmask.net Client 765 connecting with 100 challenge ping ClientConnect: 10 ClientUserinfoChanged: 10 n\UnnamedPlayer\t\2\model\james\hmodel\*james\g_redteam\\g_blueteam\\c1\4\c2\5\hc\100\w\0\l\0\tt\0\tl\0 broadcast: print "UnnamedPlayer^7 connected\n" ******************** ERROR: netchan queue is not properly initialized in SV_Netchan_TransmitNextFragment
******************** ----- Server Shutdown (Server crashed: netchan queue is not properly initialized in SV_Netchan_TransmitNextFragment ) ----- Sending heartbeat to dpmaster.deathmask.net Sending heartbeat to dpmaster.deathmask.net ==== ShutdownGame ==== ShutdownGame: ------------------------------------------------------------ AAS shutdown. ---------------------------
I inspected what map should be playing at that time: ]nextmap "nextmap" is:"vstr d15^7" default:"^7" ]d15 "d15" is:"map suspended; set nextmap vstr d16^7", the default ]d14 "d14" is:"map czest1dm; set nextmap vstr d15^7", the default ]d13 "d13" is:"map kaos; set nextmap vstr d14^7", the default ]
the last games in the logfile attached I am surprised to see that the game suddenly seemed to have changed to a teamgame? I hope this bug report will help. Grtz David.
Title: Re: wrong modelname crashes server
Post by: Falkland on August 19, 2009, 04:48:31 PM
oaded 0.8.1 compiled on freebsd 32 bit ran on 64 bit in 32 bit emulation mode.
i have not tested it myself, but it struck me as odd to have a * in the headmodel client string.
That model/headmodel combination is the default for the missionpack ( star included ) ... I am not sure , but maybe the UnnamedPlayer tried to connect through the MP server browser and it crashed your server ... but I'm really not sure of that.
Title: Re: wrong modelname crashes server
Post by: davidd on August 19, 2009, 05:42:22 PM
the same person connected again, i think, and crashed my server again.
Title: Re: wrong modelname crashes server
Post by: Falkland on August 19, 2009, 07:35:37 PM
there's an opened bug on ioquake3 bugzilla that could be related to the problem u've experimented : http://bugzilla.icculus.org/show_bug.cgi?id=3418 Problem is, checking if "netchan queue has been properly initialized" should not be performed on zombies which all recently disconnected clients are, until engine sets them free in next few seconds after disconnect.
Also there is simpler way to reproduce this bug -- just add 20+ bots and then issue 'kick allbots' or 'kick all' from the server console or rcon. Server should crash with message:
"ERROR: netchan queue is not properly initialized in SV_Netchan_TransmitNextFragment" ..."Server Shutdown (Server crashed: netchan queue is not properly initialized in SV_Netchan_TransmitNextFragment"
Original code: // make sure the netchan queue has been properly initialized (you never know) if (!client->netchan_end_queue) { Com_Error(ERR_DROP, "netchan queue is not properly initialized in SV_Netchan_TransmitNextFragment\n"); }
Fixed: // make sure the netchan queue has been properly initialized (you never know) // DD - skip just disconnected and zombies (CS_ZOMBIE) if (!client->netchan_end_queue && client->state != CS_ZOMBIE) { Com_Error(ERR_DROP, "netchan queue is not properly initialized in SV_Netchan_TransmitNextFragment\n"); }
Credit goes to: DD
Note: you may use 'client->state >= CS_CONNECTED' instead of 'client->state != CS_ZOMBIE', if you want to skip CS_FREE clients too. I used != CS_ZOMBIE because recently kicked players get zombie state for a few seconds and error occurred after kicking a lot of players at once.
I tested it few times with 20-24 bots and it kicked them all without an error.
The bug is still marked as opened and the fix reported in the bugreport is still not actually applied to the engine. ...
// code/server/sv_net_chan.c
/* ================= SV_Netchan_TransmitNextFragment ================= */ void SV_Netchan_TransmitNextFragment( client_t *client ) { Netchan_TransmitNextFragment( &client->netchan ); if (!client->netchan.unsentFragments) { // make sure the netchan queue has been properly initialized (you never know) if (!client->netchan_end_queue) { Com_Error(ERR_DROP, "netchan queue is not properly initialized in SV_Netchan_TransmitNextFragment\n"); } // the last fragment was transmitted, check wether we have queued messages if (client->netchan_start_queue) { netchan_buffer_t *netbuf; Com_DPrintf("#462 Netchan_TransmitNextFragment: popping a queued message for transmit\n"); netbuf = client->netchan_start_queue; SV_Netchan_Encode( client, &netbuf->msg ); Netchan_Transmit( &client->netchan, netbuf->msg.cursize, netbuf->msg.data ); // pop from queue client->netchan_start_queue = netbuf->next; if (!client->netchan_start_queue) { Com_DPrintf("#462 Netchan_TransmitNextFragment: emptied queue\n"); client->netchan_end_queue = &client->netchan_start_queue; } else Com_DPrintf("#462 Netchan_TransmitNextFragment: remaining queued message\n"); Z_Free(netbuf); } } } ...
EDIT : Anyway , since u compile the engine for your platform ( freebsd ) , u can apply the fix by yourself and recompile the engine . If this will not fix the problem , I have another idea but better trying this before.
Title: Re: wrong modelname crashes server
Post by: davidd on August 21, 2009, 11:50:59 AM
Yes, it got fixed, 50% i think..... I did rcon kick allbots (like suggested in the bugzilla post.) The first few bots connect, no problem, then i reconnect, blam crash? Catch is, i did it after the game had already ended. this might be a separate bug. Then i got some error on my client about cyclic packets distrusted or something, ill try it again But the server did not crash I could just reconnect like this: ClientConnect: 2 ClientUserinfoChanged: 2 n\^1[Z]^2Dav^4idd\t\0\model\sarge/red\hmodel\sarge/red\g_redteam\\g_blueteam\\c1\5\c2\5\hc\100\w\0\l\0\tt\0\tl\0 broadcast: print "^1[Z]^2Dav^4idd^7 connected\n" Sending heartbeat to dpmaster.deathmask.net ==== ShutdownGame ==== ShutdownGame: ------------------------------------------------------------ AAS shutdown. ------ Server Initialization ------ Server: oa_rpg3dm2 Hunk_Clear: reset the hunk ok ----- FS_Startup ----- Current search path:
snipped out files, they were ok. ---------------------- 21595 files in pk3 files Loading vm file vm/qagame.qvm... ...which has vmMagic VM_MAGIC_VER2 Loading 1207 jump table targets qagame loaded in 5040608 bytes on the hunk ------- Game Initialization ------- gamename: baseoa gamedate: Oct 20 2008 ------------------------------------------------------------ InitGame: \bot_minplayers\20\elimination_ctf_oneway\0\elimination_roundtime\90\g_delagHitscan\1\capturelimit\8\g_maxGameClients\26\sv_dlURL\http://www.zvdk.nl\sv_floodProtect\1\sv_maxPing\150\sv_minPing\0\sv_maxRate\25000\sv_minRate\0\sv_maxclients\32\sv_hostname\ ^1[Z]^^88 BRIGHT^^66SKins DM ^3server\timelimit\ver\timelimit\15\f15\fraglimit\40\dmflags\0\version\ioq3+oa 1.35 freebsd-i386 Aug 5 2009\g_gametype\0\protocol\71\mapname\oa_rpg3dm2\sv_privateClients\2\sv_allowDownload\1\.Admin \^1[Z]^2Dav^4idd \.email\ad min@zvdk.nl\.www\www.zvdk.nl/q3stats\gamename\baseoa\g_needpass\0\g_obeliskRespawnDelay\10\g_rockets\0\g_instantgib\0\g_humanplayers\1 0 teams with 0 entities 16 items registered ----------------------------------- ------- BotLib Initialization ------- loaded weapons.c loaded items.c loaded syn.c loaded rnd.c loaded match.c ------------ Map Loading ------------ trying to load maps/oa_rpg3dm2.aas loaded maps/oa_rpg3dm2.aas found 32 level items ------------------------------------- 24 bots parsed 43 arenas parsed AAS initialized. ClientConnect: 2 ClientUserinfoChanged: 2 n\^1[Z]^2Dav^4idd\t\0\model\sarge/red\hmodel\sarge/red\g_redteam\\g_blueteam\\c1\5\c2\5\hc\100\w\0\l\0\tt\0\tl\0 ----------------------------------- Sending heartbeat to dpmaster.deathmask.net ClientUserinfoChanged: 2 n\^1[Z]^2Dav^4idd\t\0\model\sarge/red\hmodel\sarge/red\g_redteam\\g_blueteam\\c1\5\c2\5\hc\100\w\0\l\0\tt\0\tl\0 broadcast: print "^1[Z]^2Dav^4idd^7 entered the game\n" ClientBegin: 2 loaded skill 1 from bots/default_c.c loaded skill 1 from bots/rai_c.c loaded skill 4 from bots/default_c.c loaded skill 4 from bots/rai_c.c loaded bots/rai_i.c loaded bots/rai_w.c loaded rai from bots/rai_t.c ClientConnect: 0 ClientUserinfoChanged: 0 n\Rai\t\0\model\angelyss/rai\hmodel\angelyss/rai\c1\4\c2\5\hc\70\w\0\l\0\skill\ 2.00\tt\0\tl\0 broadcast: print "Rai^7 connected\n" broadcast: print "Rai^7 entered the game\n" ClientBegin: 0 Item: 0 weapon_shotgun Item: 0 item_armor_shard Item: 0 item_armor_shard Item: 2 item_health_mega Item: 0 item_armor_shard Item: 0 item_armor_shard Item: 2 item_armor_combat Item: 0 weapon_rocketlauncher Item: 2 weapon_rocketlauncher Item: 2 item_armor_shard loaded cached skill 1.000000 from bots/default_c.c loaded skill 1 from bots/sarge_c.c loaded cached skill 4.000000 from bots/default_c.c loaded skill 4 from bots/sarge_c.c loaded bots/sarge_i.c loaded bots/sarge_w.c loaded sarge from bots/sarge_t.c ClientConnect: 1 ClientUserinfoChanged: 1 n\Sarge\t\0\model\sarge\hmodel\sarge\c1\4\c2\5\hc\70\w\0\l\0\skill\ 2.00\tt\0\tl\0 broadcast: print "Sarge^7 connected\n" broadcast: print "Sarge^7 entered the game\n" ClientBegin: 1 Kill: 2 1 6: ^1[Z]^2Dav^4idd killed Sarge by MOD_ROCKET Item: 2 item_health_small Item: 2 item_health_small Item: 2 item_health_small Item: 1 weapon_shotgun Item: 2 weapon_shotgun Item: 2 item_health_small Item: 2 item_armor_shard Item: 2 item_armor_shard Item: 0 weapon_grenadelauncher Item: 1 weapon_rocketlauncher loaded cached skill 1.000000 from bots/default_c.c loaded skill 1 from bots/ayumi_c.c loaded cached skill 4.000000 from bots/default_c.c loaded skill 4 from bots/ayumi_c.c loaded bots/ayumi_i.c loaded bots/ayumi_w.c loaded Ayumi from bots/ayumi_t.c ClientConnect: 3 ClientUserinfoChanged: 3 n\Jenna\t\0\model\ayumi/jenna\hmodel\ayumi/jenna\c1\4\c2\5\hc\70\w\0\l\0\skill\ 2.00\tt\0\tl\0 ClientConnect: 1 ClientUserinfoChanged: 1 n\Sarge\t\0\model\sarge\hmodel\sarge\c1\4\c2\5\hc\70\w\0\l\0\skill\ 2.00\tt\0\tl\0 broadcast: print "Sarge^7 connected\n" broadcast: print "Sarge^7 entered the game\n" ClientBegin: 1 Kill: 2 1 6: ^1[Z]^2Dav^4idd killed Sarge by MOD_ROCKET Item: 2 item_health_small Item: 2 item_health_small Item: 2 item_health_small Item: 1 weapon_shotgun Item: 2 weapon_shotgun Item: 2 item_health_small Item: 2 item_armor_shard Item: 2 item_armor_shard Item: 0 weapon_grenadelauncher Item: 1 weapon_rocketlauncher loaded cached skill 1.000000 from bots/default_c.c loaded skill 1 from bots/ayumi_c.c loaded cached skill 4.000000 from bots/default_c.c loaded skill 4 from bots/ayumi_c.c loaded bots/ayumi_i.c loaded bots/ayumi_w.c loaded Ayumi from bots/ayumi_t.c ClientConnect: 3 ClientUserinfoChanged: 3 n\Jenna\t\0\model\ayumi/jenna\hmodel\ayumi/jenna\c1\4\c2\5\hc\70\w\0\l\0\skill\ 2.00\tt\0\tl\0 broadcast: print "Jenna^7 connected\n" broadcast: print "Jenna^7 entered the game\n" ClientBegin: 3 ******************** ERROR: netchan queue is not properly initialized in SV_Netchan_TransmitNextFragment
******************** ----- Server Shutdown (Server crashed: netchan queue is not properly initialized in SV_Netchan_TransmitNextFragment ) ----- Sending heartbeat to dpmaster.deathmask.net Sending heartbeat to dpmaster.deathmask.net ==== ShutdownGame ==== ShutdownGame: ------------------------------------------------------------ AAS shutdown. --------------------------- ]
ClientConnect: 1 ClientUserinfoChanged: 1 n\Sarge\t\0\model\sarge\hmodel\sarge\c1\4\c2\5\hc\70\w\0\l\0\skill\ 2.00\tt\0\tl\0 broadcast: print "Sarge^7 connected\n" broadcast: print "Sarge^7 entered the game\n" ClientBegin: 1 Kill: 2 1 6: ^1[Z]^2Dav^4idd killed Sarge by MOD_ROCKET Item: 2 item_health_small Item: 2 item_health_small Item: 2 item_health_small Item: 1 weapon_shotgun Item: 2 weapon_shotgun Item: 2 item_health_small Item: 2 item_armor_shard Item: 2 item_armor_shard Item: 0 weapon_grenadelauncher Item: 1 weapon_rocketlauncher loaded cached skill 1.000000 from bots/default_c.c loaded skill 1 from bots/ayumi_c.c loaded cached skill 4.000000 from bots/default_c.c loaded skill 4 from bots/ayumi_c.c loaded bots/ayumi_i.c loaded bots/ayumi_w.c loaded Ayumi from bots/ayumi_t.c ClientConnect: 3 ClientUserinfoChanged: 3 n\Jenna\t\0\model\ayumi/jenna\hmodel\ayumi/jenna\c1\4\c2\5\hc\70\w\0\l\0\skill\ 2.00\tt\0\tl\0 broadcast: print "Jenna^7 connected\n" broadcast: print "Jenna^7 entered the game\n" ClientBegin: 3 ******************** ERROR: netchan queue is not properly initialized in SV_Netchan_TransmitNextFragment
******************** ----- Server Shutdown (Server crashed: netchan queue is not properly initialized in SV_Netchan_TransmitNextFragment ) ----- Sending heartbeat to dpmaster.deathmask.net Sending heartbeat to dpmaster.deathmask.net ==== ShutdownGame ==== ShutdownGame: ------------------------------------------------------------ AAS shutdown. ---------------------------
Title: Re: wrong modelname crashes server
Post by: davidd on August 21, 2009, 12:07:19 PM
The 2nd time i tried it did not even crash when i typed reconnect afterwards. but suddenly it crashed again did you do that falkland? dom_controlpoint doesn't have a spawn function runematch_spawn_point doesn't have a spawn function dom_controlpoint doesn't have a spawn function dom_controlpoint doesn't have a spawn function dom_controlpoint doesn't have a spawn function runematch_spawn_point doesn't have a spawn function runematch_spawn_point doesn't have a spawn function runematch_spawn_point doesn't have a spawn function runematch_spawn_point doesn't have a spawn function 0 teams with 0 entities 17 items registered
Title: Re: wrong modelname crashes server
Post by: Falkland on August 21, 2009, 12:19:03 PM
But have you applied the proposed fix , recompiled the engine and restarted your server ?
Because the version string of the server appears to be the same of the server that crashes : ioq3+oa 1.35 freebsd-i386 Aug 5 2009
Title: Re: wrong modelname crashes server
Post by: davidd on August 21, 2009, 12:32:35 PM
http://pastebin.com/d58236a8e lood ~/source/081/openarena-engine-0.8.1]$ vi code/server/sv_net_chan.c +138
/* ================= SV_Netchan_TransmitNextFragment ================= */ void SV_Netchan_TransmitNextFragment( client_t *client ) { Netchan_TransmitNextFragment( &client->netchan ); if (!client->netchan.unsentFragments) { // make sure the netchan queue has been properly initialized (you never know) // DD - skip just disconnected and zombies (CS_ZOMBIE) http://bugzilla.icculus.org/show_bug.cgi?id=3418 if (!client->netchan_end_queue && client->state != CS_ZOMBIE) { Com_Error(ERR_DROP, "netchan queue is not properly initialized in SV_Netchan_TransmitNextFragment\n"); }
// the last fragment was transmitted, check wether we have queued messages if (client->netchan_start_queue) { netchan_buffer_t *netbuf; Com_DPrintf("#462 Netchan_TransmitNextFragment: popping a queued message for transmit\n"); netbuf = client->netchan_start_queue; SV_Netchan_Encode( client, &netbuf->msg ); Netchan_Transmit( &client->netchan, netbuf->msg.cursize, netbuf->msg.data ); // pop from queue client->netchan_start_queue = netbuf->next; if (!client->netchan_start_queue) { Com_DPrintf("#462 Netchan_TransmitNextFragment: emptied queue\n"); client->netchan_end_queue = &client->netchan_start_queue; } else Com_DPrintf("#462 Netchan_TransmitNextFragment: remaining queued message\n"); Z_Free(netbuf); } } }
/* =============== SV_Netchan_Transmit TTimo :q [halfleven@lood ~/source/081/openarena-engine-0.8.1]$ ls BUGS README md4-readme.txt COPYING.txt TODO misc ChangeLog build patch-code_qcommon_net_ip_c Makefile code ui Makefile.local cross-make-mingw.sh voip-readme.txt Makefile.orig id-readme.txt NOTTODO make-macosx-ub.sh [halfleven@lood ~/source/081/openarena-engine-0.8.1]$ gmake gmake[1]: Entering directory `/usr/home/halfleven/source/081/openarena-engine-0.8.1'
Building openarena in build/release-freebsd-i386: PLATFORM: freebsd ARCH: i386 VERSION: 1.35 COMPILE_PLATFORM: freebsd COMPILE_ARCH: i386 CC: cc
CFLAGS: -MMD -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes -DUSE_ICON -I/usr/local/include/SDL -I/usr/local/include -D_GNU_SOURCE=1 -D_REENTRANT -DUSE_OPENAL -DUSE_OPENAL_DLOPEN -DUSE_CODEC_VORBIS -DUSE_MUMBLE -DUSE_VOIP -DFLOATING_POINT -DUSE_ALLOCA -Icode/libspeex/include -DUSE_LOCAL_HEADERS -DSTANDALONE -DPRODUCT_VERSION="1.35" -DNDEBUG -O3 -mtune=pentiumpro -march=pentium -fomit-frame-pointer -pipe -ffast-math -falign-loops=2 -falign-jumps=2 -falign-functions=2 -funroll-loops -fstrength-reduce
LDFLAGS: -lm
Output: build/release-freebsd-i386/oa_ded.i386 build/release-freebsd-i386/openarena.i386
gmake[2]: Entering directory `/usr/home/halfleven/source/081/openarena-engine-0.8.1' DED_CC code/server/sv_net_chan.c LD build/release-freebsd-i386/oa_ded.i386 CC code/server/sv_net_chan.c LD build/release-freebsd-i386/openarena.i386 gmake[2]: Leaving directory `/usr/home/halfleven/source/081/openarena-engine-0.8.1' # gmake[1]: Leaving directory `/usr/home/halfleven/source/081/openarena-engine-0.8.1' # [halfleven@lood ~/source/081/openarena-engine-0.8.1]$ scp build/release-freebsd-i386/oa_ded.i386 halfleve@dragon.zvdk.nl: Password: # oa_ded.i386 100% 811KB 810.5KB/s 00:00 # [halfleven@lood ~/source/081/openarena-engine-0.8.1]$
so yes, after it crashed i started it again and then is was ok
Title: Re: wrong modelname crashes server
Post by: Falkland on August 21, 2009, 12:44:44 PM
http://pastebin.com/d58236a8e ... gmake[2]: Entering directory `/usr/home/halfleven/source/081/openarena-engine-0.8.1' DED_CC code/server/sv_net_chan.c LD build/release-freebsd-i386/oa_ded.i386 CC code/server/sv_net_chan.c LD build/release-freebsd-i386/openarena.i386 gmake[2]: Leaving directory `/usr/home/halfleven/source/081/openarena-engine-0.8.1' ...
Ah ok ok ... u've relaunched the compilation process without doing a make clean , so the version string wasn't altered.
|