IPB

Welcome Guest ( Log In | Register )

> Rule #1

Be Courteous!
Don't attack others. Personal attacks on others will not be tolerated. You can challenge points of view and opinions, but do so respectfully and thoughtfully without insult and personal attack. Keep discussions on topic and constructive.

Before you post: Forum Guidelines

> Info_string (iwd Sum/mismatch) Revealed, An in-depth study and solution guide
bullet-worm
post Jun 15 2006, 04:09 PM
Post #1


Community Builder
**********
Group: Community Builder
Posts: 1509
Joined: 30-October 03
Member No.: 324



Results of my experiments with IWD Sum Mismatch

This is going to be a LONG post. However, for server admins the information below is very important, ESPECIALLY if they are fighting with the now infamous IWD Sum/Mismatch error.

The ACTUAL error appears to be caused because the info_string is cut-off at 1024 characters, and you get the IWD Sum/Mismatch error because the client does not recieve all of the checksums it needs from the server to verify its files are identical. As a side note, the 'loop-loading' effect of the info_string appears to come into play when the entire list of checksums makes it in the info_string, but the info_string has still been cut-off AFTER the checksum portion of the string (as you can see below).

Let me start by showing you a COMPLETE info_string:
CODE
\bg_fallDamageMaxHeight\480\bg_fallDamageMinHeight\252\g_synchronousClients\0\sv_cheats\0\sv_disableClientConsole\0\sv_iwdNames\z__svr_csv z_svr_sound_aliases_for_dhc_map_pack_4 z_svr_sound_aliases_for_dhc_map_pack_2 z_svr_sound_aliases_for_dhc_map_pack_02 z_svr_sound_aliases_for_dhc_map_pack_01 z_svr_pam____202 z_dhc_mp1 zzz_mp_powcamp iw_15 iw_14 iw_13 iw_12 iw_11 iw_10 iw_09 iw_08 iw_07 iw_06 iw_05 iw_04 iw_03 iw_00\sv_iwds\-675245519 1058077270 1058077270 1058077270 1058077270 -635133705 2070676332 -149688453 181429573 -1449716526 780394069 -1333623355 -1980843666 1334775335 -621896007 1101180720 1046874969 1053665859 1842349204 -1652414412 1659111092 178615151 \sv_pure\1\sv_referencedIwdNames\main/z__svr_csv main/z_svr_sound_aliases_for_dhc_map_pack_4 main/z_svr_pam____202 main/iw_15 main/iw_13 main/iw_08 main/iw_07 main/iw_06 main/iw_03\sv_referencedIwds\-675245519 1058077270 -635133705 181429573 780394069 1101180720 1046874969 1053665859 1659111092 \sv_serverid\16\sv_voice\0\sv_voiceQuality\1\timescale\1


Note that this info string is 1026 characters long, just two characters over the 1024 limit. I have confirmed this is the entire info_string by removing two characters in a non-referenced IWD file name (importance to be discussed later) and verified that with those two characters removed, the server would NOT come up with the info_string error.

Using this knowledge, we now we know EXACTLY what is contained in an info_string. We can use that information to figure out what we server admins can do to REDUCE the length of this string.

I should note, these are the results based on a WINDOWS SERVER! I do not run a Linux server so your results may or may not match mine. Also, I PERSONALLY will not be "supporting" this technique. The information is here for you to discern and use on your own. Not all of my suggestions are for the un-experienced server admin and that is all I will say about that.

First, there is nothing we can do about a large majority of the settings contained in the string. These (and their respective settings) must be sent. Nothing we (the CoD2 user) can do about it.
CODE
bg_fallDamageMaxHeight
bg_fallDamageMinHeight
g_synchronousClients
sv_cheats
sv_disableClientConsole
sv_pure
sv_serverid
sv_voice
sv_voiceQuality
timescale


Luckily, those only add up to approximately 188 characters worth of our info_string, which leaves us with about 836 characters to play with.

With the rest of the info_string, we can play Damage Control. Or what I like to call in this case... "ghetto-riggin'"

We have FOUR settings left that are in the info_string that we can effect and I will look into each one of these seperately.


1) sv_iwdNames
CODE
sv_iwdNames\z__svr_csv z_svr_sound_aliases_for_dhc_map_pack_4 z_svr_sound_aliases_for_dhc_map_pack_2 z_svr_sound_aliases_for_dhc_map_pack_02 z_svr_sound_aliases_for_dhc_map_pack_01 z_svr_pam____202 z_dhc_mp1 zzz_mp_powcamp iw_15 iw_14 iw_13 iw_12 iw_11 iw_10 iw_09 iw_08 iw_07 iw_06 iw_05 iw_04 iw_03 iw_00\


This is a list of ALL IWD file names found on your server (or MY test server for the above example).

