diff options
author | David Bradford <david.bradford@mongodb.com> | 2019-04-18 11:11:32 -0400 |
---|---|---|
committer | David Bradford <david.bradford@mongodb.com> | 2019-04-18 11:19:15 -0400 |
commit | b5b7a3e43ca68075624c15753afc9a60741f2628 (patch) | |
tree | 6002291608bc5e0017eeacf40cd7133e559e6e92 /buildscripts | |
parent | e845184db705d9fa23c8e290afc27a7a4f19d8e2 (diff) | |
download | mongo-b5b7a3e43ca68075624c15753afc9a60741f2628.tar.gz |
SERVER-40704: Better task timeouts when using minimum for split tasks
(cherry picked from commit 233387efb49dc9403aa6c543191a19fc19c2c3b0)
Diffstat (limited to 'buildscripts')
-rwxr-xr-x | buildscripts/evergreen_generate_resmoke_tasks.py | 4 | ||||
-rw-r--r-- | buildscripts/tests/test_evergreen_generate_resmoke_tasks.py | 6 |
2 files changed, 6 insertions, 4 deletions
diff --git a/buildscripts/evergreen_generate_resmoke_tasks.py b/buildscripts/evergreen_generate_resmoke_tasks.py index 61d3b18feb2..cf9a64c37ab 100755 --- a/buildscripts/evergreen_generate_resmoke_tasks.py +++ b/buildscripts/evergreen_generate_resmoke_tasks.py @@ -267,9 +267,9 @@ def calculate_timeout(avg_runtime, scaling_factor): def round_to_minute(runtime): """Round the given seconds up to the nearest minute.""" distance_to_min = 60 - (runtime % 60) - return runtime + distance_to_min + return int(math.ceil(runtime + distance_to_min)) - return max(MIN_TIMEOUT_SECONDS, round_to_minute(int(math.ceil(avg_runtime))) * scaling_factor) + return max(MIN_TIMEOUT_SECONDS, round_to_minute(avg_runtime)) * scaling_factor class EvergreenConfigGenerator(object): diff --git a/buildscripts/tests/test_evergreen_generate_resmoke_tasks.py b/buildscripts/tests/test_evergreen_generate_resmoke_tasks.py index 4dc4f5947e8..7dc8a651e32 100644 --- a/buildscripts/tests/test_evergreen_generate_resmoke_tasks.py +++ b/buildscripts/tests/test_evergreen_generate_resmoke_tasks.py @@ -308,7 +308,7 @@ class PrepareDirectoryForSuite(unittest.TestCase): class CalculateTimeoutTest(unittest.TestCase): def test_min_timeout(self): - self.assertEqual(300, grt.calculate_timeout(15, 1)) + self.assertEqual(grt.MIN_TIMEOUT_SECONDS, grt.calculate_timeout(15, 1)) def test_over_timeout_by_one_minute(self): self.assertEqual(360, grt.calculate_timeout(301, 1)) @@ -317,7 +317,9 @@ class CalculateTimeoutTest(unittest.TestCase): self.assertEqual(360, grt.calculate_timeout(300.14, 1)) def test_scaling_factor(self): - self.assertEqual(600, grt.calculate_timeout(30, 10)) + scaling_factor = 10 + self.assertEqual(grt.MIN_TIMEOUT_SECONDS * scaling_factor, + grt.calculate_timeout(30, scaling_factor)) class EvergreenConfigGeneratorTest(unittest.TestCase): |