From 55b3847f111b6287f12d9e379b2c3c71309f7e2a Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sat, 13 May 2023 09:20:03 +0000 Subject: [PATCH] fix: snapshot commands panic if snapshot don't exists (backport #16138) (#16139) Co-authored-by: yihuang Co-authored-by: marbar3778 Co-authored-by: Julien Robert --- client/snapshot/dump.go | 5 +++++ snapshots/manager.go | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/client/snapshot/dump.go b/client/snapshot/dump.go index 917dca071512..72dadbc57254 100644 --- a/client/snapshot/dump.go +++ b/client/snapshot/dump.go @@ -3,6 +3,7 @@ package snapshot import ( "archive/tar" "compress/gzip" + "errors" "fmt" "io" "os" @@ -48,6 +49,10 @@ func DumpArchiveCmd() *cobra.Command { return err } + if snapshot == nil { + return errors.New("snapshot doesn't exist") + } + bz, err := snapshot.Marshal() if err != nil { return err diff --git a/snapshots/manager.go b/snapshots/manager.go index d118ab41aea7..22e453346af4 100644 --- a/snapshots/manager.go +++ b/snapshots/manager.go @@ -424,6 +424,10 @@ func (m *Manager) RestoreLocalSnapshot(height uint64, format uint32) error { return err } + if snapshot == nil { + return fmt.Errorf("snapshot doesn't exist, height: %d, format: %d", height, format) + } + m.mtx.Lock() defer m.mtx.Unlock()