[NOTE] There is no final and complete fix for this bug in HLDS due to the fact that server admins keep adding more and more plugins that require more txt,cfg and ini files in order to run them. if you can get rid of it and it doesn't come back for 30 to 60 days, Then you have fixed it for good until you start adding more files that need more ram then HLDS.exe can give and then the problem will come back.
[EDIT]march tenth 2008
Also add the command "sv_timeout 60" to you're server.cfg and you may even want to force "cl_timeout 60" on all of you're connecting clients. 65 is default but i've found that 50 to 60 is a good setting, And by forcing it, you can help other server admins who dont have this fix in their server.cfg.
SVC_BAD error bug, solved.
Ok well its been a whole year now since i had the svc_bad bug crop up and kick half the players on my server. Last night i cut the -zone value parameter in half from -zone 8192 too -zone 4096 and today it happend and kicked half my server.
I'm fairly confident that this is the cause and solution to this bitch of a bug.
Just add the "-zone 8192" to the end of your startup CMD line and you shouldn't have this problem any longer, No matter what .cfg or other text files are causing this, If you allocate enough -zone RAM from the heapsize it will fix it.
Just remember that the -zone parameter barrows RAM from the heapsize so know how much RAM your server uses and allocate accordingly.
I run with 1 gig of ram but now i'm thinking of adding one more gig just as an extra added measure.
This bug is also associated with the "FATAL ERROR (shutting down): SZ_GetSpace: Tried to write to an uninitialized sizebuf_t" BUG so it should fix both of them.
In closing, do anything you can to limit the size and amount of .cfg,ini and txt files your server has to access or serv to the clients including the MOTD.txt. And trim down the amount of charactors and number of lines in these files as well.
Remember the HL1 engine is so damn old and we are stretching it further and further with every plugin/script we add.
I'm sure if you use both the MOTD fix i posted and the -zone fix, That you wont see these bugs again.
I simply uploaded my motd.html to my web site and used the following code in the motd.txt on my server.
<frameset cols="*" framespacing="0" frameborder="no" border="0">
<frame src="http://www.mysite.com/motd/motd.html" name="frame_main" />
I run a 32 slot dod 1.3 HLDS on Fedora core 5 with 60 plugins + shrikebot, running on 1000 sys_ticrate, pingboost 2, 100MB uplink, P4 3.2 gig, with 1 gig of ram. This is the only server on the box.
here is my startup CMD line,
screen ./hlds_run -game dod +ip **.**.**.*** +port 27015 +map dod_orange +maxplayers 31 -zone 8192 -pingboost 2