From 1e78e509ac68077f9ad9f19e384bdbf52c75f136 Mon Sep 17 00:00:00 2001
From: "alex.sharov" <AskAlexSharov@gmail.com>
Date: Mon, 21 Mar 2022 09:10:52 +0700
Subject: [PATCH] save

---
 turbo/snapshotsync/block_snapshots.go | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/turbo/snapshotsync/block_snapshots.go b/turbo/snapshotsync/block_snapshots.go
index 2747fd556d..04e8d40c30 100644
--- a/turbo/snapshotsync/block_snapshots.go
+++ b/turbo/snapshotsync/block_snapshots.go
@@ -449,10 +449,10 @@ func (s *RoSnapshots) AsyncOpenAll(ctx context.Context) {
 				return
 			default:
 			}
-			if err := s.ReopenSegments(); err != nil && !errors.Is(err, os.ErrNotExist) {
+			if err := s.ReopenSegments(); err != nil && !errors.Is(err, os.ErrNotExist) && !errors.Is(err, ErrSnapshotMissed) {
 				log.Error("AsyncOpenAll", "err", err)
 			}
-			if err := s.ReopenIndices(); err != nil && !errors.Is(err, os.ErrNotExist) {
+			if err := s.ReopenIndices(); err != nil && !errors.Is(err, os.ErrNotExist) && !errors.Is(err, ErrSnapshotMissed) {
 				log.Error("AsyncOpenAll", "err", err)
 			}
 			time.Sleep(15 * time.Second)
@@ -709,6 +709,8 @@ func TmpFiles(dir string) (res []string, err error) {
 	return res, nil
 }
 
+var ErrSnapshotMissed = fmt.Errorf("snapshot missed")
+
 func noGaps(in []FileInfo) (out []FileInfo, err error) {
 	var prevTo uint64
 	for _, f := range in {
@@ -716,7 +718,7 @@ func noGaps(in []FileInfo) (out []FileInfo, err error) {
 			continue
 		}
 		if f.From != prevTo { // no gaps
-			return nil, fmt.Errorf("snapshot missed: from %d to %d", prevTo, f.From)
+			return nil, fmt.Errorf("%w: from %d to %d", ErrSnapshotMissed, prevTo, f.From)
 		}
 		prevTo = f.To
 		out = append(out, f)
-- 
GitLab