Storage_perc_warn returns to default value 60 after autodiscovery

Helllo,

After fix #17104 on storage_perc_warn at 25.2.0 if you change the value to a device, it returns to 60 after autodiscovery.

The problem still exists in 25.3.0

librenms@librenms:~$ ./validate.php

Component Version
LibreNMS 25.3.0 (2025-03-17T01:10:07+02:00)
DB Schema 2025_03_11_031114_drop_ospfv3ifinstid (321)
PHP 8.3.14
Python 3.8.10
Database MariaDB 10.3.39-MariaDB-0ubuntu0.20.04.2
RRDTool 1.7.2
SNMP 5.8
===========================================

[OK] Composer Version: 2.8.6
[OK] Dependencies up-to-date.
[OK] Database connection successful
[OK] Database connection successful
[OK] Database Schema is current
[OK] SQL Server meets minimum requirements
[OK] lower_case_table_names is enabled
[OK] MySQL engine is optimal
[OK] Database and column collations are correct
[OK] Database schema correct
[OK] MySQL and PHP time match
[OK] Active pollers found
[OK] Dispatcher Service is enabled
[OK] Locks are functional
[OK] Python wrapper cron entry is not present
[OK] Redis is unavailable
[OK] rrdtool version ok
[OK] Connected to rrdcached
librenms@librenms:~$

1 Like

Can you show your discoveyydebug output?

After further investigation problem exists only on huawei switches…

Here is the storage section of the discoverydebug

Load disco module storage

SNMP[‘/usr/bin/snmpbulkwalk’ ‘-M’ ‘/opt/librenms/mibs:/opt/librenms/mibs/huawei’ ‘-m’ ‘SNMPv2-TC:SNMPv2-MIB:IF-MIB:IP-MIB:TCP-MIB:UDP-MIB:NET-SNMP-VACM-MIB’ ‘-v2c’ ‘-c’ ‘COMMUNITY’ ‘-OQXUt’ ‘-Pu’ ‘-Ob’ ‘-t’ ‘2’ ‘udp:HOSTNAME:161’ ‘HUAWEI-FLASH-MAN-MIB::hwStorageTable’]

HUAWEI-FLASH-MAN-MIB::hwStorageType.1 = flash
HUAWEI-FLASH-MAN-MIB::hwStorageSpace.1 = 259764
HUAWEI-FLASH-MAN-MIB::hwStorageSpaceFree.1 = 60104
HUAWEI-FLASH-MAN-MIB::hwStorageName.1 = flash:
HUAWEI-FLASH-MAN-MIB::hwStorageDescr.1 =

Using flash from $pre_cache[1][HUAWEI-FLASH-MAN-MIB::hwStorageType] for HUAWEI-FLASH-MAN-MIB::hwStorageType

Using flash: from $pre_cache[1][HUAWEI-FLASH-MAN-MIB::hwStorageName] for HUAWEI-FLASH-MAN-MIB::hwStorageName
Using 259764 from $pre_cache[1][HUAWEI-FLASH-MAN-MIB::hwStorageSpace] for HUAWEI-FLASH-MAN-MIB::hwStorageSpace

Using 60104 from $pre_cache[1][HUAWEI-FLASH-MAN-MIB::hwStorageSpaceFree] for HUAWEI-FLASH-MAN-MIB::hwStorageSpaceFree

SQL[select * from storage where storage.device_id = ? and storage.device_id is not null [272] 1.37ms]

SQL[update storage set storage_perc_warn = ? where storage_id = ? [60,892] 0.66ms]

Updated data:

array (
‘storage_perc_warn’ => 60,
)

flash: (flash): 77% 194.98 MiB / 253.68 MiB

Runtime for discovery module ‘storage’: 0.0430 seconds with 115544 bytes

SNMP: [1/0.04s] MySQL: [2/0.02s] RRD: [0/0.00s]

Unload disco module storage

Does this help?

Nope… still autodiscovery reverts the value to 60.
It’s the first time that i run script github-apply. do i need to run something more to commit the change? script ran successfully.

