summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrédéric Desbiens <[email protected]>2026-08-20 08:44:49 -0400
committerGitHub <[email protected]>2026-08-20 08:44:49 -0400
commitdafb7d70ccae2f7256387de108956cd32ed228e1 (patch)
treee851c79cd4d71ec42e66d3f85dde320d35b072aa
parentb3486f9b4683a0434143fdc7b0ce90ec3b2bfcd0 (diff)
Stopped a stalled install from costing a whole regression run (#641)
The Install softwares step runs apt-get update, an apt-get install and a pip install, and it has stalled twice: 55 minutes on the SMP job of one run, and more than two hours on the ThreadX job of the next, against a normal 27 to 152 seconds across every other run measured. In the second case the tests never started at all. No step in this template had a timeout, so a stall runs until the six hour job limit. That turns a transient apt or PyPI problem into a lost run, and it hides what happened: the job simply sits there, and the failure that eventually gets reported says nothing about which step was stuck. Bound the three steps that do real work. Ten minutes for the install, against a normal worst case of 152 seconds. Fifteen for the build, which has run between 4 and 54 seconds. Sixty for the test step, which is the only one whose length depends on the suites themselves; the longest observed is 37 minutes, and that was with a wait in one test that has since been bounded. A step that trips its timeout fails and names itself, which is the point. None of these numbers is tight enough to trip on work that is merely slow. Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
-rw-r--r--.github/workflows/regression_template.yml7
1 files changed, 7 insertions, 0 deletions
diff --git a/.github/workflows/regression_template.yml b/.github/workflows/regression_template.yml
index fad4d2f1..4f73cdd0 100644
--- a/.github/workflows/regression_template.yml
+++ b/.github/workflows/regression_template.yml
@@ -67,13 +67,20 @@ jobs:
with:
submodules: true
+ # apt and PyPI have stalled this step twice, for 55 minutes and for over two
+ # hours, against a normal 27 to 152 seconds. Nothing here had a timeout, so a
+ # stall ran until the six hour job limit and cost a whole run rather than
+ # failing and being retried.
- name: Install softwares
+ timeout-minutes: 10
run: ${{ inputs.install_script }}
- name: Build
+ timeout-minutes: 15
run: ${{ inputs.build_script }}
- name: Test
+ timeout-minutes: 60
run: ${{ inputs.test_script }}
- name: Publish Test Results