ci: disable the testcontainers reaper on the conformance job - #112
Open
juicycleff wants to merge 1 commit into
Open
ci: disable the testcontainers reaper on the conformance job#112juicycleff wants to merge 1 commit into
juicycleff wants to merge 1 commit into
Conversation
The reaper is the container testcontainers starts to clean up after a test process that dies without terminating its own containers. On 2026-09-06 it failed to come up inside its 60 second deadline and took the postgres halves of the oauth2provider and sso conformance suites down with it, before any authsome code ran: create container: reaper: wait for reaper: context deadline exceeded Both failures were at the container-start line, so the suites reported red for something that has nothing to do with them. What the reaper guards against cannot happen on this job. All 11 container starts in the tree pair 1:1 with an explicit Terminate in t.Cleanup, and the runner is destroyed when the job ends, so a leaked container has nowhere to leak to. The variable is set on the one step that runs -tags integration, which is the only place in CI that starts a container, so a local integration run still gets the reaper. Verified by running the two suites that failed with the reaper off: postgres passes, and the container count on the host is unchanged afterwards, which is the cleanup the reaper would otherwise be insuring. Not a speedup, the reaper costs about half a second per package.
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 free
to 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.
Store Conformance (pg + mongo)went red on #110 for a reason that had nothing to do with #110. Both postgres suites died at the line that starts the container:That is the testcontainers reaper, the container it starts to clean up after a test process that dies without terminating its own containers. It failed to come up inside its 60 second deadline, so
oauth2providerandssoboth reported red before a line of authsome code ran. It will keep doing that on unrelated PRs, because it fails before the thing under test is reached.Why turning it off is safe here
What the reaper insures against cannot happen on this job. Every one of the 11 container starts in the tree pairs 1:1 with an explicit
Terminateint.Cleanup, and this runner is destroyed when the job ends, so a leaked container has nowhere to leak to.The variable is set on the single step that runs
-tags integration, which is the only place in CI that starts a container at all. Nothing sets it locally, sogo test -tags integrationon your machine still gets the reaper, which is where the guard is actually worth having.Verified
Ran the two suites that failed, with the reaper off:
docker eventsconfirms realpostgres:16-alpinecontainers were created, so postgres is genuinely exercised rather than skipped. The container count on the host is identical before and after, which is the cleanup the reaper would otherwise be insuring.One thing this is not: a speedup. The reaper costs about half a second per package, so roughly five seconds across the job. The point is that it stops failing runs for reasons unrelated to the code under test.