Commit 5039ae5
fix: job retry mechanism not triggering (#4961)
This pull request adds comprehensive tests for the retry mechanism in
the `scaleUp` functionality and **re**introduces the
`publishRetryMessage` call to the scale-up process. The tests ensure
that the retry logic works correctly under various scenarios, such as
when jobs are queued, when the maximum number of runners is reached, and
when queue checks are disabled.
**Testing and Retry Mechanism Enhancements:**
* Added a new test suite "Retry mechanism tests" in `scale-up.test.ts`
to cover scenarios where `publishRetryMessage` should be called,
including: when jobs are queued, when maximum runners are reached, with
correct message structure, and when job queue checks are disabled.
**Other code Updates:**
* Fixed logic to skip runner creation if no new runners are needed by
checking if `newRunners <= 0` instead of comparing counts, improving
clarity and correctness.
<details><summary>Example scenarios for the above bug</summary>
<p>
Scenario 1
- Admin sets RUNNERS_MAXIMUM_COUNT=20
- System scales up to 15 active runners
- Admin reduces RUNNERS_MAXIMUM_COUNT=10 (cost control, policy change)
- Before those 15 runners terminate, new jobs arrive
- Bug triggers: newRunners = Math.min(scaleUp, 10-15) = -5
- Code tries to call createRunners({numberOfRunners: -5}) and fails
Scenario 2
- RUNNERS_MAXIMUM_COUNT=5
- Someone manually launches 8 EC2 instances with runner tags
- New jobs arrive
- Bug triggers: newRunners = Math.min(2, 5-8) = -3
- Code tries to call createRunners({numberOfRunners: -3}) and fails
Scenario 3
- Admin sets RUNNERS_MAXIMUM_COUNT=20
- System scales up to 15 active runners
- Admin reduces RUNNERS_MAXIMUM_COUNT=10 (cost control, policy change)
- Before those 15 runners terminate, new jobs arrive
- Bug triggers: newRunners = Math.min(scaleUp, 10-15) = -5
- Code tries to call createRunners({numberOfRunners: -5}) and fails
</p>
</details>
We tested this in our staging environment and verified it's working.
Closes #4960
---------
Co-authored-by: Brend Smits <brend.smits@philips.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: npalm <11609620+npalm@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Brend-Smits <15904543+Brend-Smits@users.noreply.github.com>
Co-authored-by: Niek Palm <npalm@users.noreply.github.com>1 parent e80baa2 commit 5039ae5
File tree
2 files changed
+196
-6
lines changed- lambdas/functions/control-plane/src/scale-runners
2 files changed
+196
-6
lines changedLines changed: 172 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| 13 | + | |
13 | 14 | | |
14 | 15 | | |
15 | 16 | | |
| |||
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
| 37 | + | |
36 | 38 | | |
37 | 39 | | |
38 | 40 | | |
| |||
63 | 65 | | |
64 | 66 | | |
65 | 67 | | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
66 | 73 | | |
67 | 74 | | |
68 | 75 | | |
| |||
1680 | 1687 | | |
1681 | 1688 | | |
1682 | 1689 | | |
| 1690 | + | |
| 1691 | + | |
| 1692 | + | |
| 1693 | + | |
| 1694 | + | |
| 1695 | + | |
| 1696 | + | |
| 1697 | + | |
| 1698 | + | |
| 1699 | + | |
| 1700 | + | |
| 1701 | + | |
| 1702 | + | |
| 1703 | + | |
| 1704 | + | |
| 1705 | + | |
| 1706 | + | |
| 1707 | + | |
| 1708 | + | |
| 1709 | + | |
| 1710 | + | |
| 1711 | + | |
| 1712 | + | |
| 1713 | + | |
| 1714 | + | |
| 1715 | + | |
| 1716 | + | |
| 1717 | + | |
| 1718 | + | |
| 1719 | + | |
| 1720 | + | |
| 1721 | + | |
| 1722 | + | |
| 1723 | + | |
| 1724 | + | |
| 1725 | + | |
| 1726 | + | |
| 1727 | + | |
| 1728 | + | |
| 1729 | + | |
| 1730 | + | |
| 1731 | + | |
| 1732 | + | |
| 1733 | + | |
| 1734 | + | |
| 1735 | + | |
| 1736 | + | |
| 1737 | + | |
| 1738 | + | |
| 1739 | + | |
| 1740 | + | |
| 1741 | + | |
| 1742 | + | |
| 1743 | + | |
| 1744 | + | |
| 1745 | + | |
| 1746 | + | |
| 1747 | + | |
| 1748 | + | |
| 1749 | + | |
| 1750 | + | |
| 1751 | + | |
| 1752 | + | |
| 1753 | + | |
| 1754 | + | |
| 1755 | + | |
| 1756 | + | |
| 1757 | + | |
| 1758 | + | |
| 1759 | + | |
| 1760 | + | |
| 1761 | + | |
| 1762 | + | |
| 1763 | + | |
| 1764 | + | |
| 1765 | + | |
| 1766 | + | |
| 1767 | + | |
| 1768 | + | |
| 1769 | + | |
| 1770 | + | |
| 1771 | + | |
| 1772 | + | |
| 1773 | + | |
| 1774 | + | |
| 1775 | + | |
| 1776 | + | |
| 1777 | + | |
| 1778 | + | |
| 1779 | + | |
| 1780 | + | |
| 1781 | + | |
| 1782 | + | |
| 1783 | + | |
| 1784 | + | |
| 1785 | + | |
| 1786 | + | |
| 1787 | + | |
| 1788 | + | |
| 1789 | + | |
| 1790 | + | |
| 1791 | + | |
| 1792 | + | |
| 1793 | + | |
| 1794 | + | |
| 1795 | + | |
| 1796 | + | |
| 1797 | + | |
| 1798 | + | |
| 1799 | + | |
| 1800 | + | |
| 1801 | + | |
| 1802 | + | |
| 1803 | + | |
| 1804 | + | |
| 1805 | + | |
| 1806 | + | |
| 1807 | + | |
| 1808 | + | |
| 1809 | + | |
| 1810 | + | |
| 1811 | + | |
| 1812 | + | |
| 1813 | + | |
| 1814 | + | |
| 1815 | + | |
| 1816 | + | |
| 1817 | + | |
| 1818 | + | |
| 1819 | + | |
| 1820 | + | |
| 1821 | + | |
| 1822 | + | |
| 1823 | + | |
| 1824 | + | |
| 1825 | + | |
| 1826 | + | |
| 1827 | + | |
| 1828 | + | |
| 1829 | + | |
| 1830 | + | |
| 1831 | + | |
| 1832 | + | |
| 1833 | + | |
| 1834 | + | |
| 1835 | + | |
| 1836 | + | |
| 1837 | + | |
| 1838 | + | |
| 1839 | + | |
| 1840 | + | |
| 1841 | + | |
| 1842 | + | |
| 1843 | + | |
| 1844 | + | |
| 1845 | + | |
| 1846 | + | |
| 1847 | + | |
| 1848 | + | |
| 1849 | + | |
| 1850 | + | |
| 1851 | + | |
| 1852 | + | |
| 1853 | + | |
| 1854 | + | |
1683 | 1855 | | |
1684 | 1856 | | |
1685 | 1857 | | |
| |||
Lines changed: 24 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
10 | 11 | | |
11 | 12 | | |
12 | 13 | | |
| |||
315 | 316 | | |
316 | 317 | | |
317 | 318 | | |
318 | | - | |
| 319 | + | |
319 | 320 | | |
320 | 321 | | |
321 | 322 | | |
| |||
324 | 325 | | |
325 | 326 | | |
326 | 327 | | |
327 | | - | |
| 328 | + | |
328 | 329 | | |
329 | 330 | | |
330 | 331 | | |
| |||
379 | 380 | | |
380 | 381 | | |
381 | 382 | | |
| 383 | + | |
382 | 384 | | |
383 | 385 | | |
384 | 386 | | |
| |||
397 | 399 | | |
398 | 400 | | |
399 | 401 | | |
| 402 | + | |
400 | 403 | | |
401 | 404 | | |
402 | 405 | | |
| |||
432 | 435 | | |
433 | 436 | | |
434 | 437 | | |
435 | | - | |
| 438 | + | |
| 439 | + | |
436 | 440 | | |
437 | 441 | | |
438 | 442 | | |
439 | | - | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
440 | 450 | | |
441 | 451 | | |
442 | 452 | | |
| |||
490 | 500 | | |
491 | 501 | | |
492 | 502 | | |
493 | | - | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
494 | 512 | | |
495 | 513 | | |
496 | 514 | | |
497 | | - | |
| 515 | + | |
498 | 516 | | |
499 | 517 | | |
500 | 518 | | |
| |||
0 commit comments