feat: add Close method for resource cleanup in graceful shutdown (#16193)
Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
This commit is contained in:
parent
46119d1384
commit
09ca393a19
@ -116,6 +116,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
|
||||
* (x/staking) [#16068](https://github.com/cosmos/cosmos-sdk/pull/16068) Update simulation to allow non-EOA accounts to stake
|
||||
* (store) [#16067](https://github.com/cosmos/cosmos-sdk/pull/16067) Add local snapshots management commands.
|
||||
* (server) [#16142](https://github.com/cosmos/cosmos-sdk/pull/16142) Remove JSON Indentation from the GRPC to REST gateway's responses. (Saving bandwidth)
|
||||
* (baseapp) [#16193](https://github.com/cosmos/cosmos-sdk/pull/16193) Add `Close` method to `BaseApp` for custom app to cleanup resource in graceful shutdown.
|
||||
|
||||
### State Machine Breaking
|
||||
|
||||
|
||||
@ -1031,3 +1031,8 @@ func NoOpProcessProposal() sdk.ProcessProposalHandler {
|
||||
return abci.ResponseProcessProposal{Status: abci.ResponseProcessProposal_ACCEPT}
|
||||
}
|
||||
}
|
||||
|
||||
// Close is called in start cmd to gracefully cleanup resources.
|
||||
func (app *BaseApp) Close() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package server
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"net"
|
||||
@ -260,7 +261,7 @@ func startStandAlone(svrCtx *Context, appCreator types.AppCreator) error {
|
||||
// so we can gracefully stop the ABCI server.
|
||||
<-ctx.Done()
|
||||
svrCtx.Logger.Info("stopping the ABCI server...")
|
||||
return svr.Stop()
|
||||
return errors.Join(svr.Stop(), app.Close())
|
||||
})
|
||||
|
||||
return g.Wait()
|
||||
@ -366,6 +367,7 @@ func startInProcess(svrCtx *Context, clientCtx client.Context, appCreator types.
|
||||
defer func() {
|
||||
if tmNode != nil && tmNode.IsRunning() {
|
||||
_ = tmNode.Stop()
|
||||
_ = app.Close()
|
||||
}
|
||||
|
||||
if traceWriterCleanup != nil {
|
||||
|
||||
@ -58,6 +58,9 @@ type (
|
||||
|
||||
// Return the snapshot manager
|
||||
SnapshotManager() *snapshots.Manager
|
||||
|
||||
// Close is called in start cmd to gracefully cleanup resources.
|
||||
Close() error
|
||||
}
|
||||
|
||||
// AppCreator is a function that allows us to lazily initialize an
|
||||
|
||||
Loading…
Reference in New Issue
Block a user