Skip to content

test(e2e): cover docker retry deadline sentinel - #1075

Merged
skevetter merged 3 commits into
mainfrom
integration-test/docker-retry-deadline-test
Aug 17, 2026
Merged

test(e2e): cover docker retry deadline sentinel#1075
skevetter merged 3 commits into
mainfrom
integration-test/docker-retry-deadline-test

Conversation

@devsy-app

@devsy-app devsy-app Bot commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Suite / test

e2e/frameworkTestExecWithDockerRetry_ContextDeadlineExceeded (new), mirroring the existing TestExecWithSSHRetry_ContextDeadlineExceeded.

Logs inspected

Recent pr-ci.yml runs, e.g. CI run 31942726356 (up-provider-podman) which timed out with signal: killed while exercising the docker pull / retry path in execWithDockerRetry.

Edge case added

execWithDockerRetry returns the raw context.DeadlineExceeded sentinel 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:

  • Temporarily swaps dockerPullBackoff to a short fixed backoff and drives execWithDockerRetry with a 20ms context deadline while the retryable fn keeps failing.
  • Asserts the returned error satisfies errors.Is(err, context.DeadlineExceeded).
  • Asserts the error is not the "after N attempts" wrapping (i.e. the sentinel survives unwrapped).

It uses real code paths (execWithDockerRetry + isRetryableDockerError) and the existing wait.Backoff plumbing — no mocks of the function under test.

Verification performed

  • task cli:format — clean (no formatting changes).
  • task cli:lint:ci0 new issues.
  • task cli:test — all packages pass except the documented pre-existing pkg/git TestRepoClone* stale-assertion failure (LFS --config flags; this change does not touch pkg/git).
  • Focused: go test ./e2e/framework/ -run 'TestExecWithDockerRetry|TestExecWithSSHRetry|TestIsRetryable' -vPASS, including the new TestExecWithDockerRetry_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 flaky up-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.

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.
@netlify

netlify Bot commented Aug 16, 2026

Copy link
Copy Markdown

Deploy Preview for devsydev ready!

Name Link
🔨 Latest commit 6fc9fa5
🔍 Latest deploy log https://app.netlify.com/projects/devsydev/deploys/6a829a2248191200086a775e
😎 Deploy Preview https://deploy-preview-1075--devsydev.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify

netlify Bot commented Aug 16, 2026

Copy link
Copy Markdown

Deploy Preview for images-devsy-sh canceled.

Name Link
🔨 Latest commit 6fc9fa5
🔍 Latest deploy log https://app.netlify.com/projects/images-devsy-sh/deploys/6a829a22c498d7000846a33b

@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 complexity · 0 duplication

Metric Results
Complexity 0
Duplication 0

View in Codacy

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.

Run reviewer

TIP This summary will be updated as you push new changes.

@skevetter
skevetter marked this pull request as ready for review August 17, 2026 17:15
@skevetter
skevetter added this pull request to the merge queue Aug 17, 2026
@skevetter
skevetter merged commit 070c717 into main Aug 17, 2026
130 of 132 checks passed
@skevetter
skevetter deleted the integration-test/docker-retry-deadline-test branch August 17, 2026 21:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant