Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 16 additions & 7 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -143,8 +143,8 @@ jobs:
runs-on: ubuntu-latest
# Must fit `max_attempts * timeout_minutes` below, plus ~1 min of setup,
# or the last attempt gets killed mid-run and the cell reports `cancelled`
# -- a dead gate. JRuby: 1 + 20 + 20 = 41. MRI: 1 + 3 + 3 = 7, under 8.
timeout-minutes: ${{ contains(matrix.ruby-version, 'jruby') && 41 || 8 }}
# -- a dead gate. JRuby: 1 + 20 + 20 = 41. MRI: 1 + 4 + 4 = 9.
timeout-minutes: ${{ contains(matrix.ruby-version, 'jruby') && 41 || 9 }}
continue-on-error: ${{ matrix.experimental }}
strategy:
matrix:
Expand Down Expand Up @@ -212,11 +212,20 @@ jobs:
# so it was slow, not hung.
#
# 20 min restores ~26% over the slowest attempt, which is the margin
# this was originally sized for. MRI is 128s against 3 min and does
# not move. If JRuby ever exceeds this again, re-measure and raise
# BOTH numbers -- a per-attempt timeout that does not fit the job cap
# reports `cancelled`, which reads as an absence rather than a fail.
timeout_minutes: ${{ contains(matrix.ruby-version, 'jruby') && 20 || 3 }}
# this was originally sized for.
#
# MRI then did the same thing one release later, which is why it is 4
# and not 3. "MRI is 128s against 3 min" was true when written; measured
# on run 32770212615 the attempts are 78-146s, so the slowest had 23%
# left and `3.3/rails81` (144s) duly timed out on run 32889000873 --
# again with tests still printing dots when SIGTERM landed. 4 min puts
# the slowest back to ~64%.
#
# The lesson both times: these numbers are measurements, not settings.
# When one bites, RE-MEASURE and raise BOTH it and the job cap -- a
# per-attempt timeout that does not fit the cap reports `cancelled`,
# which reads as an absence rather than a failure.
timeout_minutes: ${{ contains(matrix.ruby-version, 'jruby') && 20 || 4 }}
# Two, not three. A third attempt never fit inside the job cap on
# either engine (JRuby 3x15=45 > 25; MRI 3x3=9 > 8), so it only ever
# got killed partway and reported the cell as `cancelled`. Keeping
Expand Down
Loading