Workaround for bad entSensorPrecision values #11757
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We are experiencing frequent crashes of librenms due to a router bug in some Cat9k switches that are reporting a garbage high value for entSensorPrecision. Example:
This causes librenms to padd the sensor value with 1615384784 zeroes which obviously fails to be written into the database and prevents the discovery of this interface. Librenms then logs this failure and fills up the disk space in /opt causing the application to crash. See the below log message and imagine the '0's keep going until the log file is 85GB long.
This is obviously a router bug that is being reported to Cisco however I think librenms should have some prevention for this instead of simply accepting the precision value and padding it to whatever it receives. I arbitrarily selected 100k as a reasonable upper limit for how many decimal places to pad since I can't imagine any sensor with that level of precision in a realistic scenario. I don't exactly like this solution and would be open to alternate suggestions.
DO NOT DELETE THE UNDERLYING TEXT
Please note
Testers
If you would like to test this pull request then please run:
./scripts/github-apply <pr_id>
, i.e./scripts/github-apply 5926
After you are done testing, you can remove the changes with
./scripts/github-remove
. If there are schema changes, you can ask on discord how to revert.