Jump to content

Potential ConVar leak

Not a Bug 2.9.8

zyy
zyy

Posted

Hello,

I use this plugin and it has been great! I did notice my server was crashing add odd times with this error:

utlsymbol.h: Symbol table grew beyond unsigned short

I found that in this plugin's OnServerInitialized, it registers 4 commands sourced directly from config values with no deduplication guard and no cleanup in Unload. I'd recommend maybe adding a command gaurd like:
 

private bool _commandsRegistered = false;

private void OnServerInitialized()
{
    ItemManager.Initialize();
    Updating = ServerMgr.Instance.StartCoroutine(CheckForDiscrepanciesWithGameItems());
    permission.RegisterPermission(Admin, this);

    if (!_commandsRegistered)
    {
        cmd.AddChatCommand(_config.modifycommand, this, CmdModify);
        cmd.AddChatCommand(_config.resetcommand, this, nameof(CmdReset));
        cmd.AddConsoleCommand(_config.resetcommand, this, nameof(ConsoleSmReset));
        cmd.AddChatCommand(_config.colorcommand, this, CmdColor);
        _commandsRegistered = true;
    }
  
  //rest unchanged

Maybe something to consider.

Khan

Posted

First, Oxide already handles all command and permission registrations for plugins internally. Adding a manual guard like the one suggested would not resolve the error you mentioned.

Second, there are no server logs provided in your report. Without the actual crash log or stack trace from the server, there’s no way to determine what is occurring on your end.

Third, command duplication would not cause a server crash. Even if a command were registered more than once, Oxide handles that safely and it would not produce the error you referenced.

If you're encountering a crash, please provide the full server logs around the time of the crash so the issue can actually be investigated.

zyy

Posted

Here were the logs before the crash:
 

src/public/tier1/utlsymbol.h (457) : Symbol table grew beyond unsigned short.  Time to upgrade UtlSymId_t for the symbol type or look for unnecessary spam in the tables.
src/public/tier1/utlsymbol.h (457) : Symbol table grew beyond unsigned short.  Time to upgrade UtlSymId_t for the symbol type or look for unnecessary spam in the tables.
src/public/tier1/utlsymbol.h (457) : Fatal assert; application exiting
Khan

Posted

Oxide already prevents duplicate command registrations internally. Commands are stored in a dictionary, and attempting to register the same command again simply results in a warning rather than creating another entry. Because of this, duplicate command registration cannot cause the error you referenced.

The error Symbol table grew beyond unsigned short indicates that tens of thousands of unique strings are being inserted into Rust’s internal symbol table. This typically occurs when something repeatedly generates dynamic strings (for example entity names, or other identifiers) until the 16-bit symbol limit is exceeded.

Stack Modifier does not generate dynamic commands, permissions, or entity names, and therefore cannot produce this error. In other words, Stack Modifier does not and cannot cause the issue you are experiencing. I would recommend checking other plugins or reviewing your server logs to identify what is generating excessive unique symbols.

  • Like 1
Khan

Posted

Changed Status from Pending to Not a Bug

zyy

Posted

30 minutes ago, Khan said:

Oxide already prevents duplicate command registrations internally. Commands are stored in a dictionary, and attempting to register the same command again simply results in a warning rather than creating another entry. Because of this, duplicate command registration cannot cause the error you referenced.

The error Symbol table grew beyond unsigned short indicates that tens of thousands of unique strings are being inserted into Rust’s internal symbol table. This typically occurs when something repeatedly generates dynamic strings (for example entity names, or other identifiers) until the 16-bit symbol limit is exceeded.

Stack Modifier does not generate dynamic commands, permissions, or entity names, and therefore cannot produce this error. In other words, Stack Modifier does not and cannot cause the issue you are experiencing. I would recommend checking other plugins or reviewing your server logs to identify what is generating excessive unique symbols.

Thank you.

2.3m

Downloads

Total number of downloads.

10.6k

Customers

Total customers served.

152.7k

Files Sold

Total number of files sold.

3.3m

Payments Processed

Total payments processed.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.