Skip to content

Give each battery question room to finish on slow runners - #38

Open
Robbie1977 wants to merge 2 commits into
mainfrom
fix/task-battery-timeout-allowance
Open

Give each battery question room to finish on slow runners#38
Robbie1977 wants to merge 2 commits into
mainfrom
fix/task-battery-timeout-allowance

Conversation

@Robbie1977

Copy link
Copy Markdown
Contributor

What

Raise the task battery's per-question timeout from 240 s to 900 s, in both
places .github/workflows/task-battery.yml sets it: the workflow_dispatch
input default and TASK_BATTERY_TIMEOUT_MS. Two lines, no other change.

Why

Run 254 failed with 62/64 ok and two errors, both Timed out after 240000 ms:

  • T2.6 — publications for the PPL1 dopaminergic neurons
  • T3.8 — dataset coverage for DNa02

Run task battery is continue-on-error: true, so the visible failure is
Fail when task battery had errors. Neither task returned a bad answer; both
were cut off.

The cap is no longer a sane bound on answer latency. From the committed
results in test-results/task-battery/:

run mean tasks over 120 s timeouts
11 Aug 16:13 26 s 3 0
16 Aug 07:48 33 s 3 0
19 Aug 00:46 43 s 8 T3.8
19 Aug 23:02 50 s 12 T3.8, T2.6

T4.6 finished successfully in 239 s in run 254 — one second inside the cap.
Eight of the last fifteen battery runs are red, main included, and the gate
has become a report on runner and upstream speed rather than on the code.

900 s is roughly 3.8x the slowest successful answer observed. It needs no
change to scripts/run-task-battery.mjs, which already defaults to 600000 and
clamps to [30000, 1800000]; the workflow was the only thing forcing it lower.
The job's timeout-minutes: 90 and the step's 80 are untouched — run 254
took 17 minutes wall-clock.

How to test

This PR touches .github/workflows/task-battery.yml, which is in the
workflow's own paths: filter, so pushing it runs the battery against the new
value. A green run with 64/64 ok is the check.

Follow-ups, not in this PR

  • The timeout raise buys headroom; it does not explain why the mean doubled in
    eight days. The tasks that time out are the ones that fetch pages rather than
    query the graph (publications, docs, "what was in the latest release"), and
    run 254's log carries TOOL FAILED | tool=get_reviewed_page. A per-fetch
    timeout would stop one slow page consuming a whole question's budget.
  • The battery still commits ~380 KB of results onto every branch it tests, and
    still overwrites latest.json after a failed run.

Robbie1977 and others added 2 commits August 20, 2026 01:22
The per-question cap was 240 s. Answer latency has drifted upward (mean
26 s on 11 Aug, 50 s on 19 Aug) and the tail now sits right against the
cap: T4.6 finished in 239 s in run 254 while T2.6 and T3.8 were cut off
at exactly 240 s. Those two are the only reason the battery gate fails,
so a slow runner or a slow upstream reads as a code failure.

Raise the default to 900 s, which is what run-task-battery.mjs already
clamps within. The workflow_dispatch input still overrides it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant