stop rpc listeners in node.OnStop()

This commit is contained in:
Ethan Buchman
2017-03-03 19:28:17 -05:00
parent b13924701e
commit 8192bb0aaf
2 changed files with 12 additions and 3 deletions

View File

@ -44,6 +44,7 @@ type Node struct {
genesisDoc *types.GenesisDoc genesisDoc *types.GenesisDoc
privKey crypto.PrivKeyEd25519 privKey crypto.PrivKeyEd25519
proxyApp proxy.AppConns proxyApp proxy.AppConns
rpcListeners []net.Listener
} }
func NewNodeDefault(config cfg.Config) *Node { func NewNodeDefault(config cfg.Config) *Node {
@ -208,10 +209,11 @@ func (n *Node) OnStart() error {
// Run the RPC server // Run the RPC server
if n.config.GetString("rpc_laddr") != "" { if n.config.GetString("rpc_laddr") != "" {
_, err := n.startRPC() listeners, err := n.startRPC()
if err != nil { if err != nil {
return err return err
} }
n.rpcListeners = listeners
} }
return nil return nil
@ -230,6 +232,13 @@ func (n *Node) OnStop() {
log.Notice("Stopping Node") log.Notice("Stopping Node")
// TODO: gracefully disconnect from peers. // TODO: gracefully disconnect from peers.
n.sw.Stop() n.sw.Stop()
for _, l := range n.rpcListeners {
log.Info("Closing rpc listener", "listener", l)
if err := l.Close(); err != nil {
log.Error("Error closing listener", "listener", l, "error", err)
}
}
} }
// Add the event switch to reactors, mempool, etc. // Add the event switch to reactors, mempool, etc.

View File

@ -45,8 +45,8 @@ function kill_procs(){
wait "$PID_TENDERMINT" wait "$PID_TENDERMINT"
# wait for the ports to be released # wait for the ports to be released
wait_for_port 46656 #wait_for_port 46656
wait_for_port 46657 #wait_for_port 46657
} }
# wait for port to be available # wait for port to be available