Note: "localized_" IWD filenames are not included in the info_string at all, so messing with these is useless as the server does not even recognize them for these purposes.

What can we do to reduce the number of characters here?
A) Remove UNNECESSARY IWD files.
If you look carefully in the list of IWD names above, you will see that iw_01 and iw_02 are missing. They aren't missing. I REMOVED them from the server. They contain single player maps and are useless for my dedicated multiplayer server. I have also found that a DEDICATED (Windows) server is not hindered by removing iw_11 and iw_12! For me, that makes 4 STOCK IWD file names I can remove from the server. biggrin.gif

Also, make sure you are not harboring OLD versions of mods that are not being used, as this does nothing but add to this list of IWD names.

cool.gif Use short names for IWD files. IW actually helped us a little by keeping their stock IWD files down to 5 characters each, but don't give them too much credit as they ended up using 15 IWD names which REALLY kicks the info_string in the pants (as I am about to show).

C) Combine mods where you can. Try to only have ONE server-side IWD file and ONE client-side IWD file if you are using mods.

D) For servers with access to fs_game folders only: You can EXTRACT the serverside component of your mod to your server's fs_game folder and completely REMOVE the IWD name from the info_string. This is the 'old' method of creating "server-side-only" mods before the 1.2 patch gave us back the '_svr_' naming convention.

E) For servers without fs_game access, but access to high-speed HTTP Re-direct, COMBINE your server-side and client-side components of your mod into ONE IWD file. Sure, the client will have to download the whole mod, but with HTTP redirect it should not take more than a second or so either way and you SAVE an IWD name from being in the info_string


2) sv_iwds
CODE
sv_iwds\-675245519 1058077270 1058077270 1058077270 1058077270 -635133705 2070676332 -149688453 181429573 -1449716526 780394069 -1333623355 -1980843666 1334775335 -621896007 1101180720 1046874969 1053665859 1842349204 -1652414412 1659111092 178615151


These are the in-game checksums; The numbers IW uses to verify that the IWD files on the server are exactly the same as what the clients have. There is one entry for EACH sv_iwdnames listing. Here is where those 15 seperate IWD names IW left us come back to haunt us. They are 9-11 characters EACH (NOT including spacing!!!)! Thus for those 15 STOCK IWD files IW has given us, we just ate up about another 180 characters of our available info_string. OUCH!

What can we do to reduce the number of characters here?
A) AGAIN, remove UNNECESSARY IWD files. Anything you can do to REDUCE the number of IWD names, reduces the number of IWD checksums!
Not only do you save on the sv_iwdNames space, but you also eliminate 10-12 characters worth of checksum space for each file removed. Thus just by removing iw_01, iw_02, iw_11, and iw_12 I didn't just save 20 characters of info_space, but 64 characters of info_string space!

cool.gif Combining mods into ONE IWD file where possible will obviously reduce the number of IWD names, but it also reduces the number of checksums! Double bonus for this!

C) For servers with access to fs_game folders only: Extracting serverside only sections of mods and removing an IWD file also gets rid of THAT checksum in the info_string. BONUS!


**Note about sv_iwdNames and sv_iwds as they apply to Custom Maps**
There is nothing we can do about this. The name of the custom map IWD will be sent no matter what, the place we can save info_space will be in the sv_referencedIWDnames as I will show in a minute.




3) sv_referencediwdNames
CODE
sv_referencedIwdNames\main/z__svr_csv main/z_svr_sound_aliases_for_dhc_map_pack_4 main/z_svr_pam____202 main/iw_15 main/iw_13 main/iw_08 main/iw_07 main/iw_06 main/iw_03


This is a list of all IWD filenames being actively 'loaded' by the server. Notice the word 'loaded' because it becomes very important when we apply it to a custom maps server.

What can we do to reduce the number of characters here?
A) AGAIN!!! Combining mods into ONE IWD file will reduce the number of IWD names.

cool.gif Short file names are important too, as the number of characters in 'loaded' IWD files actually count against us in the info_string TWICE. Once in sv_iwdNames and once in sv_referencediwdNames.

C) For servers with access to fs_game folders only: You can EXTRACT the serverside component of your mod to your server's fs_game folder and completely REMOVE the IWD name from this part of the info_string.

D) For servers without fs_game access, but access to high-speed HTTP Re-direct, COMBINE your server-side and client-side components of your mod into ONE IWD file. Sure, the client will have to download the whole mod, but with HTTP redirect it should not take more than a second or so either way and you SAVE an IWD name from being in the info_string TWICE!



3) sv_referencedIwds
CODE
sv_referencedIwds\-675245519 1058077270 -635133705 181429573 780394069 1101180720 1046874969 1053665859 1659111092


These are the checksums for the 'loaded' IWD files. It is a waste from IW since they are essentially REPEATS of the numbers available in sv_iwds, but I guess it made it a little easier to match the names up with the checksums and they probably did not anticipate the info_string length problem...

