Repository navigation
ci: disable the testcontainers reaper on the conformance job - #112
Merged
Merged
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.
juicycleff
added a commit
that referenced
this pull request
Oct 9, 2026
Brings in #124 (the dashboard cutover and the SOC 2 hardening) and #112. Every textual conflict was in a contract manifest, its test, or go.mod. Main took the graph routes out of every manifest and renamed the core contributor to authsome. This branch added intents. The merge keeps all of them (plugins.list, the twelve notification template intents, and the organization and subscription ones) with no graph routes, so the /notifications route this branch added goes the way of the others. The intent counts in the tests are the merged ones: 69 core, 12 notification, 10 organization and 26 subscription. The core registration test checks auth.config and plugins.list under authsome, next to main's queries.config check. go.mod is main's. This branch still listed templ and forgeui, which main dropped and nothing here imports, and go mod tidy leaves the file alone. Main's changes broke this branch in four places git couldn't see: - fetchContractCatalog insisted on a contributor named auth. Since fc3ba03 it's authsome, so a catalog from an up-to-date upstream was always rejected and no remote auth.* intent ever registered. It requires ExtensionName now. - Engines need a Chronicle audit trail, so the setup, plugin inventory, catalog and invitation tests pass a memory one. - The default password minimum is twelve characters, so the setup tests use SecureP@ss12. - Since e0286f4 the first user becomes platform owner only once their email is verified. The setup test now checks that setup alone doesn't grant it and that verifying does. That's a real change for first-run setup: the operator has to verify their address before they own the platform.
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.