Skip to content

fix(ci): raise the capture job ceiling so long captures survive - #173

Merged
jensholdgaard merged 2 commits into
mainfrom
ci/capture-timeout-scales
Jun 10, 2026
Merged

fix(ci): raise the capture job ceiling so long captures survive#173
jensholdgaard merged 2 commits into
mainfrom
ci/capture-timeout-scales

Conversation

@jensholdgaard

@jensholdgaard jensholdgaard commented Jun 10, 2026

Copy link
Copy Markdown
Owner

Both corpus/otel-demo-v5 capture attempts (runs 27293201562, 27300579008) were cancelled at exactly 45m46s — the job's fixed timeout-minutes: 45, sized for the short default capture, kills any long window dispatched from main. The successful 4h v4 capture only survived because it was dispatched from feat/bench-scale-series, whose timeout bump (da1f41d) never merged.

Fix: a fixed timeout-minutes: 355 (just under GitHub's hard 6h job cap). A duration-scaled expression is NOT possible — GitHub Actions expressions have no arithmetic operators (caught by CodeRabbit), and 5h + headroom would exceed the 360m hosted cap anyway (caught by Copilot). On this rare, manual-dispatch-only workflow, a hung run burning toward the platform cap is the cheaper failure mode than another silently killed capture; the comment on the line records why it cannot scale.

Unblocks re-dispatching v5 (B2 corpus mass) and the flagged v6 (B1 error band, #172).

Co-Authored-By: Claude Fable 5 noreply@anthropic.com

The fixed 45m ceiling killed both 5h v5 capture attempts at exactly
45m46s; the successful 4h v4 only survived via a never-merged branch
tweak (da1f41d). Compute timeout-minutes from duration_seconds plus 75m
headroom; the 6h hosted cap still bounds hung runs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@jensholdgaard
jensholdgaard requested a review from Copilot June 10, 2026 21:00
@jensholdgaard

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 10, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai

coderabbitai Bot commented Jun 10, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The workflow job timeout for the OpenTelemetry demo corpus capture is made dynamic. Instead of a fixed 45-minute timeout, the timeout now scales proportionally with the requested capture duration (duration_seconds input) plus a 75-minute buffer, allowing longer capture windows to run without premature timeout failures.

Changes

Job Timeout Scaling

Layer / File(s) Summary
Dynamic timeout based on capture duration
.github/workflows/capture-otel-demo-corpus.yml
timeout-minutes is computed from inputs.duration_seconds converted to minutes plus a 75-minute buffer. Comments describing the timeout logic and the previously observed failure mode are updated accordingly.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~5 minutes

Possibly related PRs

  • jensholdgaard/ourios#73: Also modifies the same workflow's timeout behavior for the capture job, changing from fixed 45 minutes to a duration-based calculation with buffer.

Poem

A timeout that grows with the task at hand,
No more premature failures across the land! 🐰⏱️
Forty-five minutes? Too rigid and tight—
Now capture jobs run for the duration of night!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title describes scaling capture job timeout, which directly aligns with the main change to make timeout scale with duration_seconds instead of being fixed at 45 minutes.
Description check ✅ Passed The PR description is comprehensive and addresses the problem, solution, and constraints. However, it lacks the checklist sections from the template (cargo fmt, clippy, tests, docs/CHANGELOG).

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/capture-timeout-scales

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adjusts the capture-otel-demo-corpus GitHub Actions workflow so long-running corpus captures don’t get terminated by an undersized fixed job timeout, aligning CI behavior with the workflow’s configurable capture window.

Changes:

  • Replaces the fixed timeout-minutes: 45 with a computed timeout derived from inputs.duration_seconds.
  • Updates the inline rationale comment to document why the timeout must scale with longer captures.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/capture-otel-demo-corpus.yml Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/capture-otel-demo-corpus.yml:
- Line 75: The timeout-minutes expression uses unsupported arithmetic; change to
compute the scaled timeout in a prior step (e.g., a step named compute-timeout)
that reads inputs.duration_seconds (default 600), computes timeout_minutes =
floor(duration_seconds/60) + 75, and exposes it as an output or env (use echo
"timeout_minutes=..." >> $GITHUB_OUTPUT or set-output equivalent). Then replace
the inline expression for timeout-minutes with the numeric output reference
(e.g., use ${{ steps.compute-timeout.outputs.timeout_minutes }}) so the job's
timeout-minutes receives a plain number.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 22c77ec9-cc66-4934-971e-0d5594a1e336

📥 Commits

Reviewing files that changed from the base of the PR and between 7dbaa07 and d6dd6e1.

📒 Files selected for processing (1)
  • .github/workflows/capture-otel-demo-corpus.yml

Comment thread .github/workflows/capture-otel-demo-corpus.yml Outdated
…thmetic

The scaled expression was invalid (no / or + in GH expressions, per
CodeRabbit) and would also exceed the 360m hosted cap for a 5h window
(per Copilot). A fixed near-cap ceiling is the robust trade on this
rare manual workflow: no more silently killed long captures.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.

Comment thread .github/workflows/capture-otel-demo-corpus.yml
@jensholdgaard jensholdgaard changed the title fix(ci): scale the capture timeout with the requested window fix(ci): raise the capture job ceiling so long captures survive Jun 10, 2026
@jensholdgaard
jensholdgaard requested a review from Copilot June 10, 2026 21:18

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

@jensholdgaard
jensholdgaard merged commit 31a5181 into main Jun 10, 2026
13 checks passed
@jensholdgaard
jensholdgaard deleted the ci/capture-timeout-scales branch June 10, 2026 21:24
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.

2 participants