SamusDroidColoradoJoin Date: 2013-05-13Member: 185219Members, Forum Moderators, NS2 Developer, NS2 Playtester, Squad Five Gold, Subnautica Playtester, NS2 Community Developer, Pistachionauts
No promises but Matso is working on fixing the problem for good with the ability to download mods from the server if steam can't download them and the client can't download it.
There is the idea of letting clients download whatever the server has so they can play no questions asked.
This would be the next small step in "steam resilience" towards a complete workshop fix.
Whenever a client would get missing required mod, it'd try to download the mod from the server. The client would need to inherit the unix download time from the server (which is the long number after mxxxxxxx_thisnumberhere in the mods folder name). For the rare case a client downloads an outdated mod from a server (to always allow a connection) it needs to be aware which one is the newest.
Simply using a http server for those downloads on the game server itself might be a problem tho (it will be abused by the dark side).
Half life had an integrated download ability that was extremely limited in bandwidth before they added the option for defining a http download location. It took a while but you could play after waiting.
Whatever the method, the goal would be to allow people to play.
As at least Ghoul knows, I still have the tendency to look into problems even if I judge the chance low that they exist. (like now for instance)
Because there is always a chance im wrong. So I just did a quick check and I actually have a theory which may or may not help.
What did I do?
* Delete all client and server logs.
* Cold start a server a ns2 server so it loads up all the mods it has. (to maximize chance a client fails)
* Delete all client mods.
* Start taking process monitor dumps.
* Connect to server.
* Copy logs to backup folder & go back to step 1 till im in server.
* Repeat process a few times.
Things I noticed:
* When connecting to a server ns2 is kind enough to check and downloadall mods you are subscribed to, not just the mods the server runs. (I did direct connect to the server, so I started ns2 with joining the server right away)
* Mods not on the server may or may not be fully downloaded with multiple runs.
* Mods fail to download, client VERY quickly disconnects and server gives the by now known error of missing mod. The process monitor dumps DO show non server maps try to download during this time period.
* Mods download, no error whatsoever. Mod folder has downloaded but incomplete mods the server doesn't run. (like old subscribed combat mod maps)
Theory:
* When the workshop does not fail, it downloads all mods it needs to connect to server. It also download any other subscribed mod till connected.
* When workshop fails, it downloads mods from server. Fails to download mods the server does not have (like combat maps) and gives up.
* So technicly the workshop is still as crap, but the client just wants to much from the server.
Of course if the above is indeed what happens, then we would either need to client to try the workshop a few more times or ignore any mod errors it has if the server does not need it.
But as I lack the coding know how to see if what I describe is accurate, or if I am misreading logs, im down for now. Hope it helps.
DC_DarklingJoin Date: 2003-07-10Member: 18068Members, Constellation, Squad Five Blue, Squad Five Silver
@Decoy & @Ironhorse
I just had a 2nd small idea. If you pick a client which is not subscribed to any mod, in theory, it should not have issues if the above theory I described is correct.
I dont have time to test, probably for a few days, so I decided to share that now also.
There is also the slim mad chance that the client checks mods it has already downloaded, but the server never runs. In that case the missing mod would be a server warning like 'hey the server doesn't have this crosshair mod which is in my to mount list'. As the workshop "doesn't exist" the client knows of no other place "and misses a mod."
matsoMaster of PatchesJoin Date: 2002-11-05Member: 7000Members, Forum Moderators, NS2 Developer, Constellation, NS2 Playtester, Squad Five Blue, Squad Five Silver, Squad Five Gold, Reinforced - Shadow, NS2 Community Developer
What happens is that if the server has a mod version that the client misses, the client will try to download it from Steam ... and it does not try hard enough; steam habitually drops anything from 25% (good days) to 90% (sales days) of all attempts to download from it.
So the number of retries the client does is set too low in the 272 client because the client code was rewritten in 272 and the retry count was copied from the server settings - which are lower because we don't want the server to delay a mapchange just because steam isn't in the mood.
What happens is that if the server has a mod version that the client misses, the client will try to download it from Steam ... and it does not try hard enough; steam habitually drops anything from 25% (good days) to 90% (sales days) of all attempts to download from it.
So the number of retries the client does is set too low in the 272 client because the client code was rewritten in 272 and the retry count was copied from the server settings - which are lower because we don't want the server to delay a mapchange just because steam isn't in the mood.
233 more instances of this happening from 12/25/14 2:41 pm - 12/26/14 5:32pm.
Server is now considered dead.
thanks.
edit: well, you know.. secretly, honestly. Behind all my madness. I'm actually grateful for the error and the timing of it. I'm actually having to move housing on January 4th and if it weren't for this, I'd probably take a break anyways and the server would be mad at me rather than me be mad at the cdt
If it is indeed a Steam problem, and not NS2's, would it be better to change the error dialog that pops up to something more descriptive? Cryptic error messages don't help the user get a better experience from the game. Instead of "missing required mod", why not "Failed to get a required mod from the Steam workshop. Steam workshop might be overloaded, try changing your download region in Steam download settings"
@matso Not sure if my problem is related. I only run 2 mods and it seems like the console messages don't make sense. When running in sandbox or offline mode, I get:
Mounting mod from C:/Users/IronhorseR0x/AppData/Roaming/Natural Selection 2/Workshop/m812f004_1418931985/
Mounting mod from C:/Users/IronhorseR0x/AppData/Roaming/Natural Selection 2/Workshop/mdef7c27_1393748621/
The top one is NS2+ and the bottom one is a crosshair. And both mods work great.
However, when I join an online server, I consistently get this in my console:
Mounting mod from C:/Users/IronhorseR0x/AppData/Roaming/Natural Selection 2/Workshop/m812f004_1418931985/
[132.020] Worker 03: Error: Couldn't mount " from path 'C:/Users/IronhorseR0x/AppData/Roaming/Natural Selection 2/Workshop/mdef7c27_1418931985/' as the path does not exist
So NS2+ works but my crosshair mod will not. If you look at the workshop folder name of the failed mod, it took the first half of one mod and combined with the second half of my other mod, thus making it not found and not load.
Not sure if this is relevant, but figured I'd post in case it helps you troubleshoot.
matsoMaster of PatchesJoin Date: 2002-11-05Member: 7000Members, Forum Moderators, NS2 Developer, Constellation, NS2 Playtester, Squad Five Blue, Squad Five Silver, Squad Five Gold, Reinforced - Shadow, NS2 Community Developer
@matso Not sure if my problem is related. I only run 2 mods and it seems like the console messages don't make sense. When running in sandbox or offline mode, I get:
Mounting mod from C:/Users/IronhorseR0x/AppData/Roaming/Natural Selection 2/Workshop/m812f004_1418931985/
Mounting mod from C:/Users/IronhorseR0x/AppData/Roaming/Natural Selection 2/Workshop/mdef7c27_1393748621/
The top one is NS2+ and the bottom one is a crosshair. And both mods work great.
However, when I join an online server, I consistently get this in my console:
Mounting mod from C:/Users/IronhorseR0x/AppData/Roaming/Natural Selection 2/Workshop/m812f004_1418931985/
[132.020] Worker 03: Error: Couldn't mount " from path 'C:/Users/IronhorseR0x/AppData/Roaming/Natural Selection 2/Workshop/mdef7c27_1418931985/' as the path does not exist
So NS2+ works but my crosshair mod will not. If you look at the workshop folder name of the failed mod, it took the first half of one mod and combined with the second half of my other mod, thus making it not found and not load.
Not sure if this is relevant, but figured I'd post in case it helps you troubleshoot.
Thanks .. that is indeed weird... hmm ... wonder if it is because you have NS2+ active locally AND get it from the server...
Could you try to connect to a server not running NS2+ and see if you get the same problem?
And see what happens if you deactivate NS2+ in Mods, then connect to a server with NS2+?
@matso Not sure if my problem is related. I only run 2 mods and it seems like the console messages don't make sense. When running in sandbox or offline mode, I get:
Mounting mod from C:/Users/IronhorseR0x/AppData/Roaming/Natural Selection 2/Workshop/m812f004_1418931985/
Mounting mod from C:/Users/IronhorseR0x/AppData/Roaming/Natural Selection 2/Workshop/mdef7c27_1393748621/
The top one is NS2+ and the bottom one is a crosshair. And both mods work great.
However, when I join an online server, I consistently get this in my console:
Mounting mod from C:/Users/IronhorseR0x/AppData/Roaming/Natural Selection 2/Workshop/m812f004_1418931985/
[132.020] Worker 03: Error: Couldn't mount " from path 'C:/Users/IronhorseR0x/AppData/Roaming/Natural Selection 2/Workshop/mdef7c27_1418931985/' as the path does not exist
So NS2+ works but my crosshair mod will not. If you look at the workshop folder name of the failed mod, it took the first half of one mod and combined with the second half of my other mod, thus making it not found and not load.
Not sure if this is relevant, but figured I'd post in case it helps you troubleshoot.
I had the same problem. I solved it by moving the removing my mods in workshop folder and putting it back again. I think cut and paste outside and back should work, don't quite remember now, but otherwise removing the whole folder and redownloading from workshop should fix it.
@matso In my case, deactivating ns2+ did not work nor did subscribing to other crosshair mods from workshop.
273 is looking nice. drifter/cysts through structures, clients not "retrying hard enough to download mods", allowing a "backup server" which is a fastdownload server alternate to steam, and fixing the editor save sometimes spawning triangles.
Is there any new information on what is causing the "missing required mod" issue? Is this a Steam issue or an NS2 issue? I have tried several possible fixes mentioned on the forums and from searching online to no avail.
It started happening after 272 patch, and I've never subscribed to a ns2 workshop mod. I also had two friends purchase this game during the sale, and neither of them could join servers because of the same error. It is very discouraging, and I've been checking this thread periodically throughout the past week, but have not seen any recent updates.
Is there any new information on what is causing the "missing required mod" issue? Is this a Steam issue or an NS2 issue? I have tried several possible fixes mentioned on the forums and from searching online to no avail.
It started happening after 272 patch, and I've never subscribed to a ns2 workshop mod. I also had two friends purchase this game during the sale, and neither of them could join servers because of the same error. It is very discouraging, and I've been checking this thread periodically throughout the past week, but have not seen any recent updates.
It's a Steam issue that happens a lot during sales. Even though you don't subscribe to mods the servers you play on probably do. The problem should be solved for good in a patch or two though.
Comments
This would be the next small step in "steam resilience" towards a complete workshop fix.
Whenever a client would get missing required mod, it'd try to download the mod from the server. The client would need to inherit the unix download time from the server (which is the long number after mxxxxxxx_thisnumberhere in the mods folder name). For the rare case a client downloads an outdated mod from a server (to always allow a connection) it needs to be aware which one is the newest.
Simply using a http server for those downloads on the game server itself might be a problem tho (it will be abused by the dark side).
Half life had an integrated download ability that was extremely limited in bandwidth before they added the option for defining a http download location. It took a while but you could play after waiting.
Whatever the method, the goal would be to allow people to play.
The server, hardly ever, if at all, gets beyond 10 players at once.
As at least Ghoul knows, I still have the tendency to look into problems even if I judge the chance low that they exist. (like now for instance)
Because there is always a chance im wrong. So I just did a quick check and I actually have a theory which may or may not help.
What did I do?
* Delete all client and server logs.
* Cold start a server a ns2 server so it loads up all the mods it has. (to maximize chance a client fails)
* Delete all client mods.
* Start taking process monitor dumps.
* Connect to server.
* Copy logs to backup folder & go back to step 1 till im in server.
* Repeat process a few times.
Things I noticed:
* When connecting to a server ns2 is kind enough to check and downloadall mods you are subscribed to, not just the mods the server runs. (I did direct connect to the server, so I started ns2 with joining the server right away)
* Mods not on the server may or may not be fully downloaded with multiple runs.
* Mods fail to download, client VERY quickly disconnects and server gives the by now known error of missing mod. The process monitor dumps DO show non server maps try to download during this time period.
* Mods download, no error whatsoever. Mod folder has downloaded but incomplete mods the server doesn't run. (like old subscribed combat mod maps)
Theory:
* When the workshop does not fail, it downloads all mods it needs to connect to server. It also download any other subscribed mod till connected.
* When workshop fails, it downloads mods from server. Fails to download mods the server does not have (like combat maps) and gives up.
* So technicly the workshop is still as crap, but the client just wants to much from the server.
Of course if the above is indeed what happens, then we would either need to client to try the workshop a few more times or ignore any mod errors it has if the server does not need it.
But as I lack the coding know how to see if what I describe is accurate, or if I am misreading logs, im down for now. Hope it helps.
I just had a 2nd small idea. If you pick a client which is not subscribed to any mod, in theory, it should not have issues if the above theory I described is correct.
I dont have time to test, probably for a few days, so I decided to share that now also.
There is also the slim mad chance that the client checks mods it has already downloaded, but the server never runs. In that case the missing mod would be a server warning like 'hey the server doesn't have this crosshair mod which is in my to mount list'. As the workshop "doesn't exist" the client knows of no other place "and misses a mod."
But I lack even more methods to check THAT one.
So the number of retries the client does is set too low in the 272 client because the client code was rewritten in 272 and the retry count was copied from the server settings - which are lower because we don't want the server to delay a mapchange just because steam isn't in the mood.
Will be fixed in 273.
:bz :-bd :-h ^:)^
Server is now considered dead.
thanks.
edit: well, you know.. secretly, honestly. Behind all my madness. I'm actually grateful for the error and the timing of it. I'm actually having to move housing on January 4th and if it weren't for this, I'd probably take a break anyways and the server would be mad at me rather than me be mad at the cdt
Raising the retry workshop limit, will not fix the backups method of failing to download non server mods.
Just saying.
Your personal experience is that retrying works eventually. In reality this is just you being lucky.
I do crave for your entertainment in these difficult times, please keep it up.
The top one is NS2+ and the bottom one is a crosshair. And both mods work great.
However, when I join an online server, I consistently get this in my console:
So NS2+ works but my crosshair mod will not. If you look at the workshop folder name of the failed mod, it took the first half of one mod and combined with the second half of my other mod, thus making it not found and not load.
Not sure if this is relevant, but figured I'd post in case it helps you troubleshoot.
Did you really rename your windows user account to that?? ... *changes locks*
Thanks .. that is indeed weird... hmm ... wonder if it is because you have NS2+ active locally AND get it from the server...
Could you try to connect to a server not running NS2+ and see if you get the same problem?
And see what happens if you deactivate NS2+ in Mods, then connect to a server with NS2+?
I had the same problem. I solved it by moving the removing my mods in workshop folder and putting it back again. I think cut and paste outside and back should work, don't quite remember now, but otherwise removing the whole folder and redownloading from workshop should fix it.
@matso In my case, deactivating ns2+ did not work nor did subscribing to other crosshair mods from workshop.
It started happening after 272 patch, and I've never subscribed to a ns2 workshop mod. I also had two friends purchase this game during the sale, and neither of them could join servers because of the same error. It is very discouraging, and I've been checking this thread periodically throughout the past week, but have not seen any recent updates.
It's a Steam issue that happens a lot during sales. Even though you don't subscribe to mods the servers you play on probably do. The problem should be solved for good in a patch or two though.
\:D/ ^:)^