Cap every build workflow job at 60 minutes - #3816
Conversation
|
30 minutes is still a lot and if You have suggestion what values apply to each module - i can adjust |
Code reviewNo blocking issues found. Checked for bugs and CLAUDE.md compliance. One suggestion, below the bar for an issue but verified:
thrift/.github/workflows/build.yml Lines 1200 to 1202 in 3074a90 🤖 Generated with Claude Code |
3074a90 to
dba68e6
Compare
Client: build A hung job otherwise runs to the 6-hour GitHub default before anything notices. lib-d hung in make check on 2026-09-07 and held a runner for 47 minutes. The value is set by the apt mirror, not by the work. Of the 296 build.yml runs that concluded between 2026-08-25 and 2026-09-13, 14 had a job that succeeded only after more than 30 minutes: 16 jobs in all, each spending 28 to 42 minutes inside an apt-get install step and under 5 minutes on everything else, the longest at 45 minutes overall. A 30-minute cap would have failed each of those runs; 60 fails none of them and still frees a stuck runner six times sooner than the default. lib-python and lib-python-macos keep the 20 they already had. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
dba68e6 to
92a9675
Compare
|
Thanks, that was the right check. I extended it to the 296 This comment was created with AI assistance. |
Only
lib-pythonandlib-python-macoscarried atimeout-minutes, so every other job in the build workflow runs to the 6-hour GitHub default when it hangs.lib-dhung inmake checkon 7 September and held a runner for 47 minutes.The cap is 60 rather than 30 because the apt mirror, not the work, sets the ceiling. Over the 296
build.ymlruns that concluded success or failure between 2026-08-25 and 2026-09-13 (24,228 successful jobs):All 16 are the same shape: 28 to 42 minutes inside an apt-get install step downloading the
libboost-all-devclosure fromazure.archive.ubuntu.com, then under 5 minutes for everything else. The longest wascross-test (php, …)at 45.1 minutes in run 34603753680. Per-job budgets do not help here, since the slow step is shared by nearly every job and the compute part is never the problem. 60 fails none of those runs and still frees a stuck runner six times sooner than the default.The two python jobs keep the 20 they already had.
lib-pythonruns the same apt step, so its 20 has the same exposure, but that value predates this PR.Verified: parsing
build.ymlafter the change lists all 18 jobs with atimeout-minutes.This change was created with AI assistance (Claude Opus 5).