fix(cosmovisor): premature upgrade on restart (#22528)
This commit is contained in:
parent
005ecad6c9
commit
fbd725dce7
@ -36,19 +36,22 @@ Ref: https://keepachangelog.com/en/1.0.0/
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## v1.7.0 - 2024-11-18
|
||||
|
||||
### Features
|
||||
|
||||
* [#21790](https://github.com/cosmos/cosmos-sdk/pull/21790) Add `add-batch-upgrade` command.
|
||||
* [#21972](https://github.com/cosmos/cosmos-sdk/pull/21972) Add `prepare-upgrade` command
|
||||
* [#21932](https://github.com/cosmos/cosmos-sdk/pull/21932) Add `cosmovisor show-upgrade-info` command to display the upgrade-info.json into stdout.
|
||||
|
||||
### Improvements
|
||||
|
||||
* [#21891](https://github.com/cosmos/cosmos-sdk/pull/21891) create `current` symlink as relative
|
||||
* [#21462](https://github.com/cosmos/cosmos-sdk/pull/21462) Pass `stdin` to binary.
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
### Features
|
||||
|
||||
* [#21932](https://github.com/cosmos/cosmos-sdk/pull/21932) Add `cosmovisor show-upgrade-info` command to display the upgrade-info.json into stdout.
|
||||
* [#22528](https://github.com/cosmos/cosmos-sdk/pull/22528) Fix premature upgrades on restarting cosmovisor.
|
||||
|
||||
## v1.6.0 - 2024-08-12
|
||||
|
||||
|
||||
@ -15,6 +15,8 @@ import (
|
||||
upgradetypes "cosmossdk.io/x/upgrade/types"
|
||||
)
|
||||
|
||||
var errUntestAble = errors.New("untestable")
|
||||
|
||||
type fileWatcher struct {
|
||||
daemonHome string
|
||||
filename string // full path to a watched file
|
||||
@ -149,8 +151,8 @@ func (fw *fileWatcher) CheckUpdate(currentUpgrade upgradetypes.Plan) bool {
|
||||
}
|
||||
|
||||
// file exist but too early in height
|
||||
currentHeight, _ := fw.checkHeight()
|
||||
if currentHeight != 0 && currentHeight < info.Height {
|
||||
currentHeight, err := fw.checkHeight()
|
||||
if (err != nil || currentHeight < info.Height) && !errors.Is(err, errUntestAble) { // ignore this check for tests
|
||||
return false
|
||||
}
|
||||
|
||||
@ -182,7 +184,7 @@ func (fw *fileWatcher) CheckUpdate(currentUpgrade upgradetypes.Plan) bool {
|
||||
// checkHeight checks if the current block height
|
||||
func (fw *fileWatcher) checkHeight() (int64, error) {
|
||||
if testing.Testing() { // we cannot test the command in the test environment
|
||||
return 0, nil
|
||||
return 0, errUntestAble
|
||||
}
|
||||
|
||||
result, err := exec.Command(fw.currentBin, "status", "--home", fw.daemonHome).CombinedOutput() //nolint:gosec // we want to execute the status command
|
||||
|
||||
Loading…
Reference in New Issue
Block a user