Skip to content

Stop core DB test jobs timing out when migration tests run - #73231

Merged
potiuk merged 1 commit into
apache:mainfrom
rjgoyln:fix/ci-migration-tests-job-budget
Sep 21, 2026
Merged

potiuk merged 1 commit into
apache:mainfrom
rjgoyln:fix/ci-migration-tests-job-budget

Conversation

@rjgoyln

@rjgoyln rjgoyln commented Sep 16, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Migration tests run as part of the core unit test job, and run_unit_tests.sh gives the unit tests whatever time remains after the preceding steps have completed. On MySQL, this can leave only around half an hour of the 65-minute job budget for tests that can take close to that long:

Tests get 32m34s of the 65m job budget
breeze testing core-tests --test-types 'API Always CLI' ... --total-test-timeout 1954

The 65-minute budget was originally sized as the tests' own 60-minute timeout plus five minutes of overhead. #50973 set both values in the same commit, so the budget did not account for the migration tests and other steps that run before the unit tests.

The MySQL core callers now use an 80-minute job timeout. Postgres remains at 65 minutes because its migration overhead is small enough that there is no observed need for the additional budget. Sqlite also remains at 65 minutes: most migration rounds are skipped on that backend, and the migration step costs about a minute.

In the last nine canary runs on main, the tightest MySQL shard that completed successfully finished only 1m11s before its timeout. In addition, both API...CLI MySQL shards in run 34607414749 exceeded their available test timeout. Increasing the job timeout to 80 minutes provides a substantially larger buffer against these observed runtimes, while remaining above the longest core DB job in that window, which ran for 59 minutes.

The providers callers also pass run-migration-tests: "true", but the migration step is gated on test-group == 'core' and is skipped for provider jobs. They therefore keep the existing 65-minute timeout.


Was generative AI tooling used to co-author this PR?
  • Yes — Claude Code (Opus 5)

Generated-by: Claude Code (Opus 5) following the guidelines

@rjgoyln
rjgoyln force-pushed the fix/ci-migration-tests-job-budget branch 2 times, most recently from e87470b to 53ba703 Compare September 16, 2026 08:26
The migration tests run inside the core unit test job, and run_unit_tests.sh
gives the unit tests whatever is left of the job budget once the steps before
them have taken their share. On MySQL that regularly leaves around half an hour
of the 65 minutes for tests that need close to it, so the job fails whenever the
setup has a slow day.

The 65 was sized as the tests' own timeout plus five minutes, with nothing in it
for the steps that run before them.
@rjgoyln
rjgoyln force-pushed the fix/ci-migration-tests-job-budget branch from 53ba703 to 1e2027c Compare September 16, 2026 08:35
@rjgoyln
rjgoyln marked this pull request as ready for review September 16, 2026 08:44
@potiuk
potiuk merged commit 65d4e7d into apache:main Sep 21, 2026
209 of 214 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

Backport failed to create: v3-3-test. View the failure log Run details

Note: As of Merging PRs targeted for Airflow 3.X
the committer who merges the PR is responsible for backporting the PRs that are bug fixes (generally speaking) to the maintenance branches.

In matter of doubt please ask in #release-management Slack channel.

Status Branch Result
❌ v3-3-test Commit Link

You can attempt to backport this manually by running:

cherry_picker 65d4e7d v3-3-test

This should apply the commit to the v3-3-test branch and leave the commit in conflict state marking
the files that need manual conflict resolution.

After you have resolved the conflicts, you can continue the backport process by running:

cherry_picker --continue

If you don't have cherry-picker installed, see the installation guide.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants