Merge pull request #3830 from hashicorp/autopilot-health-loop

Move autopilot health loop into leader operations
pull/3831/head
Kyle Havlovitz 7 years ago committed by GitHub
commit 31f2829e15
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -64,9 +64,10 @@ func NewAutopilot(logger *log.Logger, delegate Delegate, interval, healthInterva
func (a *Autopilot) Start() {
a.shutdownCh = make(chan struct{})
a.waitGroup = sync.WaitGroup{}
a.waitGroup.Add(1)
a.waitGroup.Add(2)
go a.run()
go a.serverHealthLoop()
}
func (a *Autopilot) Stop() {
@ -299,15 +300,17 @@ func (a *Autopilot) handlePromotions(promotions []raft.Server) error {
return nil
}
// ServerHealthLoop monitors the health of the servers in the cluster
func (a *Autopilot) ServerHealthLoop(shutdownCh <-chan struct{}) {
// serverHealthLoop monitors the health of the servers in the cluster
func (a *Autopilot) serverHealthLoop() {
defer a.waitGroup.Done()
// Monitor server health until shutdown
ticker := time.NewTicker(a.healthInterval)
defer ticker.Stop()
for {
select {
case <-shutdownCh:
case <-a.shutdownCh:
return
case <-ticker.C:
if err := a.updateClusterHealth(); err != nil {

@ -418,9 +418,6 @@ func NewServerLogger(config *Config, logger *log.Logger, tokens *token.Store) (*
// Initialize Autopilot
s.initAutopilot(config)
// Start the server health checking.
go s.autopilot.ServerHealthLoop(s.shutdownCh)
return s, nil
}

Loading…
Cancel
Save