storage node: Drain internal error's channel #878
2 changed files with 14 additions and 1 deletions
|
@ -1325,5 +1325,4 @@ func (c *cfg) shutdown() {
|
|||
for i := range c.closers {
|
||||
c.closers[len(c.closers)-1-i].fn()
|
||||
}
|
||||
close(c.internalErr)
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ import (
|
|||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"sync"
|
||||
|
||||
"git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-node/config"
|
||||
"git.frostfs.info/TrueCloudLab/frostfs-node/internal/logs"
|
||||
|
@ -155,9 +156,22 @@ func wait(c *cfg) {
|
|||
|
||||
<-c.done // graceful shutdown
|
||||
|
||||
drain := &sync.WaitGroup{}
|
||||
drain.Add(1)
|
||||
go func() {
|
||||
defer drain.Done()
|
||||
for err := range c.internalErr {
|
||||
c.log.Warn(logs.FrostFSNodeInternalApplicationError,
|
||||
zap.String("message", err.Error()))
|
||||
}
|
||||
}()
|
||||
|
||||
c.log.Debug(logs.FrostFSNodeWaitingForAllProcessesToStop)
|
||||
|
||||
c.wg.Wait()
|
||||
|
||||
close(c.internalErr)
|
||||
drain.Wait()
|
||||
}
|
||||
|
||||
func (c *cfg) onShutdown(f func()) {
|
||||
|
|
Loading…
Reference in a new issue