Skip to content

[CI/Build] Retry CPU image stream interruptions - #56597

Merged
khluu merged 3 commits into
vllm-project:mainfrom
khluu:fix/cpu-build-read-timeout-retry
Sep 15, 2026
Merged

khluu merged 3 commits into
vllm-project:mainfrom
khluu:fix/cpu-build-read-timeout-retry

Conversation

@khluu

@khluu khluu commented Sep 12, 2026 •

Copy link
Copy Markdown
Member

Summary

  • teach the existing bounded CPU Docker-build retry loop to recognize Python downloader interruptions:
    • TimeoutError: The read operation timed out
    • BrokenPipeError: [Errno 32] Broken pipe
  • recognize truncated Git/HTTP streams from the triton-cpu clone:
    • HTTP stream not closed cleanly
    • fetch-pack unexpected disconnect
    • early EOF / invalid index-pack output
  • preserve the existing four-attempt limit and 10/20/40-second backoff

Why

This extends the retry logic introduced by #55317. Main #88385 first exposed Python read timeouts in two CPU shards; both exact retries passed unchanged. Main #88718 CPU Language shard 1 later lost the same 1.8-GiB LLVM download with BrokenPipeError, but the classifier rejected it and exited after attempt 1.

The same gap widened on Sep 15. Main #88996 lost three CPU jobs on aicf-jf-cicd-01: two triton-cpu clones ended in HTTP/2 cancellation/early EOF, while one LLVM download ended in BrokenPipeError. Main #88997 then lost all three CPU Language shards on the same host at the same instant with the identical HTTP/2 clone-disconnect chain. Main #88999 added an eighth pre-test failure on the same host when another LLVM download broke its pipe. Each job reached the existing classifier, none matched, and each exited after attempt 1.

These eight Sep 15 failures occurred before tests. The exact PR build for each merged source change had already passed the relevant CPU lanes, so the shared transport signature is not attributable to any of the three source diffs.

Why this doesn't duplicate an open PR

Searched open vLLM PRs and issues for CPU image-build read timeouts, broken pipes, truncated HTTP/2 streams, Triton CPU LLVM downloads, and BUILD_RETRY_PATTERN. No other open change covers these signatures. A briefly opened duplicate draft #56938 was closed before validation, and its distinct stream signatures were folded into this existing owner.

Tests

  • bash -n .buildkite/scripts/hardware_ci/run-cpu-test.sh
  • verified every captured timeout, broken-pipe, HTTP/2 disconnect, early-EOF, and index-pack line matches BUILD_RETRY_PATTERN
  • verified a representative compiler error does not match
  • uvx --from shellcheck-py shellcheck .buildkite/scripts/hardware_ci/run-cpu-test.sh
  • PRE_COMMIT_HOME=/tmp/sherlock-precommit-cpu-retry uvx --python 3.12 pre-commit run --files .buildkite/scripts/hardware_ci/run-cpu-test.sh
  • git diff --check

No model evaluation is applicable; this changes CI retry classification only. Exact CPU PR validation of current head 3248f7752f is pending; the external failure paths cannot be forced deterministically.

AI assistance disclosure

OpenAI Codex assisted with the diagnosis, pattern extensions, and validation. The earlier timeout change was reviewed by the human submitter; a human maintainer must review every newly amended line before this draft is marked ready.

@khluu
khluu requested a review from Harry-Chen as a code owner September 12, 2026 10:12

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@mergify mergify Bot added ci/build cpu Related to CPU backends labels Sep 12, 2026
@khluu
khluu marked this pull request as draft September 14, 2026 04:27
@khluu khluu changed the title [CI/Build] Retry CPU image read timeouts [CI/Build] Retry CPU image download interruptions Sep 14, 2026
khluu and others added 3 commits September 15, 2026 03:36
Recognize the Python downloader signature emitted when the Triton CPU LLVM artifact stalls so the existing bounded Docker-build retry loop can recover instead of failing immediately.

Co-authored-by: OpenAI Codex <codex@openai.com>
Signed-off-by: Kevin Luu <51931015+khluu@users.noreply.github.com>
Recognize the downloader BrokenPipeError emitted by the Triton CPU LLVM artifact fetch so the existing bounded Docker-build retry loop can recover.

Co-authored-by: Sherlock <sherlock@openai.com>
Signed-off-by: Kevin Luu <51931015+khluu@users.noreply.github.com>
Co-authored-by: OpenAI Codex <noreply@openai.com>
Signed-off-by: Kevin Luu <51931015+khluu@users.noreply.github.com>
@khluu
khluu force-pushed the fix/cpu-build-read-timeout-retry branch from 4268071 to 3248f77 Compare September 15, 2026 03:37
@khluu khluu changed the title [CI/Build] Retry CPU image download interruptions [CI/Build] Retry CPU image stream interruptions Sep 15, 2026
@khluu

khluu commented Sep 15, 2026

Copy link
Copy Markdown
Member Author

/ci run

@github-actions

Copy link
Copy Markdown

✅ Triggered Buildkite CI #89005 for commit 3248f7752f11.

@khluu

khluu commented Sep 15, 2026

Copy link
Copy Markdown
Member Author

Current-head validation: Buildkite #89005 resolved literal head 3248f7752f11b83350432f78cbc8e5711aa875c7; bootstrap, Buildkite pre-commit, GitHub pre-commit bridge, and the CPU image all passed. The CPU image is the exact gate for the expanded bounded retry classifier.

This head covers the eight pre-test failures now observed on physical aicf-jf-cicd-01 across unrelated mains #88996/#88997/#88999: seven truncated Git/HTTP clone streams plus one Triton LLVM BrokenPipeError. Human line review remains required before readiness.

@khluu
khluu marked this pull request as ready for review September 15, 2026 04:18

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@khluu
khluu merged commit 8765952 into vllm-project:main Sep 15, 2026
22 checks passed
ItsRoy69 pushed a commit to ItsRoy69/vllm that referenced this pull request Sep 15, 2026
Signed-off-by: Kevin Luu <51931015+khluu@users.noreply.github.com>
Co-authored-by: OpenAI Codex <codex@openai.com>
Co-authored-by: Sherlock <sherlock@openai.com>
Co-authored-by: OpenAI Codex <noreply@openai.com>
keneoneth pushed a commit to keneoneth/vllm that referenced this pull request Sep 16, 2026
Signed-off-by: Kevin Luu <51931015+khluu@users.noreply.github.com>
Co-authored-by: OpenAI Codex <codex@openai.com>
Co-authored-by: Sherlock <sherlock@openai.com>
Co-authored-by: OpenAI Codex <noreply@openai.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/build cpu Related to CPU backends

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants