fix rrdcalc_unlink_from_rrdset() (#19956)
Costa Tsaousis committed
Mar 24, 2025 at 20:57 UTC
e73ccf9a2c22b130305fb8d3289390725e0608c5
1 file changed
+4
-2
src/health/rrdcalc.c
+4
-2
@@ -249,13 +249,13 @@ static void rrdcalc_link_to_rrdset(RRDCALC *rc) {
249
250
static void rrdcalc_unlink_from_rrdset(RRDCALC *rc, bool having_ll_wrlock) {
251
RRDSET *st = rc->rrdset;
252
+ if(!st) return;
253
254
if (!exit_initiated_get()) {
254
- RRDHOST *host = st->rrdhost;
255
-
255
time_t now = now_realtime_sec();
256
257
if (likely(rc->status != RRDCALC_STATUS_REMOVED)) {
258
+ RRDHOST *host = st->rrdhost;
259
ALARM_ENTRY *ae = health_create_alarm_entry(
260
host,
261
rc,
@@ -279,6 +279,8 @@ static void rrdcalc_unlink_from_rrdset(RRDCALC *rc, bool having_ll_wrlock) {
279
if(rc->prev)
280
DOUBLE_LINKED_LIST_REMOVE_ITEM_UNSAFE(st->alerts.base, rc, prev, next);
281
282
+ rc->rrdset = NULL;
283
+
284
if(!having_ll_wrlock)
285
rw_spinlock_write_unlock(&st->alerts.spinlock);
286
}