From 56fe6b65d10346f6946545c42c81cc9b73e278d3 Mon Sep 17 00:00:00 2001 From: James Phillips Date: Wed, 3 May 2017 20:15:52 -0700 Subject: [PATCH] Runs revoke leadership actions only if we've established leadership. --- consul/leader.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/consul/leader.go b/consul/leader.go index 263096d0ee..f44b73e031 100644 --- a/consul/leader.go +++ b/consul/leader.go @@ -65,9 +65,6 @@ func (s *Server) monitorLeadership() { // leaderLoop runs as long as we are the leader to run various // maintenance activities func (s *Server) leaderLoop(stopCh chan struct{}) { - // Ensure we revoke leadership on stepdown - defer s.revokeLeadership() - // Fire a user event indicating a new leader payload := []byte(s.config.NodeName) if err := s.serfLAN.UserEvent(newLeaderEvent, payload, false); err != nil { @@ -101,6 +98,7 @@ RECONCILE: goto WAIT } establishedLeader = true + defer s.revokeLeadership() } // Reconcile any missing data