fix: snapshot commands panic if snapshot don't exists (#16138)

This commit is contained in:
yihuang 2023-05-13 16:06:05 +08:00 committed by GitHub
parent 14af232606
commit 92247cb0e9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 0 deletions

View File

@ -223,6 +223,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
* (x/capability) [#15030](https://github.com/cosmos/cosmos-sdk/pull/15030) Prevent `x/capability` from consuming `GasMeter` gas during `InitMemStore`
* (types/coin) [#14739](https://github.com/cosmos/cosmos-sdk/pull/14739) Deprecate the method `Coin.IsEqual` in favour of `Coin.Equal`. The difference between the two methods is that the first one results in a panic when denoms are not equal. This panic lead to unexpected behavior
* (x/crypto) [#15258](https://github.com/cosmos/cosmos-sdk/pull/15258) Write keyhash file with permissions 0600 instead of 0555.
* (cli) [#16138](https://github.com/cosmos/cosmos-sdk/pull/16138) Fix snapshot commands panic if snapshot don't exists.
### Deprecated

View File

@ -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 don't exists")
}
bz, err := snapshot.Marshal()
if err != nil {
return err

View File

@ -425,6 +425,10 @@ func (m *Manager) RestoreLocalSnapshot(height uint64, format uint32) error {
return err
}
if snapshot == nil {
return fmt.Errorf("snapshot don't exists, height: %d, format: %d", height, format)
}
m.mtx.Lock()
defer m.mtx.Unlock()