Acquire datafile for deletion before calculating retention (#19812)
Make sure datafile is acquired before update_metrics_first_time_s
Stelios Fragkakis committed
Mar 11, 2025 at 00:29 UTC
94ebd49f03fbd6716fba3b72ee7fd149ec6c51c9
1 file changed
+3
-3
src/database/engine/rrdengine.c
+3
-3
@@ -1218,9 +1218,6 @@ void datafile_delete(struct rrdengine_instance *ctx, struct rrdengine_datafile *
1218
1219
bool datafile_got_for_deletion = datafile_acquire_for_deletion(datafile, false);
1220
1221
- if (update_retention)
1222
- update_metrics_first_time_s(ctx, datafile, datafile->next, worker);
1223
-
1221
while (!datafile_got_for_deletion) {
1222
if(worker)
1223
worker_is_busy(UV_EVENT_DBENGINE_DATAFILE_DELETE_WAIT);
@@ -1239,6 +1236,9 @@ void datafile_delete(struct rrdengine_instance *ctx, struct rrdengine_datafile *
1236
}
1237
}
1238
1239
+ if (update_retention)
1240
+ update_metrics_first_time_s(ctx, datafile, datafile->next, worker);
1241
+
1242
__atomic_add_fetch(&rrdeng_cache_efficiency_stats.datafile_deletion_started, 1, __ATOMIC_RELAXED);
1243
netdata_log_info("DBENGINE: deleting data file '%s/"
1244
DATAFILE_PREFIX RRDENG_FILE_NUMBER_PRINT_TMPL DATAFILE_EXTENSION