feat: CV Close databases opened by cosmos-sdk during BaseApp shutdown (#17667)
This commit is contained in:
parent
2085695078
commit
ba45b0f2b7
@ -53,6 +53,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
|
||||
* (all) [#16537](https://github.com/cosmos/cosmos-sdk/pull/16537) Properly propagated `fmt.Errorf` errors and using `errors.New` where appropriate.
|
||||
* (rpc) [#17470](https://github.com/cosmos/cosmos-sdk/pull/17470) Avoid open 0.0.0.0 to public by default and add `listen-ip-address` argument for `testnet init-files` cmd.
|
||||
* (types/module) [#17554](https://github.com/cosmos/cosmos-sdk/pull/17554) Introduce `HasABCIGenesis` which is implemented by a module only when a validatorset update needs to be returned
|
||||
* (baseapp) [#17667](https://github.com/cosmos/cosmos-sdk/pull/17667) Close databases opened by cosmos-sdk during BaseApp shutdown
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
|
||||
@ -1097,5 +1097,27 @@ func (app *BaseApp) ProcessProposalVerifyTx(txBz []byte) (sdk.Tx, error) {
|
||||
|
||||
// Close is called in start cmd to gracefully cleanup resources.
|
||||
func (app *BaseApp) Close() error {
|
||||
return nil
|
||||
var errs []error
|
||||
|
||||
// Close app.db (opened by cosmos-sdk/server/start.go call to openDB)
|
||||
if app.db != nil {
|
||||
app.logger.Info("Closing application.db")
|
||||
if err := app.db.Close(); err != nil {
|
||||
errs = append(errs, err)
|
||||
}
|
||||
}
|
||||
|
||||
// Close app.snapshotManager
|
||||
// - opened when app chains use cosmos-sdk/server/util.go/DefaultBaseappOptions (boilerplate)
|
||||
// - which calls cosmos-sdk/server/util.go/GetSnapshotStore
|
||||
// - which is passed to baseapp/options.go/SetSnapshot
|
||||
// - to set app.snapshotManager = snapshots.NewManager
|
||||
if app.snapshotManager != nil {
|
||||
app.logger.Info("Closing snapshots/metadata.db")
|
||||
if err := app.snapshotManager.Close(); err != nil {
|
||||
errs = append(errs, err)
|
||||
}
|
||||
}
|
||||
|
||||
return errors.Join(errs...)
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user