@cryptotaxi247 / netdata-1 / commits / dea9d1feb

Protect metric release in dimension delete callback (#17020)

Protect metric release

Stelios Fragkakis committed Feb 16, 2024 at 23:28 UTC dea9d1feb2a5fcc7967504895bbe6abbf1b0f524
1 file changed +7 -5
src/database/rrddim.c
+7 -5
@@ -206,11 +206,13 @@ static void rrddim_delete_callback(const DICTIONARY_ITEM *item __maybe_unused, v
206 }
207
208 for(size_t tier = 0; tier < storage_tiers ;tier++) {
209 - if(!rd->tiers[tier].smh) continue;
210 -
211 - STORAGE_ENGINE* eng = host->db[tier].eng;
212 - eng->api.metric_release(rd->tiers[tier].smh);
213 - rd->tiers[tier].smh = NULL;
209 + spinlock_lock(&rd->tiers[tier].spinlock);
210 + if(rd->tiers[tier].smh) {
211 + STORAGE_ENGINE *eng = host->db[tier].eng;
212 + eng->api.metric_release(rd->tiers[tier].smh);
213 + rd->tiers[tier].smh = NULL;
214 + }
215 + spinlock_unlock(&rd->tiers[tier].spinlock);
216 }
217
218 if(rd->db.data) {