From ecbd3eb2a6c6ef09e4d19026f5e69efec568d7b4 Mon Sep 17 00:00:00 2001 From: Kyle Havlovitz Date: Fri, 10 Dec 2021 13:58:43 -0800 Subject: [PATCH] Exit before starting the vip check routine if possible --- agent/consul/leader_connect.go | 10 +++++++--- agent/consul/leader_test.go | 2 ++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/agent/consul/leader_connect.go b/agent/consul/leader_connect.go index c2209b5da1..2f796c6914 100644 --- a/agent/consul/leader_connect.go +++ b/agent/consul/leader_connect.go @@ -125,10 +125,14 @@ func (s *Server) pruneCARoots() error { func (s *Server) runVirtualIPVersionCheck(ctx context.Context) error { // Return early if the flag is already set. - _, err := s.setVirtualIPVersionFlag() + done, err := s.setVirtualIPVersionFlag() if err != nil { s.loggers.Named(logging.Connect).Warn("error enabling virtual IPs", "error", err) } + if done { + s.leaderRoutineManager.Stop(virtualIPCheckRoutineName) + return nil + } ticker := time.NewTicker(virtualIPVersionCheckInterval) defer ticker.Stop() @@ -138,12 +142,12 @@ func (s *Server) runVirtualIPVersionCheck(ctx context.Context) error { case <-ctx.Done(): return nil case <-ticker.C: - ok, err := s.setVirtualIPVersionFlag() + done, err := s.setVirtualIPVersionFlag() if err != nil { s.loggers.Named(logging.Connect).Warn("error enabling virtual IPs", "error", err) continue } - if ok { + if done { return nil } } diff --git a/agent/consul/leader_test.go b/agent/consul/leader_test.go index af008358fe..63b99b3a96 100644 --- a/agent/consul/leader_test.go +++ b/agent/consul/leader_test.go @@ -2126,7 +2126,9 @@ func TestLeader_EnableVirtualIPs(t *testing.T) { t.Skip("too slow for testing.Short") } + orig := virtualIPVersionCheckInterval virtualIPVersionCheckInterval = 50 * time.Millisecond + t.Cleanup(func() { virtualIPVersionCheckInterval = orig }) conf := func(c *Config) { c.Bootstrap = false