diff options
author | Emmanuel Vasilakis <mrzammler@mm.st> | 2022-05-03 10:37:14 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-03 10:37:14 +0300 |
commit | 0996abc7c0ef80bf9d128cfe52b69082831c61e4 (patch) | |
tree | a48f1a15cb339429ea01fe4a81e6129b127bcda5 /database/rrdhost.c | |
parent | 22863c42b9ccf59d340f39c7719b6ef19b455a16 (diff) |
Check for chart obsoletion on children re-connections (#12707)
* check for chart obsoletion on children connections
* use rrdset_is_obsolete
Diffstat (limited to 'database/rrdhost.c')
-rw-r--r-- | database/rrdhost.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/database/rrdhost.c b/database/rrdhost.c index 649736ca4f..b0874e3d3d 100644 --- a/database/rrdhost.c +++ b/database/rrdhost.c @@ -1528,6 +1528,16 @@ restart_after_removal: } } +void rrdset_check_obsoletion(RRDHOST *host) +{ + RRDSET *st; + rrdset_foreach_write(st, host) { + if (rrdset_last_entry_t(st) < host->trigger_chart_obsoletion_check) { + rrdset_is_obsolete(st); + } + } +} + void rrd_cleanup_obsolete_charts() { rrd_rdlock(); @@ -1547,6 +1557,15 @@ void rrd_cleanup_obsolete_charts() #endif rrdhost_unlock(host); } + + if (host != localhost && + host->trigger_chart_obsoletion_check && + host->trigger_chart_obsoletion_check + 120 < now_realtime_sec()) { + rrdhost_wrlock(host); + rrdset_check_obsoletion(host); + rrdhost_unlock(host); + host->trigger_chart_obsoletion_check = 0; + } } rrd_unlock(); |