From b32e9c2a67b56133653f8daff2006bacd91963ba Mon Sep 17 00:00:00 2001 From: sirkrypt0 <22522058+sirkrypt0@users.noreply.github.com> Date: Wed, 2 Jun 2021 12:13:31 +0200 Subject: [PATCH] Remove off by one with needed runners Earlier we used a channel to store the runners. To make the environment refresh block, we scheduled an additional runner as the buffered channel was then filled up. As we don't use the channel anymore, we don't need the additional runner anymore. Furthermore this leads to weird race conditions in tests when comparing the runner count to the desired one. --- runner/manager.go | 2 +- runner/manager_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/manager.go b/runner/manager.go index 497a8fd..ca1b508 100644 --- a/runner/manager.go +++ b/runner/manager.go @@ -138,7 +138,7 @@ func (m *NomadRunnerManager) refreshEnvironment(id EnvironmentId) { log.WithError(err).Printf("Failed get allocation count") break } - additionallyNeededRunners := job.desiredIdleRunnersCount - uint(job.idleRunners.Length()) + 1 + additionallyNeededRunners := job.desiredIdleRunnersCount - uint(job.idleRunners.Length()) requiredRunnerCount := jobScale if additionallyNeededRunners > 0 { requiredRunnerCount += additionallyNeededRunners diff --git a/runner/manager_test.go b/runner/manager_test.go index 34147b8..69031ce 100644 --- a/runner/manager_test.go +++ b/runner/manager_test.go @@ -168,7 +168,7 @@ func (s *ManagerTestSuite) TestRefreshScalesJob() { // use one runner to necessitate rescaling _, _ = s.nomadRunnerManager.Claim(defaultEnvironmentId) s.waitForRunnerRefresh() - s.apiMock.AssertCalled(s.T(), "SetJobScale", tests.DefaultJobId, defaultDesiredRunnersCount+1, "Runner Requested") + s.apiMock.AssertCalled(s.T(), "SetJobScale", tests.DefaultJobId, defaultDesiredRunnersCount, "Runner Requested") } func (s *ManagerTestSuite) TestRefreshAddsRunnerToPool() {