mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 02:42:27 +00:00
node: fix goroutine leak by closing accounts manager on Node.Stop
This commit is contained in:
parent
15b9b39e6c
commit
3b73e3dca3
1 changed files with 15 additions and 0 deletions
15
node/node.go
15
node/node.go
|
|
@ -147,6 +147,14 @@ func (n *Node) Start() error {
|
|||
return err
|
||||
}
|
||||
|
||||
if n.accman == nil {
|
||||
var err error
|
||||
n.accman, n.ephemeralKeystore, err = makeAccountManager(n.config)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
// Initialize the p2p server. This creates the node key and
|
||||
// discovery databases.
|
||||
n.serverConfig = n.config.P2P
|
||||
|
|
@ -435,6 +443,13 @@ func (n *Node) Stop() error {
|
|||
// unblock n.Wait
|
||||
close(n.stop)
|
||||
|
||||
if n.accman != nil {
|
||||
if err := n.accman.Close(); err != nil {
|
||||
return err
|
||||
}
|
||||
n.accman = nil
|
||||
}
|
||||
|
||||
// Remove the keystore if it was created ephemerally.
|
||||
var keystoreErr error
|
||||
if n.ephemeralKeystore != "" {
|
||||
|
|
|
|||
Loading…
Reference in a new issue