Jens-G opened a new pull request, #3578:
URL: https://github.com/apache/thrift/pull/3578

   ## Harden the MSVC build workflow against transient Docker daemon 
unavailability
   
   ### Problem
   The `build` job (`.github/workflows/msvc.yml`, `runs-on: windows-2025`) 
compiles inside a Windows Docker container. GitHub-hosted Windows runners 
occasionally start the job before the Docker engine is listening on 
`\\.\pipe\docker_engine`, so the first `docker` command fails instantly:
   
   ```
   ##[error]Docker pull failed with unexpected error.
   failed to connect to the docker API at npipe:////./pipe/docker_engine; ...
   Write-Error: Container build failed with exit code 1
   Write-Error: LastTest.log not found at 
C:\thrift-build\Testing\Temporary\LastTest.log
   ```
   
   No `ctest` runs, so the "Check test results" step reports the missing 
`LastTest.log`. The ~27s total (vs. minutes for a real MSVC build) confirms the 
container never started. This is a runner-infrastructure timing issue, 
independent of the PR under test — it recurs on unrelated PRs while every other 
gate (including the Linux `compiler` job) passes.
   
   ### Change
   - **Wait for Docker daemon**: a new step polls `docker version` until the 
engine responds (up to 4 min) before any `docker` command, failing with a clear 
message if it never comes up.
   - **Retry `docker pull`** (cached-image step) up to 3× on transient 
registry/network/daemon errors; a `not found` result still falls through to 
building the image from scratch.
   - **Retry `docker run`** (build step) up to 3×, but **only when the daemon 
was unreachable** — a genuine build or test failure is propagated immediately 
and never triggers a costly rebuild. Output is streamed via `Tee-Object`, so 
the build log still appears live.
   
   ### Notes
   - CI-only change; no library code is affected. The workflow YAML was 
validated; the PowerShell logic is straightforward, but this can't be exercised 
locally (it needs a Windows runner with Docker-in-Windows) — the real proof is 
the job staying green across runs once merged.
   - GitHub Issues are disabled on this repo, so this is filed as a standalone 
CI fix; happy to attach a JIRA ticket if maintainers prefer one for tracking.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to