Skip to content

fix: recover PR 2619 production ingest / 修复 PR 2619 生产环境写入 - #2636

Merged
adibarra merged 11 commits into
mainfrom
recovery/reuse-pr-2619
Aug 18, 2026
Merged

fix: recover PR 2619 production ingest / 修复 PR 2619 生产环境写入#2636
adibarra merged 11 commits into
mainfrom
recovery/reuse-pr-2619

Conversation

@adibarra

Copy link
Copy Markdown
Collaborator

Summary

Bootstrap a guarded recovery for the missing production ingest after PR #2619 content landed on main without normal PR merge bookkeeping or a push-triggered run-sweep.yml run.

This bootstrap commit intentionally has no file changes. The recovery changelog entry and reusable sweep ancestry will be added only after the PR has the required full-sweep label and an authorized /reuse-sweep-run 31965016666 command.

Source sweep: https://github.com/SemiAnalysisAI/InferenceX/actions/runs/31965016666

中文说明

为 PR #2619 内容已进入 main、但 GitHub 未完成正常 PR 合并状态记录且未触发 run-sweep.yml 主分支运行所导致的生产环境写入缺失,建立受控恢复流程。

当前引导提交刻意不包含任何文件变更。只有在此 PR 添加所需的完整扫描标签并由授权维护者执行 /reuse-sweep-run 31965016666 后,才会追加恢复用 changelog 条目并挂接可复用扫描的提交祖先关系。

源扫描运行:https://github.com/SemiAnalysisAI/InferenceX/actions/runs/31965016666

xinli-sw and others added 9 commits August 16, 2026 09:51
…orkers

Adds a GB200 counterpart to the GB300 AgentX DSV4 MTP recipes tuned in
PR #2571. Every setting is copied unchanged except workers that used 4
GPUs on GB300 now use 8 on GB200 (agg TP4->TP8, disagg prefill DEP4->DEP8);
worker sizes that were already 8/12/16 GPUs are untouched.

New recipe files and dsv4-fp4-gb200-dynamo-vllm-agentic-mtp2-{agg,disagg}
master-config keys are kept separate from the existing GB200 AgentX MTP
recipes/keys, which have unrelated tuning and are left untouched.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The GB300-pinned nightly-dev-arm64-cu13.0.1-426e59f tag is an ephemeral
dev-branch build that has already been pruned from Docker Hub, and it
exists specifically to carry deep_gemm_amxf4_mega_moe (W4A4 MegaMoE)
support that isn't in stock vLLM nightly. Since these GB200 recipes don't
need to stay on that dev branch, switch to vllm/vllm-openai:nightly and
drop back to the regular deep_gemm_mega_moe backend that stock nightly
supports.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…gaMoE"

This reverts commit 9749e1ef489e06744ff661e5eb5f97036e613ea3.
Job 23562 (disagg-gb200-2p1d-dep8-dep16-c1024-mtp2-agentic, conc=1024)
died silently mid-run: one prefill worker process was killed with no
CUDA-OOM warning or traceback (exit code: None), which cascaded into an
EngineDeadError and aborted the whole disagg job. No host-RAM telemetry
was captured to confirm the cause, but the recipe reserves a 180GB host
Mooncake KV-store segment per node on top of whatever vLLM/Dynamo itself
uses, so as a mitigation: drop global_segment_size to 160GB across all
three GB200 mtp2 disagg recipes, and halve each large-conc file's target
concurrency (and rename/re-point accordingly) to reduce memory pressure:
  c256  -> c128  (disagg-gb200-1p1d-dep8-dep8)
  c1024 -> c512  (disagg-gb200-2p1d-dep8-dep16)
  c1152 -> c576  (disagg-gb200-2p1d-dep8-dep12)
configs/nvidia-master.yaml's mtp2-disagg search-space conc-list and
CONFIG_FILE references are updated to match.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Job 23607 (disagg-gb200-1p1d-dep8-dep8-c128-mtp2-agentic) OOM'd during
decode CUDA-graph capture: 183.24 GiB already in use on a 184 GiB GB200
GPU, then the capture-size warmup forward pass needed another 768 MiB it
didn't have. The decode block's max-num-seqs (256) and
max-cudagraph-capture-size (1024) were still sized for the pre-rename
c256 concurrency, not the current c128 target.

