Skip to content

ci: raise the time limits of five jobs that run near them - #895

Open
LeeroyHannigan wants to merge 1 commit into
mainfrom
ci/raise-job-time-limits
Open

LeeroyHannigan wants to merge 1 commit into
mainfrom
ci/raise-job-time-limits

Conversation

@LeeroyHannigan

Copy link
Copy Markdown
Collaborator

What

This pull request raises the timeout-minutes of five CI jobs. Nothing else changes.

Job Workflow Limit before Limit after
run-tests (both toolchains) test.yml 15 25
run-integration integration.yml 40 60
run-integration-sqlite integration.yml 40 60
mongodb-rust integration-mongodb.yml 40 60
cassandra-pytest integration-cassandra.yml 45 60

Why

No issue tracks this change. On main's last seven push runs, four of these jobs came within one to four minutes of their limits:

Job Longest run Median run Limit
run-integration 39.1 min 32.1 min 40
run-integration-sqlite 39.2 min 33.9 min 40
mongodb-rust 38.7 min 35.3 min 40
cassandra-pytest 41.6 min 32.9 min 45

A pull request run that restores no Rust cache builds for longer. A pull request that adds tests to these jobs also takes them over the limit. On #874 (bulk put items), the run on 4a825f6f had run-integration, run-integration-sqlite and mongodb-rust cancelled at 40 minutes. Every test that had run in them passed.

run-tests took 12 to 15 minutes on #874. Its build took 5.5 minutes without a cache, where main's took 2. The engine's unit tests then took 5 minutes on the 4-core runner. One run hit the 15-minute limit, and its re-run passed in 12m38s.

The cost is that a job that hangs holds its runner up to 20 minutes longer, and run-tests up to 10 minutes longer.

Testing done

  • actionlint reports the same findings for the four workflow files before and after the change. The findings are the custom runner labels that it does not know. yaml.safe_load reads each file.
  • The durations come from the GitHub Actions API, for main's last seven push runs of each workflow and for the runs on feat: add StartBulkPutItems and the bulk operation APIs #874.
  • The CI of this pull request runs the five jobs with the new limits.

Checklist

  • I have read CONTRIBUTING.md
  • All tests pass (cargo test --workspace)
  • Code is formatted (cargo fmt --check)
  • Clippy is clean (cargo clippy -- -W clippy::pedantic)
  • I have added or updated tests for new functionality
  • I have updated documentation if behavior changed
  • Breaking changes are noted below (if any)
  • If this changes the wire protocol, Storage trait, auth model, on-disk
    format, or public CLI surface, an RFC has been accepted or is linked
    below. Otherwise, an ADR captures the decision (link below).

ADR / RFC: n/a


By submitting this pull request, I confirm that my contribution is made under
the terms of the Apache License 2.0 and I agree to the Developer Certificate of
Origin (DCO). See CONTRIBUTING.md for details.

On main's last seven push runs, run-integration took up to 39.1
minutes, run-integration-sqlite up to 39.2 and mongodb-rust up to 38.7,
against a 40-minute limit. cassandra-pytest took up to 41.6 minutes
against 45. A run that restores no Rust cache builds for longer. The
bulk put items pull request (#874) had the three 40-minute jobs
cancelled at the limit. Every test that had run in them passed. These
jobs now stop at 60 minutes.

run-tests stops at 25 minutes instead of 15. On #874 it took 12 to 15
minutes. Its build took 5.5 minutes without a cache, where main's takes
2, and the engine's unit tests took 5 minutes on the 4-core runner.

A job that hangs now holds its runner up to 20 minutes longer.

This branch has not been deployed

No deployments
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