AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Source Servers (SRCDS) (https://forums.alliedmods.net/forumdisplay.php?f=130)
-   -   Host_Error: CVEngineServer::PrecacheModel: '' overflow, too many models (https://forums.alliedmods.net/showthread.php?t=332055)

pedrotski 04-20-2021 12:35

Host_Error: CVEngineServer::PrecacheModel: '' overflow, too many models
 
I really need help with this issue.

Currently have a ZR server and having an issue every few days where the server will crash 3 times in a row with the error: Host_Error: CVEngineServer::PrecacheModel: '' overflow, too many models

It will then work fine for a few days until it just crashes randomly again.

I can reproduce the error 100% of the time if I load the server and DONT join it and shut it down. It will complain on exit. If I join the server, the error wont happen for a few days and then out of the blue it will just die.

It doesn't matter if there is 5 people on the server or 64.

We normally do daily restarts but it still has the issue. I have also tested with no restarts and the server will work fine until the crash.

It seems only when I use Shop Skins or Shop Equipments with Shop Core Fork. Both plugins produce the same result.

Now I know what you're thinking. "You have too many models" well no I don't. Here is an output of my tables. This is with a heavy ZE map loaded.

0. downloadables (1510/8192 strings)
1. modelprecache (868/4096 strings)
2. genericprecache (18/512 strings)
3. soundprecache (12900/16384 strings)
4. decalprecache (113/512 strings)
5. instancebaseline (28/1024 strings)
6. lightstyles (64/64 strings)
7. userinfo (255/256 strings)
8. dynamicmodel (0/4096 strings)
9. server_query_info (1/4 strings)
10. ExtraParticleFilesTable (13/1024 strings)
11. ParticleEffectNames (601/1024 strings)
12. EffectDispatch (16/1024 strings)
13. VguiScreen (2/256 strings)
14. Materials (3/1024 strings)
15. InfoPanel (1/128 strings)
16. Scenes (10686/16384 strings)
17. Movies (0/16 strings)
18. GameRulesCreation (1/1 strings)

Here is a list of things I have tried:
Disabled all plugins except ZR, Shop Core, Skins, Equipment
Tried different versions of shop core, skins, equipment
Disabled all extensions
Tried different version of SM and MM
Tried a different fork of ZR
Setup download tables correctly (previously I was using easydownloader and just set the folders to the download table, I let the plugins themselves handle the precaching)
Tried different models (even with 1 model on the server it produces the same result, if I have NO models, it will complain about the default CSGO models)
Combed the config files
Rebuilt config files
Made sure its forcing precaching (even though this should be client side)
Tried both Windows and Linux servers
Remove unload cache after every map
Tried a different CSGO install while retaining my configs
Audit all plugins and remove anything that is using excess handles

Here is an accelerator log: https://crash.limetech.org/glkszyb5n6h4

I really am stumped here so any help would be appreciated. I'm hoping there is a cvar or something I'm missing for loaded extra assets or something.






edit: I found the fix for it. It was a cvar.






.

backwards 04-21-2021 17:35

Re: Host_Error: CVEngineServer::PrecacheModel: '' overflow, too many models
 
1 Attachment(s)
This is the only place in the source code where the error message shows up:

https://github.com/perilouswithadoll..._impl.cpp#L437

This error message will display when the `modelprecache` string table has no more room for the new entry. Since you said you clear the model cache on map change it seems like it would be an error in a plugin that gets stuck in some kind of loop and calls the precache function on a lot of unique model path strings. The main thing you are going to want to do to figure out which plugin (or if it's something else like a map) is to identify what these string entries are when they've been added.

The best way to do this is to hook this function:
PHP Code:

virtual int PrecacheModel( const char *sbool preload /*= false*/ 

and log the first argument to a text file. The text file would increment + 1 number each time the plugin is reloaded. This way when the server crashes you can always find the latest entries that lead to the crash and look for anomalies.

*Edit*:

I adapted a plugin Franc1sco made to do exactly that. You will need the dhooks with detour support extension:
https://forums.alliedmods.net/showpo...&postcount=589

Logs are stored in your sourcemod\logs\ folder under the `precached_%d.log`.


All times are GMT -4. The time now is 09:53.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.