diff options
author | Stelios Fragkakis <52996999+stelfrag@users.noreply.github.com> | 2023-09-18 15:46:39 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-18 15:46:39 +0300 |
commit | 0b4b428cba579a282df6737e7d62218b0d292b41 (patch) | |
tree | 1d7ab390643d09544c33a72055c67cb342494b38 | |
parent | 954b3170fc9855ce6d03db28f585ac56dcdb65d5 (diff) |
Patch release 1.42.4 (#15998)
Re-store rrdvars on late dimensions (#15984)
(cherry picked from commit 2d999d9ef7a43b02eb9f65228ba106bd1e07ab98)
Co-authored-by: Emmanuel Vasilakis <mrzammler@mm.st>
-rw-r--r-- | database/rrd.h | 2 | ||||
-rw-r--r-- | database/rrdcalc.c | 1 | ||||
-rw-r--r-- | health/health.c | 2 |
3 files changed, 4 insertions, 1 deletions
diff --git a/database/rrd.h b/database/rrd.h index d64f5904a5..11f3aa98ce 100644 --- a/database/rrd.h +++ b/database/rrd.h @@ -769,6 +769,8 @@ typedef enum __attribute__ ((__packed__)) rrdset_flags { RRDSET_FLAG_UPSTREAM_SEND_VARIABLES = (1 << 26), // a custom variable has been updated and needs to be exposed to parent RRDSET_FLAG_COLLECTION_FINISHED = (1 << 27), // when set, data collection is not available for this chart + + RRDSET_FLAG_HAS_RRDCALC_LINKED = (1 << 28), // this chart has at least one rrdcal linked } RRDSET_FLAGS; #define rrdset_flag_check(st, flag) (__atomic_load_n(&((st)->flags), __ATOMIC_SEQ_CST) & (flag)) diff --git a/database/rrdcalc.c b/database/rrdcalc.c index 8e41df8d65..398ddb32b3 100644 --- a/database/rrdcalc.c +++ b/database/rrdcalc.c @@ -316,6 +316,7 @@ static void rrdcalc_link_to_rrdset(RRDSET *st, RRDCALC *rc) { rc->ae = ae; health_alarm_log_add_entry(host, ae); + rrdset_flag_set(st, RRDSET_FLAG_HAS_RRDCALC_LINKED); } static void rrdcalc_unlink_from_rrdset(RRDCALC *rc, bool having_ll_wrlock) { diff --git a/health/health.c b/health/health.c index d94c33161d..27ae673d87 100644 --- a/health/health.c +++ b/health/health.c @@ -1004,7 +1004,7 @@ static void health_execute_delayed_initializations(RRDHOST *host) { } foreach_rrdcalctemplate_done(rt); - if (health_variable_check(health_rrdvars, st, rd)) + if (health_variable_check(health_rrdvars, st, rd) || rrdset_flag_check(st, RRDSET_FLAG_HAS_RRDCALC_LINKED)) rrdvar_store_for_chart(host, st); } rrddim_foreach_done(rd); |