What can we do to reduce the number of characters here?
The same information that applies to sv_iwds applies here except for the removal of unneccessary IWD files (since they will not get 'loaded' anyway)

A) Combining mods into ONE IWD file where possible will obviously reduce the number of IWD names, but it also reduces the number of checksums! If the IWDs combined get actively 'loaded', QUADRUPLE BONUS! You just eliminated wasted space in sv_iwdnames, sv_iwds, sv_referencediwdNames, AND sv_referencediwds. Anything you can do to reduce the number of IWD names being actively 'loaded' will greatly reduce the amount of characters used in your info_string.

cool.gif For servers with access to fs_game folders only: Extracting serverside only sections of mods and removing an IWD file also gets rid of THAT checksum in the info_string. BONUS!



NOW! For an important note about Custom Maps and what I will call the "sound csv bug".
For those of you unaware: There is a problem in CoD2 where the server automatically 'loads' (see the REFERENCED IWD files above) ALL custom map's soundaliases/*.csv files even if that custom map is not actively being played.

This causes TWO problems:
1) When a client connects, it has to download ALL of the 'loaded' (referenced) IWD files that the server has. This means that a client would have to download EVERY SINGLE CUSTOM MAP OR MAP PACK before the client can begin playing even if the server is currently running a STOCK map!

2) The second problem DIRECTLY relates to our IWD Sum/Mismatch problem. If you have EVERY custom map 'loaded' due to the sound csv bug, then EVERY custom map will be listed not only in your sv_iwdnames and sv_iwds, but ALSO in your sv_referencediwdNames AND sv_referencediwds. OUCH!

To work around the sound csv bug, which will allow your players to download ONLY the map you are actually running AND save you LOTS of info_string space, you can do one of the following:

Option 1: BEST Option but only available to those of you who have access to the use of an fs_game folder -
1) Make a directory in your fs_game folder named "soundaliases" (without the quotes!)
2) Open EACH custom map (or mappack) IWD file and extract the contents of the soundaliases directory and put those files in your fs_game soundaliases directory. DO NOT DELETE THE FILES FROM THE MAP IWD FILE.
3) Put all the un-altered custom map IWD files in your /main directory.