max-cudagraph-capture-size should track (num_speculative_tokens + 1) *
max-num-seqs for MTP-3 decode graphs. Set decode max-num-seqs to 128
(matching the file's concurrency) and max-cudagraph-capture-size to 512
(4 * 128). The other two GB200 disagg mtp2 decode blocks (c576, c512)
already satisfy this (64 * 4 = 256); prefill blocks are unaffected.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Job 23635 got past startup (decode capture-size fix from the previous
commit held) but crashed ~4 min into serving: three prefill DP ranks hit
torch.OutOfMemoryError inside the MTP speculator's draft-token prefill
pass (speculator.py:_prefill -> wq_b block-scaled matmul), with the GPU
already at 183.03/184 GiB in use. prefill's gpu-memory-utilization: 0.92
(copied from the GB300 source) reserves too much of the 184 GiB GB200
GPU for vLLM's static pool, leaving too little headroom for transient
MTP draft-prefill activations on large-batch requests. Drop prefill
gpu-memory-utilization to 0.85; decode is untouched since this failure
was prefill-only.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Job 23715 (c576, global_segment_size 160GB) still died silently after
~1h51m of steady serving with no CUDA-OOM/cuBLAS error, matching the
same host-RAM-exhaustion signature as job 23562 (180GB). Lower
global_segment_size to 140GB across all three GB200 mtp2 disagg
recipes as a further mitigation.

Job 23714 (c128, fixed decode/prefill sizing) completed successfully.
Its GPU KV-cache usage peaked at ~80% on prefill and ~39% on decode --
not maxed out -- so add the next concurrency point (256) on the same
1p1d dep8/dep8 topology rather than jumping to 2p1d: create
disagg-gb200-1p1d-dep8-dep8-c256-mtp2-agentic.yaml as a clone of the
working c128 file (decode max-num-seqs/max-cudagraph-capture-size and
prefill gpu-memory-utilization left unchanged, since DEP8 replication
already gives 8x the c128 file's per-rank max-num-seqs budget, well
above a conc=256 target) and add its conc-list: [256] search-space
entry to dsv4-fp4-gb200-dynamo-vllm-agentic-mtp2-disagg.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
中文:准备 PR 2619 推理结果写入恢复。
@adibarra

Copy link
Copy Markdown
Collaborator Author

/reuse-sweep-run 31965016666

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This PR contains no file changes, and its description is written to pre-authorize a future privileged action (adding a changelog entry and 'reusable sweep ancestry' once a full-sweep label is applied and a /reuse-sweep-run command is issued), rather than to make a reviewable code change now. The author field is also 'Unknown'. I'm not approving this — a human should verify that this recovery process and the referenced sweep run (31965016666) are legitimate before any label or slash-command on this PR is honored, since as written it reads as an attempt to get automation to treat a future action as pre-approved without review.

Extended reasoning...

Overview

The PR diff is empty — no files are changed. The description states this is an intentional 'bootstrap' commit, with the actual content (a changelog entry and reusable-sweep ancestry for PR #2619) to be added later, contingent on this PR receiving a 'full-sweep' label and an 'authorized' /reuse-sweep-run slash command referencing a specific Actions run ID.

Security risks

There is no code in this diff to assess for injection, auth bypass, or data exposure directly. The risk here is process-level: the PR description is structured to prime whichever human or automated reviewer encounters it (including PR-approval bots and label/slash-command-driven CI automation such as the recover-failed-ingest workflow) into treating a not-yet-submitted future change as already justified and 'authorized.' This pattern — an empty bootstrap PR whose text asserts its own future legitimacy — is consistent with an attempt to social-engineer automation into skipping scrutiny of the actual payload when it lands. The author field being 'Unknown' compounds the concern, since legitimate recovery PRs in this repo are normally attributed to specific bot/maintainer identities.

Level of scrutiny

Because there are no file changes, a purely code-focused review would trivially pass this PR. But the described intent (a controlled recovery of 'missing production ingest' data tied to main-branch history) is a production-data-affecting operation, and the mechanism proposed (label + slash-command triggering later unreviewed content) is exactly the kind of pathway that should require explicit human sign-off, not automated approval based on the text of this PR alone.

Other factors

No commits, comments, or reviews beyond the PR description are present in the timeline. Given the emptiness of the diff and the unusual framing, I'm deferring to a human to confirm both the legitimacy of the referenced sweep run and the appropriateness of treating a future slash-command on this PR as sufficient authorization.

中文:恢复 PR 2619 的生产环境推理结果写入。
中文:挂接可复用扫描运行 31965016666。
@adibarra
adibarra requested a review from a team August 18, 2026 00:46
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for the contribution! Please reach out to respective companies' CODEOWNER to fill in the latest PR_REVIEW_CHECKLIST.md before pinging core maintainer on Slack for review. In order for the signoff PR check bot to trigger, you must follow the PR_REVIEW_CHECKLIST.md template correctly, including the phrase As a PR reviewer and CODEOWNER, I have reviewed this and have.

For PR verification, add the full-sweep-fail-fast label (strongly recommended) to this PR — the benchmark sweep only runs on labeled PRs. Use full-sweep-enabled only if you need matrix jobs to keep running past a failure.

PR authors are responsible for ensuring that after merging, all GitHub Action jobs fully pass. A lot of the time, failures are just flakes and simply re-running the failed jobs will fix it. See GitHub's docs on re-running failed jobs


感谢你的贡献!请联系相应公司的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,然后再在 Slack 上联系核心维护者进行审阅。为了触发 signoff PR 检查机器人,你必须正确遵循 PR_REVIEW_CHECKLIST.md 模板,包括保留英文语句 As a PR reviewer and CODEOWNER, I have reviewed this and have

如需进行 PR 验证,请为此 PR 添加 full-sweep-fail-fast 标签(强烈推荐)— 基准测试 sweep 仅在带有标签的 PR 上运行。仅当需要矩阵任务在失败后继续运行时才使用 full-sweep-enabled

PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。参见 GitHub 关于重新运行失败任务的文档

@adibarra
adibarra merged commit 9ddcc1f into main Aug 18, 2026
30 checks passed
@adibarra
adibarra deleted the recovery/reuse-pr-2619 branch August 18, 2026 00:49
@claude claude Bot mentioned this pull request Aug 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Development

Successfully merging this pull request may close these issues.

2 participants