deps: bump testcontainers-go to v0.44.0 - #1237
Merged
Tim Hockin (thockin) merged 1 commit intoAug 27, 2026
Merged
Conversation
When reusing an existing reaper, v0.43.0 waits only for its Docker port mapping, and Docker exposes that port before Ryuk is listening -- so a package can connect too early and lose the handshake. v0.44.0 also waits for the reaper's "Started" log line. Claude-Session: https://claude.ai/code/session_01XuQqkwLf5Zx6CSZFHSC6hb
2 tasks
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.
Part of #1230
When reusing an already-running Ryuk reaper, testcontainers-go v0.43.0 waits only for its Docker port mapping. Docker exposes that port before Ryuk is listening, so a second package can connect too early and lose the handshake with
read ack: EOF. That is testcontainers-go#3743; v0.44.0 also waits for the reaper'sStartedlog line (#3761).A package whose handshake fails is not counted as a Ryuk client but its containers still carry the shared session label, so another package exiting can delete a database that is still in use — the failure reported in #1230.
Scope
This helps local runs, where the reaper stays on. It does not fix CI on its own, so it is deliberately separate from #1235, which disables the reaper for
run-tests.Measured on a 4-core Linux VM with cold build caches, which staggers package start times the way CI does:
Under v0.44.0 the failures move to
wait for reaper <id>: context deadline exceeded— a late package finds a reaper that is already shutting down, and one readiness probe (defaultStartupTimeout, 60s) outlives the whole reaper retry budget (MaxElapsedTime, 20s), so the retry loop never gets a second attempt. The remaining fail-open behind all of this is #3827, still open upstream.Diff size
Four lines of
go.mod. The rest isgo mod vendoroutput: v0.44.0 pulls newermoby/client,gopsutil, andotelhttp, andotelhttpmovesotel/semconvfrom v1.39.0 to v1.41.0. Insertions and deletions nearly cancel because most of it is a directory swap and one generatedhttpsnoopfile being merged into another.hack/verify/go-modules.sh,licenses.sh,boilerplate.sh, andgofmt.shall pass;go test -race ./cmd/ateapi/...is green with no silently skipped database tests.