Component Version
LibreNMS 25.3.0 (2025-03-17T01:10:07+02:00)
DB Schema 2025_03_11_031114_drop_ospfv3ifinstid (321)
PHP 8.3.14
Python 3.8.10
Database MariaDB 10.3.39-MariaDB-0ubuntu0.20.04.2
RRDTool 1.7.2
SNMP 5.8
===========================================

[OK] Composer Version: 2.8.6
[OK] Dependencies up-to-date.
[OK] Database connection successful
[OK] Database connection successful
[OK] Database Schema is current
[OK] SQL Server meets minimum requirements
[OK] lower_case_table_names is enabled
[OK] MySQL engine is optimal
[OK] Database and column collations are correct
[OK] Database schema correct
[OK] MySQL and PHP time match
[OK] Active pollers found
[OK] Dispatcher Service is enabled
[OK] Locks are functional
[OK] Python wrapper cron entry is not present
[OK] Redis is unavailable
[OK] rrdtool version ok
[OK] Connected to rrdcached
[WARN] Your local git contains modified files, this could prevent automatic updates.
[FIX]:
You can fix this with ./scripts/github-remove
Modified Files:
LibreNMS/Modules/Storage.php
app/Providers/AppServiceProvider.php

Load disco module storage

SNMP[‘/usr/bin/snmpbulkwalk’ ‘-M’ ‘/opt/librenms/mibs:/opt/librenms/mibs/huawei’ ‘-m’ ‘SNMPv2-TC:SNMPv2-MIB:IF-MIB:IP-MIB:TCP-MIB:UDP-MIB:NET-SNMP-VACM-MIB’ ‘-v2c’ ‘-c’ ‘COMMUNITY’ ‘-OQXUt’ ‘-Pu’ ‘-Ob’ ‘-t’ ‘2’ ‘udp:HOSTNAME:161’ ‘HUAWEI-FLASH-MAN-MIB::hwStorageTable’]

HUAWEI-FLASH-MAN-MIB::hwStorageType.1 = flash
HUAWEI-FLASH-MAN-MIB::hwStorageSpace.1 = 259764
HUAWEI-FLASH-MAN-MIB::hwStorageSpaceFree.1 = 59064
HUAWEI-FLASH-MAN-MIB::hwStorageName.1 = flash:
HUAWEI-FLASH-MAN-MIB::hwStorageDescr.1 =

Using flash from $pre_cache[1][HUAWEI-FLASH-MAN-MIB::hwStorageType] for HUAWEI-FLASH-MAN-MIB::hwStorageType

Using flash: from $pre_cache[1][HUAWEI-FLASH-MAN-MIB::hwStorageName] for HUAWEI-FLASH-MAN-MIB::hwStorageName

Using 259764 from $pre_cache[1][HUAWEI-FLASH-MAN-MIB::hwStorageSpace] for HUAWEI-FLASH-MAN-MIB::hwStorageSpace

Using 59064 from $pre_cache[1][HUAWEI-FLASH-MAN-MIB::hwStorageSpaceFree] for HUAWEI-FLASH-MAN-MIB::hwStorageSpaceFree

SQL[select * from storage where storage.device_id = ? and storage.device_id is not null [272] 0.67ms]

SQL[update storage set storage_perc_warn = ? where storage_id = ? [60,892] 0.49ms]

Updated data:

array (
‘storage_perc_warn’ => 60,
)

flash: (flash): 77% 196 MiB / 253.68 MiB

Runtime for discovery module ‘storage’: 0.0470 seconds with 118464 bytes

SNMP: [1/0.04s] MySQL: [2/0.01s] RRD: [0/0.00s]

Unload disco module storage

1 Like

We are still seeing the issue after discovery as well. Keeps resetting TrueNas warn percentages.

@murrant, in our case with TrueNas devices, I’ve noticed it doesn’t reset all of the warning percentages. It only resets the percentage after the first dozen or so storage entries.

@chaigeo, are you seeing discovery reset all the storage values or just some?
I’m seeing it reset on TrueNas devices at storage entry 26 on one device and entry 23 on another.

Yes still resets the values but only on huawei switches (i have multiple with diffenet firmware some with latest). I have only one value for a simple switch (flash:) and two values for stac switches. (flash: and slot1#flash:). in fact it is the same storage but librenms writes two values because of different snmp oid. problem exists in both types. problem exists to all and all values.