From de9957e07667889079cba0eba71fc1e1af052a03 Mon Sep 17 00:00:00 2001 From: Evgenii Stratonikov Date: Wed, 14 Dec 2022 10:02:41 +0300 Subject: [PATCH] [#2165] services/tree: Always synchronize all containers In case of split-brain we must synchronize everything. Signed-off-by: Evgenii Stratonikov --- pkg/services/tree/sync.go | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/pkg/services/tree/sync.go b/pkg/services/tree/sync.go index 7ea10d006..bff4db7ef 100644 --- a/pkg/services/tree/sync.go +++ b/pkg/services/tree/sync.go @@ -266,15 +266,8 @@ func (s *Service) syncLoop(ctx context.Context) { continue } - _, ok := s.cnrMap[cnr] - if ok { - // known container; already in sync. - delete(s.cnrMap, cnr) - newMap[cnr] = struct{}{} - } else { - // unknown container; need to sync. - cnrsToSync = append(cnrsToSync, cnr) - } + newMap[cnr] = struct{}{} + cnrsToSync = append(cnrsToSync, cnr) } // sync new containers @@ -287,14 +280,15 @@ func (s *Service) syncLoop(ctx context.Context) { continue } - // mark as synced - newMap[cnr] = struct{}{} - s.log.Debug("container trees have been synced", zap.Stringer("cid", cnr)) } // remove stored redundant trees for cnr := range s.cnrMap { + if _, ok := newMap[cnr]; ok { + continue + } + s.log.Debug("removing redundant trees...", zap.Stringer("cid", cnr)) err = s.DropTree(ctx, cnr, "")