From 7342b11abbf26d1e8e86cc9cd9a05649ed3628d7 Mon Sep 17 00:00:00 2001 From: Armon Dadgar Date: Sun, 23 Aug 2015 13:59:13 -0700 Subject: [PATCH] nomad: disable one worker when leader --- nomad/leader.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/nomad/leader.go b/nomad/leader.go index 55e0dd048..c1551800e 100644 --- a/nomad/leader.go +++ b/nomad/leader.go @@ -98,6 +98,12 @@ WAIT: // previously inflight transactions have been commited and that our // state is up-to-date. func (s *Server) establishLeadership(stopCh chan struct{}) error { + // If we have multiple workers, disable one to free processing + // for the plan queue and evaluation broker + if len(s.workers) > 1 { + s.workers[0].SetPause(true) + } + // Enable the plan queue, since we are now the leader s.planQueue.SetEnabled(true) @@ -243,6 +249,11 @@ func (s *Server) revokeLeadership() error { s.logger.Printf("[ERR] nomad: clearing heartbeat timers failed: %v", err) return err } + + // Unpause our worker if we paused previously + if len(s.workers) > 1 { + s.workers[0].SetPause(false) + } return nil }