Uh oh!
There was an error while loading. Please reload this page.
[v3-3-test] Stabilize testcontainers provider tests on slow (ARM) CI runners (#68963) - #69054
Merged
Conversation
…runners (#68963) The mongo provider tests boot a real mongo:8.0 container via testcontainers in the setup phase of the first test that uses the session fixture. That bring-up -- image pull, container start, readiness ping -- has to fit inside the per-test pytest setup-timeout (60s). On the GitHub-hosted ARM canary, where the image cache is cold and registry/disk throughput is lower, the pull alone can eat most of that budget, so setup times out and cascades into "ERROR at setup" across every TestMongoHook test. AMD does not hit this because it runs on every PR with warm caches; ARM only runs on the cron canary. Two complementary changes: - Pre-pull the testcontainers images (mongo:8.0 + ryuk) on the shared host daemon before the timed run, but only in CI and only when the owning provider's tests are actually in the selection -- so the slow cold-cache pull happens outside the per-test setup timeout. Locally it stays a no-op. - Give pytest setup/teardown timeouts a higher floor (180s) for container- backed fixtures, while keeping execution-timeout at the per-test value so genuinely hung tests are still caught quickly. (cherry picked from commit 9b0fe28) Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
1 task
potiuk
marked this pull request as ready for review
June 26, 2026 18:54
potiuk
requested review from
amoghrajesh, ashb, bugraoz93, choo121600, ephraimbuddy, gopidesupavan, jason810496, jedcunningham, jscheffl, potiuk and vatsrahul1001
as code ownersJune 26, 2026 18:54
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The mongo provider tests boot a real mongo:8.0 container via testcontainers
in the setup phase of the first test that uses the session fixture. That
bring-up -- image pull, container start, readiness ping -- has to fit inside
the per-test pytest setup-timeout (60s). On the GitHub-hosted ARM canary,
where the image cache is cold and registry/disk throughput is lower, the
pull alone can eat most of that budget, so setup times out and cascades into
"ERROR at setup" across every TestMongoHook test. AMD does not hit this
because it runs on every PR with warm caches; ARM only runs on the cron
canary.
Two complementary changes:
Pre-pull the testcontainers images (mongo:8.0 + ryuk) on the shared host
daemon before the timed run, but only in CI and only when the owning
provider's tests are actually in the selection -- so the slow cold-cache
pull happens outside the per-test setup timeout. Locally it stays a no-op.
Give pytest setup/teardown timeouts a higher floor (180s) for container-
backed fixtures, while keeping execution-timeout at the per-test value so
genuinely hung tests are still caught quickly.
(cherry picked from commit 9b0fe28)
Co-authored-by: Jarek Potiuk jarek@potiuk.com