Browse Source

fix typo not deleting collected flag; force removing collected flag on child disconnect (#13672)

Costa Tsaousis 2 years ago
parent
commit
6a82d7bd25
1 changed files with 6 additions and 1 deletions
  1. 6 1
      database/rrdcontext.c

+ 6 - 1
database/rrdcontext.c

@@ -182,7 +182,7 @@ rrd_flag_add_remove_atomic(RRD_FLAGS *flags, RRD_FLAGS check, RRD_FLAGS conditio
                                                                                                                 \
                                /* always remove these flags */                                                  \
                                , RRD_FLAG_ARCHIVED                                                              \
-                               | RRD_FLAG_DELETED                                                               \
+                               | RRD_FLAG_COLLECTED                                                             \
         )
 
 #define rrd_flag_is_collected(obj) rrd_flag_check(obj, RRD_FLAG_COLLECTED)
@@ -2448,6 +2448,11 @@ static void rrdmetric_process_updates(RRDMETRIC *rm, bool force, RRD_FLAGS reaso
     if(worker_jobs)
         worker_is_busy(WORKER_JOB_PP_METRIC);
 
+    if(reason == RRD_FLAG_UPDATE_REASON_DISCONNECTED_CHILD) {
+        rrd_flag_set_archived(rm);
+        rrd_flag_set(rm, RRD_FLAG_UPDATE_REASON_DISCONNECTED_CHILD);
+    }
+
     rrdmetric_update_retention(rm);
 
     rrd_flag_unset_updated(rm);