test(e2e): cover docker retry deadline sentinel - #1075
Merged
Conversation
Add TestExecWithDockerRetry_ContextDeadlineExceeded, mirroring the existing SSH-variant test. execWithDockerRetry context-deadline path was uncovered while the SSH sibling was tested; flaky up-provider-podman runs hit this timeout path. The test asserts the raw context.DeadlineExceeded sentinel is returned (not the after-N-attempts wrapping) so callers can distinguish a timeout from a real failure.
✅ Deploy Preview for devsydev ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for images-devsy-sh canceled.
|
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 0 |
| Duplication | 0 |
AI Reviewer: run a review on demand. To trigger the first review automatically, go to your organization or repository integration settings. AI can make mistakes. Always validate suggestions.
TIP This summary will be updated as you push new changes.
skevetter
marked this pull request as ready for review
August 17, 2026 17:15
skevetter
added this pull request to the merge queue
Aug 17, 2026
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.
Suite / test
e2e/framework—TestExecWithDockerRetry_ContextDeadlineExceeded(new), mirroring the existingTestExecWithSSHRetry_ContextDeadlineExceeded.Logs inspected
Recent
pr-ci.ymlruns, e.g. CI run31942726356(up-provider-podman) which timed out withsignal: killedwhile exercising the docker pull / retry path inexecWithDockerRetry.Edge case added
execWithDockerRetryreturns the rawcontext.DeadlineExceededsentinel when the context deadline fires during retries (so callers can distinguish a spec-timeout from a real failure), but that path had no test coverage — the equivalent SSH-variant (execWithSSHRetry) did. This adds the missing docker-variant test:dockerPullBackoffto a short fixed backoff and drivesexecWithDockerRetrywith a 20ms context deadline while the retryable fn keeps failing.errors.Is(err, context.DeadlineExceeded)."after N attempts"wrapping (i.e. the sentinel survives unwrapped).It uses real code paths (
execWithDockerRetry+isRetryableDockerError) and the existingwait.Backoffplumbing — no mocks of the function under test.Verification performed
task cli:format— clean (no formatting changes).task cli:lint:ci— 0 new issues.task cli:test— all packages pass except the documented pre-existingpkg/gitTestRepoClone*stale-assertion failure (LFS--configflags; this change does not touchpkg/git).go test ./e2e/framework/ -run 'TestExecWithDockerRetry|TestExecWithSSHRetry|TestIsRetryable' -v— PASS, including the newTestExecWithDockerRetry_ContextDeadlineExceeded.Expected impact
Locks in the contract that a docker-retry spec-timeout surfaces as
context.DeadlineExceeded(not an opaque "after N attempts" error), making future flakyup-provider-*timeouts diagnosable and preventing regressions that would re-wrap the sentinel. This is a test-only change; no production behavior modified.This PR was created by an AI agent as part of an automated daily e2e review job.