Option 2: Not the BEST option because it involves more steps and adds an IWD file, but if you don't have access to the fs_game folder and run custom maps it is still WAY better.
1) Make a new directory (folder) in your C:\ and name it "soundaliases" (without the quotes)
2) Open EACH custom map (or mappack) IWD file and extract the contents of the soundaliases directory and put those files in your newly created soundaliases directory. DO NOT DELETE THE FILES FROM THE MAP IWD FILE.
3) Once you have all the soundaliases/*.csv files accounted for, ZIP your newly created soundaliases directory. Make sure when you open the Zip file, there is a soundaliases directory in there and the csv files are in the soundaliases directory. It is very important that the directory structure for your new zip file be the same as it was in the original custom map files.
4) Rename your Zip file to "z__svr_" + some custom text specific to your server (please note that there are TWO underscores after the 'z', this is intentional). Try to be original with the custom text part of the filename so that you do not conflict with another server.
Note: If you really want to be chinchy with info_string space and do not care if clients have to download the file, you can live without the _svr_ part of the filename, but still leave two underscores AFTER the 'z'.
Note 2: It can also be COMBINED with a mod IWD file so as not to effect the length of the info_string, but keep in mind that every time you change the custom maps on your server you will have to re-combine all of your mods to re-create the ONE IWD file goal.
5) Remove the part of the Zip filename that says ".zip" and replace it with ".iwd"
6) Upload your newly created IWD file to your server's \main directory along with all of your custom maps.

------------------------------------------------------------

I hope this has been educational for those of you who understand what I am saying. If what I have said is going WAY over your head, you may not be ready to do anything with this information. Again, I DO NOT WANT to spend the next 3-4 months of my life trying to get everyone's server optimized for running the MAXIMUM number of custom maps. I will answer questions as I am able, and I am sure others in this community who understand my post will help out as they can as well.

Thanks!

worm
 
Go to the top of the page+Quote Post
 
Start new topic
Replies (1 - 6)
UKUFTaFFyTucK
post Jun 17 2006, 12:10 PM
Post #2


Veteran
*****
Group: Members
Posts: 407
Joined: 31-January 06
From: Cardiff, Wales
Member No.: 13910



Thanks Worm....I didn't know about 01,02,11 and 12.....I'll try it and add another custom map..

biggrin.gif
 
Go to the top of the page+Quote Post
UKUFTaFFyTucK
post Jun 19 2006, 12:08 AM
Post #3


Veteran
*****
Group: Members
Posts: 407
Joined: 31-January 06
From: Cardiff, Wales
Member No.: 13910



My results were great...till 2 of our members kept getting invalid file iw_11.iwd blink.gif

strange as it was only the 2....Any Ideas Worm? blink.gif

anyway put 11 and 12 back in and the joined the server no problem..... smile.gif

Still able to add another 2 custom maps though...thanks Worm.... biggrin.gif
 
Go to the top of the page+Quote Post
DER_Wolle!
post Jun 19 2006, 06:17 AM
Post #4


Recruit
*
Group: Members
Posts: 2
Joined: 22-May 06
From: Berlin (East) | Germany
Member No.: 16299



I use Linux servers only, and i removed iw_01, iw_02, iw_11 and iw_12 and all seems fine, i can connect and the server running well. biggrin.gif
But some custom maps have short names and they give an iwd/sum mismatch error if i leave this in the main folder. So i think i will configure out wich maps are "compatible" and wich not. tongue.gif

Edit:
At the moment i host following maps in cycle:
mp_depot (final), mp_v2, mp_stlo (final), mp_buhlert, mp_mat3, mp_bridge, mp_bentys_place, mp_borisovka (final) and mp_powcamp (schlumpfdorf version)

Also i use the same installation for our RCMod V5 Server (fs_game folder) and it is also running stable and very well.

thx for this hint, 9 custom maps in rotation is great for the moment wink.gif :ol_rolleyes:

This post has been edited by DER_Wolle!: Jun 19 2006, 06:20 AM
 
Go to the top of the page+Quote Post
Mazzic
post Jun 19 2006, 07:20 AM
Post #5


Recruit
*
Group: Members
Posts: 13
Joined: 11-June 06
From: Waco, TX
Member No.: 16591



QUOTE (DER_Wolle! @ Jun 19 2006, 12:17 AM)
I use Linux servers only, and i removed iw_01, iw_02, iw_11 and iw_12 and all seems fine, i can connect and the server running well. biggrin.gif
But some custom maps have short names and they give an iwd/sum mismatch error if i leave this in the main folder. So i think i will configure out wich maps are "compatible" and wich not.  tongue.gif

Edit:
At the moment i host following maps in cycle:
mp_depot (final), mp_v2, mp_stlo (final), mp_buhlert, mp_mat3, mp_bridge, mp_bentys_place, mp_borisovka (final) and mp_powcamp (schlumpfdorf version)

Also i use the same installation for our RCMod V5 Server (fs_game folder) and it is also running stable and very well.

thx for this hint, 9 custom maps in rotation is great for the moment wink.gif :ol_rolleyes:
*


Be sure to check out the thread under the same name in the CoD2 General Forum. It has quite a few more replys and additional information on this issue.

Generally when you see the iwd/sum mismatch error that is because you have received an info string error message on the server. Since the info string space is full, not all of the checksums can be added. Creating a checksum error.

Shortening maps name will help. Also, removing any *.iwd files on the server that you can makes more room. You can unzip the server side mods either the main or fs_game folder. If you can't unzip them, then merge all your server sides into one.

I currently have 21 custom maps in my server rotation...

mp_tigersleep mp_algiers mp_draguignan mp_fourregerre1_1 mp_port mp_st-gatien mp_tobruk mp_sfrance mp_bridge mp_stalingrad mp_nuenen mp_sweat_blood durdon_cross mp_borisovka mp_kalzdaba moh_verschneit mp_return_to_pavlov mp_powcamp mp_vokday mp_de_dust mp_secretairfield_f1_1

Of course, I should note that I am a windows server and I'm not sure if the limitation on space is different between the windows & linux versions.
 
Go to the top of the page+Quote Post
DER_Wolle!
post Jun 19 2006, 02:52 PM
Post #6


Recruit
*
Group: Members
Posts: 2
Joined: 22-May 06
From: Berlin (East) | Germany
Member No.: 16299



QUOTE (Mazzic @ Jun 19 2006, 08:20 AM)
Of course, I should note that I am a windows server and I'm not sure if the limitation on space is different between the windows & linux versions.

Thats the problem, i have Linux. I hate Win Server. Linux is more stable and runs very smooth. Anyway, its not a must to host too many files. Round about 10 custom maps are enough i think. wink.gif
 
Go to the top of the page+Quote Post
FreeMan
post Jun 20 2006, 01:15 AM
Post #7


I have achieved CoD Nirvana
********
Group: Members
Posts: 752
Joined: 22-February 04
From: Harrisburg, PA
Member No.: 3567



D'oh, should have closed this to keep all the discussions in one thread.

For discussions please use the original thread located here:
http://www.iwnation.com/Forums/index.php?showtopic=24147
 
Go to the top of the page+Quote Post

Closed TopicStart new topic

 

Lo-Fi Version Time is now: 10th September 2010 - 08:31 AM