Lnms maintenance:rrd-step all

We have distributed polling enabled, with a central rrdcached server. All nodes are running LibreNMS 26.2.0.

The rrdcached server passes validate.php with no errors. Previously it was complaining: Some RRD files have the incorrect step and after running lnms maintenance:rrd-step all as suggested a few times this seems to be resolved. But the remote pollers are all still seeing incorrect step values and re-running it doesn’t seem to resolve the issue. I have inspected the rrd/ directory on each node and confirmed there are no rrd files so the installation seems to be correctly using the central rrdcached

This is the rrdcached server validate.php output after having run the maintenance command enough times to resolve the issue:

librenms@nms:~$ /opt/librenms/validate.php
===========================================
Component | Version
--------- | -------
LibreNMS  | 26.2.0 (2026-02-16T05:13:17-07:00)
DB Schema | 2026_02_13_000000_change_stp_top_changes_to_unsigned_int (365)
PHP       | 8.3.6
Python    | 3.12.3
Database  | MariaDB 10.11.14-MariaDB-0ubuntu0.24.04.1
RRDTool   | 1.7.2
SNMP      | 5.9.4.pre2
===========================================

[OK]    Composer Version: 2.9.5
[OK]    Dependencies up-to-date.
[OK]    Database Connected
[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]    Distributed Polling setting is enabled globally
[OK]    Connected to rrdcached
[OK]    Active pollers found
[OK]    Dispatcher Service not detected
[OK]    Locks are functional
[OK]    Python poller wrapper is polling
[OK]    Redis is functional
[OK]    All 28067 RRD files have the correct step.
[OK]    rrdtool version ok
[OK]    Connected to rrdcached
librenms@nms:~$ 

This is validate.php on one of the distributed nodes that I’ve repeatedly run the maintenance command but not resolved:

librenms@lsv-libre:~$ /opt/librenms/validate.php
===========================================
Component | Version
--------- | -------
LibreNMS  | 26.2.0 (2026-02-16T05:13:17-07:00)
DB Schema | 2026_02_13_000000_change_stp_top_changes_to_unsigned_int (365)
PHP       | 8.3.6
Python    | 3.12.3
Database  | MariaDB 10.11.14-MariaDB-0ubuntu0.24.04.1
RRDTool   | 1.7.2
SNMP      | 5.9.4.pre2
===========================================

[OK]    Composer Version: 2.9.5
[OK]    Dependencies up-to-date.
[OK]    Database Connected
[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]    Distributed Polling setting is enabled globally
[OK]    Connected to rrdcached
[OK]    Active pollers found
[OK]    Dispatcher Service not detected
[OK]    Locks are functional
[OK]    Python poller wrapper is polling
[OK]    Redis is functional
[FAIL]  Some RRD files have the incorrect step. 18700/28093
        [FIX]: 
        lnms maintenance:rrd-step all
        RRD files with incorrect step:
         dal-speedtest/netstats-snmp.rrd: step is 0, should be 300
         dal-speedtest/ucd_ssRawInterrupts.rrd: step is 0, should be 300
         dal-speedtest/poller-perf-storage.rrd: step is 0, should be 300
         dal-speedtest/poller-perf.rrd: step is 0, should be 300
         dal-speedtest/ucd_ssCpuRawUser.rrd: step is 0, should be 300
         dal-speedtest/ucd_ssCpuRawNice.rrd: step is 0, should be 300
         dal-speedtest/poller-perf-core.rrd: step is 0, should be 300
         dal-speedtest/ucd_cpu.rrd: step is 0, should be 300
         dal-speedtest/netstats-tcp.rrd: step is 0, should be 300
         dal-speedtest/poller-perf-sensors.rrd: step is 0, should be 300
         dal-speedtest/ipSystemStats-ipv6.rrd: step is 0, should be 300
         dal-speedtest/ucd_ssCpuRawSystem.rrd: step is 0, should be 300
         dal-speedtest/netstats-ip.rrd: step is 0, should be 300
         dal-speedtest/poller-perf-mempools.rrd: step is 0, should be 300
         dal-speedtest/poller-perf-ntp.rrd: step is 0, should be 300
          and 18685 more...
[OK]    rrdtool version ok
[OK]    Connected to rrdcached

Try 1 validate.php reports:
[FAIL] Some RRD files have the incorrect step. 20346/28052

Try 1 maintenance command reports:
Converted: 3898 Failed: 0 Skipped: 24155

Try 2 validate.php reports:
[FAIL] Some RRD files have the incorrect step. 19382/28052

Try 2 maintenance command reports:
Converted: 3797 Failed: 0 Skipped: 24256

Try 3 validate.php reports:
[FAIL] Some RRD files have the incorrect step. 20873/28088

Try 3 maintenance command reports:
Converted: 3255 Failed: 1 Skipped: 24838
(Failed was for a device just added that hasn’t been polled yet)

Try 4 validate.php reports:
[FAIL] Some RRD files have the incorrect step. 18700/28093

Try 4 maintenance command reports:
Converted: 4003 Failed: 1 Skipped: 24090
(Failed is device just added that is currently offline and can’t be polled).

The other distributed pollers are behaving the same way. No matter how many times I run the maintenance command, I cannot resolve the incorrect step value report.

I would appreciate any advice about 1) how/why these step values are incorrect to start with and 2) how to resolve this so that validate.php doesn’t continue throwing errors.

This validation can still fail sometimes. You can probably ignore it.

If it really bothers you, dig into it and figure out why it is failing and send a fix upstream. Or delete the code in the validation and call it good enough :slight_smile:

i have same issue im using only dispatecher not distributed service but the notic thing is the cpu spikes to double it was 30% before now it’s 60% on my server nothing change just upgrading