[Klaud Cold] Update qwen3.5-fp4-gb300-dynamo-sglang SGLang image to v0.5.19-cu130 / 将 qwen3.5-fp4-gb300-dynamo-sglang 的 SGLang 镜像更新至 v0.5.19-cu130 - #2909
Conversation
Update qwen3.5-fp4-gb300-dynamo-sglang from lmsysorg/sglang:v0.5.14-cu130 to lmsysorg/sglang:v0.5.19-cu130 (Docker Hub manifest digest sha256:d6e7288627be8b02be88e4bba38e73f6d50e2826869f753c13a4c4385ab3eda9, linux/arm64 present). The four srt-slurm recipes keep the `container: "dynamo-sglang"` alias, which runners/launch_gb300-nv.sh maps to the master image's squash file, so model, topology, workloads and recipe references are unchanged. 将 qwen3.5-fp4-gb300-dynamo-sglang 的镜像从 lmsysorg/sglang:v0.5.14-cu130 更新至 lmsysorg/sglang:v0.5.19-cu130(Docker Hub 清单摘要 sha256:d6e7288627be8b02be88e4bba38e73f6d50e2826869f753c13a4c4385ab3eda9, 包含 linux/arm64)。四个 srt-slurm 配方继续使用 `container: "dynamo-sglang"` 别名,runners/launch_gb300-nv.sh 会将其映射到主配置镜像的 squash 文件, 因此模型、拓扑、负载和配方引用均保持不变。 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
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 For PR verification, add the 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 模板,包括保留英文语句 如需进行 PR 验证,请为此 PR 添加 PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。参见 GitHub 关于重新运行失败任务的文档 |
|
Dispatch. Draft PR opened with the single-line image bump ( Next step: monitor to completion and compare with the published 2026-08-10 baseline (run 29473335540). 派发。 已创建仅修改一行镜像的草稿 PR( 下一步:监控至完成,并与 2026-08-10 发布的基线(运行 29473335540)对比。 |
Dynamo 1.1.0 (installed at runtime from the recipes' dynamo.version) imports sglang.srt.server_args_config_parser, which sglang v0.5.19 moved to sglang.srt.utils.server_args_config_parser (sgl-project/sglang#36681). The prefill worker exited with ModuleNotFoundError before serving. No stable Dynamo release carries the fix (ai-dynamo/dynamo#14054, #14234 are on main; the release/1.4.2 backport #14064 was closed). The ai-dynamo 1.5.0.dev20260908 wheel ships dynamo/sglang/_compat.py with the new import path, so pin it in the four qwen3.5 GB300 FP4 8k1k recipes and mirror it in the family's router metadata. Dynamo 1.1.0(由配方的 dynamo.version 在运行时安装)导入 sglang.srt.server_args_config_parser,而 sglang v0.5.19 已将其移至 sglang.srt.utils.server_args_config_parser(sgl-project/sglang#36681), 导致 prefill worker 在启动前因 ModuleNotFoundError 退出。目前没有稳定版 Dynamo 包含该修复(ai-dynamo/dynamo#14054、#14234 仅在 main 分支; release/1.4.2 的回移 #14064 已关闭)。ai-dynamo 1.5.0.dev20260908 wheel 自带使用新导入路径的 dynamo/sglang/_compat.py,因此在四个 qwen3.5 GB300 FP4 8k1k 配方中固定该版本,并同步更新该配置族的路由器元数据。 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Initial attempt failed → Repair 1/5 dispatched.
初始尝试失败 → 已派发修复 1/5。
|
|
Repair 1/5 progress. Run https://github.com/SemiAnalysisAI/InferenceX/actions/runs/34304865256 is past the previous failure point: the Dynamo
修复 1/5 进展。 运行 https://github.com/SemiAnalysisAI/InferenceX/actions/runs/34304865256 已越过先前的失败点:固定 Dynamo
|
|
Repair 1/5 progress: 3 of 4 benchmark points and 3 of 4 evals passed. Run https://github.com/SemiAnalysisAI/InferenceX/actions/runs/34304865256.
修复 1/5 进展:4 个基准点中的 3 个、4 个评测中的 3 个已通过。 运行 https://github.com/SemiAnalysisAI/InferenceX/actions/runs/34304865256。
|
Append the perf-changelog.yaml entry for qwen3.5-fp4-gb300-dynamo-sglang (image lmsysorg/sglang:v0.5.19-cu130, Dynamo 1.5.0.dev20260908) with the PR link, preserving all prior bytes. 为 qwen3.5-fp4-gb300-dynamo-sglang(镜像 lmsysorg/sglang:v0.5.19-cu130, Dynamo 1.5.0.dev20260908)追加 perf-changelog.yaml 条目并附 PR 链接, 保留所有既有字节。 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Claude finished @Klaud-Cold's task in 1m 1s —— View job ReviewLGTM - no blocking issues found Verified: |
|
Repair 1/5 passed → final full sweep started.
修复 1/5 通过 → 最终全量 sweep 已启动。
|
There was a problem hiding this comment.
Looks good, straightforward config bump. Verified the dynamo.version/router.version pin to 1.5.0.dev20260908 is applied consistently across all four sibling recipes referenced by the qwen3.5-fp4-gb300-dynamo-sglang family in configs/nvidia-master.yaml (lowlat_0, maxtpt_0/1/2 — no sibling recipe missed), the image bump to v0.5.19-cu130 is only in the master config as intended (recipes use container: dynamo-sglang), and the perf-changelog.yaml entry is appended at the tail without disturbing prior entries.
Extended reasoning...
Overview
This PR bumps the Qwen3.5-397B-A17B FP4 GB300 disaggregated Dynamo-SGLang recipe family's SGLang image from v0.5.14-cu130 to v0.5.19-cu130, and in lockstep pins dynamo.version/router.version from 1.1.0 to the dev build 1.5.0.dev20260908 across the four 8k1k STP recipe YAMLs and the corresponding configs/nvidia-master.yaml entry, plus an appended perf-changelog.yaml entry referencing PR #2909.
Security risks
None. This is a pure configuration/version-pin change to internal benchmark recipe YAML and a changelog file — no code paths, auth, crypto, or permission logic are touched.
Level of scrutiny
Low. The change is mechanical and self-contained: a version bump plus a compatibility pin, fully confirmed by diffing the actual files. I cross-checked that the four recipe files touched are exactly the four referenced by configs/nvidia-master.yaml's qwen3.5-fp4-gb300-dynamo-sglang scenarios (lowlat_0, maxtpt_0/1/2), so no sibling recipe in the family was missed, and that the image bump only needed to land in the master config (recipes reference container: dynamo-sglang, not the raw image tag).
Other factors
The bug hunter reported no findings, and the changelog entry is correctly appended at the file's tail in the established format used by sibling entries (matching the pattern of other version-bump entries, including omission of scenario-type for fixed-seq-len-only families). No CODEOWNERS restriction applies to these plain config/data files based on repository conventions for this recipe area, and the PR conversation timeline shows no outstanding CHANGES_REQUESTED or unaddressed third-party objections.
|
Final full sweep in progress (correction: the active
最终全量 sweep 进行中(更正:头部
|
CuTe DSL linear-attention backend switch / 切换 CuTe DSL 线性注意力后端
|
|
Claude finished @adibarra's task in 13m 37s —— View job Linear-attention backend A/B/C on v0.5.19 / v0.5.19 上的线性注意力后端 A/B/C 对比
|
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=34315044946 |
|
Termination: final full sweep failed on an out-of-scope CI blocker; closing this PR.
终止:最终全量 sweep 因超出范围的 CI 阻塞而失败;关闭本 PR。
|

Status / 状态
Current status: Stopped — final full sweep failed on a confirmed CI-infrastructure blocker that is outside this PR's edit scope. The image refresh itself works: Repair 1/5's targeted run passed 4/4 benchmark points and 4/4 gsm8k evals with +8.3% to +15.6% throughput per GPU versus the 2026-08-10 baseline. In the labeled sweep (https://github.com/SemiAnalysisAI/InferenceX/actions/runs/34315044946) the 1P1D benchmark completed but result processing crashed with
OSError: [Errno 36] File name too longbecause the shared multinode template appends_recipe-<fingerprint>to the result filename, pushing this family's 1P1D (conc1x4x8x16x32x64x256) aggregate name to 256 bytes (NAME_MAX is 255); the 5P1D and 6P1D benchmark jobs failed when pyxis could not pull thenginxfrontend image from Docker Hub (anonymous pull, error 23). No in-scope change can shorten the generated filename, so the sweep cannot pass for this family until the shared template/result-processing code is fixed. Disposition: sweep run cancelled, label removed, PR returned to draft and closed, remote branch deleted so the candidate can be retried after the shared fix lands. Repairs used: 1 of 5.Family:
configs/nvidia-master.yaml:qwen3.5-fp4-gb300-dynamo-sglang(Qwen3.5-397B-A17B NVFP4-V2, GB300, dynamo-sglang, disaggregated, 8k1k, no speculative decoding). Target cluster:gb300-nv(runnergb300→gb300-nv_0/1/2inconfigs/runners.yaml).Change:
image: lmsysorg/sglang:v0.5.14-cu130→lmsysorg/sglang:v0.5.19-cu130; recipes'dynamo.versionand the family'srouter.version1.1.0→1.5.0.dev20260908(Repair 1, see below) (Docker Hub manifest digestsha256:d6e7288627be8b02be88e4bba38e73f6d50e2826869f753c13a4c4385ab3eda9, pushed 2026-09-04, linux/arm64 present; releasev0.5.19published 2026-09-05). The four srt-slurm recipes underbenchmarks/multi_node/srt-slurm-recipes/sglang/qwen3.5/gb300-fp4/8k1k/disagg/stp/keepcontainer: "dynamo-sglang", whichrunners/launch_gb300-nv.shmaps to the master image's squash file, so no recipe edit is needed. Matrix generation at base and head differs only inimage(4 points, node counts 2/9/10/11, evals enabled). Every recipe server flag exists in v0.5.19 (--mamba-scheduler-strategyremains a deprecated alias of--mamba-radix-cache-strategy, as in v0.5.14).Green targeted benchmarks do not prove that global PR checks pass.
Baseline (published 2026-08-10)
GET /api/v1/benchmarks?model=Qwen-3.5-397B-A17B&date=2026-08-10&exact=true(noview), filtered to hardwaregb300, frameworkdynamo-sglang, precisionfp4, specnone, disagg, 8192/1024,single_turn;GET /api/v1/workflow-info?date=2026-08-10;GET /api/v1/evaluations?model=Qwen-3.5-397B-A17B&date=2026-08-10.lmsysorg/sglang:v0.5.14-cu130. Producer run for all 10 points: https://github.com/SemiAnalysisAI/InferenceX/actions/runs/29473335540/attempts/1 (head SHA7df19b5b7abd238d7663cce15bffeaa8891ad065, PR Qwen3.5 FP4 GB300 disaggregated Dynamo-SGLang: update SGLang to v0.5.14-cu130 and NVFP4-V2 / Qwen3.5 FP4 GB300 分离式 Dynamo-SGLang:将 SGLang 更新至 v0.5.14-cu130 并切换到 NVFP4-V2 #2238). Logical curve snapshot id 2289 is not a producer id.Initial attempt
lmsysorg/sglang:v0.5.19-cu130, commitebde675f2fa4519650be9c0349d12c9d75694bfa.main,inputs.ref=ebde675f2fa4519650be9c0349d12c9d75694bfa,fail-fast=true,klaud-run=true). Outcome: failure at 02:43 UTC.results_bmk/eval_results_allartifacts.ModuleNotFoundError: No module named 'sglang.srt.server_args_config_parser'raised fromdynamo/sglang/args.pyafter "Dynamo 1.1.0 installed". sglang v0.5.19 moved that module tosglang.srt.utils.server_args_config_parser(Move server args config parser under utils sgl-project/sglang#36681; the old path exists in v0.5.14–v0.5.18). Dynamo v1.1.0 through v1.4.2 (andrelease/1.4.2) still import the old path; the fix (fix(sglang): follow config parser module move ai-dynamo/dynamo#14054, #14234) is only onmainand in the1.5.0.dev*PyPI nightlies; backport PR #14064 was closed. The v0.5.19 squash image itself imported fine.Repair 1/5
lmsysorg/sglang:v0.5.19-cu130, commit30fbdb6a38ad300d4618dcdfefa467ef0fd69a86.main,inputs.ref=30fbdb6a38ad300d4618dcdfefa467ef0fd69a86,fail-fast=true,klaud-run=true).dynamo.version"1.1.0"→"1.5.0.dev20260908"in the four referenced recipes (8k1k_stp_lowlat_0/maxtpt_0/maxtpt_1/maxtpt_2.yaml);router.version"1.1.0"→"1.5.0.dev20260908"in the family's master entry so published router metadata matches the installed Dynamo. The srt-slurm producer installsai-dynamo-runtime==V ai-dynamo==Vfrom PyPI without the sglang extra, so the container's sglang stays v0.5.19. Theai_dynamo-1.5.0.dev20260908wheel containsdynamo/sglang/_compat.pyimportingsglang.srt.utils.server_args_config_parser; every othersglang.srtmodule it imports exists in the v0.5.19 tree (multimodal encode-server imports are try/except-guarded).ai-dynamo-runtimeships acp310-abi3 manylinux_2_28_aarch64wheel.results_bmk/agg_bmk.jsonhas 10 rows, every rowimage: lmsysorg/sglang:v0.5.19-cu130;eval_results_all/agg_eval_all.jsonhas 4 entries.tput_per_gpu):Wide-EP points (prefill DEP4 workers / 1 decode DEP16 worker):
All 10 points matched a baseline point; none excluded. Single-run measurements, no repeat; the two TPOT regressions are small and reported, not gated.
perf-changelog.yamlentry and start the final full sweep.Final full sweep
lmsysorg/sglang:v0.5.19-cu130, head278090e154fbbca8b653b284c51c56b40add9534(adds theperf-changelog.yamlentry; validatorutils/validate_perf_changelog.py --base-ref origin/main --head-ref HEADpassed locally, prior bytes preserved).gb300-nvpassed at 05:28 UTC; PR marked ready;full-sweep-enabledapplied as the sole sweep label.full-sweep-enabledlabel event;check-changelogpassed,setuprunning). https://github.com/SemiAnalysisAI/InferenceX/actions/runs/34315043758 and https://github.com/SemiAnalysisAI/InferenceX/actions/runs/34315044003 (ready-for-review events) were cancelled by the sweep concurrency group before any benchmark job ran.publication_valid: true). TheProcess resultstep then failed inutils/process_result.pywithOSError: [Errno 36] File name too long: 'agg_qwen3.5_8k1k_fp4_dynamo-sglang_prefill-tp4-…-nw1_decode-tp4-…-nw1_disagg-true_spec-none_conc1x4x8x16x32x64x256_gb300-nv_00_recipe-0190dba4907b78b3_sa-bench_isl_8192_osl_1024_conc16_gpus_8_ctx_4_gen_4.json'(256 bytes; the matchingpower_validation_…name is 269 bytes; Linux NAME_MAX is 255).benchmark-multinode-tmpl.ymlappends_recipe-${RECIPE_FINGERPRINT:0:16}toRESULT_FILENAMEwheneverrun-sweep.ymlsupplies a recipe fingerprint (since feat(ci): support additive append-only curve updates #2613, 2026-08-14); the manuale2e-tests.ymlpath passes no fingerprint, which is why the identical point produced a 232-byte name and passed in the targeted run. The published baseline predates the fingerprint suffix and no sweep has published this family since, so every labeled sweep of this family's 1P1D point will hit this regardless of image. Fixing it requires shared template/result-processing changes, which this PR must not touch.nginxfrontend container failed to start:pyxis: importing docker image: nginx … Authenticating with user: <anonymous> … Fetching image manifest list … pyxis: child … failed with error code: 23 … failed to import docker image. The recipes'frontend.nginx_container: nginxis pulled from Docker Hub by pyxis on the head node; the same pull succeeded for the 1P1D and 7P1D sweep jobs and for all four jobs of the targeted run, so this is a registry/network failure, not an image or recipe defect.conc…list or the_recipe-suffix) or move thenginxfrontend to the pre-imported squash alias, then let the planner retry this candidate.状态
当前状态: 已停止 —— 最终全量 sweep 因已确认的 CI 基础设施阻塞而失败,该问题超出本 PR 的编辑范围。 镜像更新本身可用:修复 1/5 的定向运行通过了 4/4 个基准点与 4/4 个 gsm8k 评测,每 GPU 吞吐相对 2026-08-10 基线提升 +8.3% 至 +15.6%。在带标签的 sweep(https://github.com/SemiAnalysisAI/InferenceX/actions/runs/34315044946)中,1P1D 基准已跑完,但结果处理因
OSError: [Errno 36] File name too long崩溃:共享的多节点模板会在结果文件名后追加_recipe-<fingerprint>,使该配置族 1P1D(conc1x4x8x16x32x64x256)的聚合文件名达到 256 字节(NAME_MAX 为 255);5P1D 与 6P1D 基准作业则因 pyxis 无法从 Docker Hub 拉取nginx前端镜像(匿名拉取,错误码 23)而失败。范围内没有任何改动能缩短生成的文件名,因此在共享模板/结果处理代码修复之前,该配置族的 sweep 无法通过。处置:取消 sweep 运行、移除标签、PR 转回草稿并关闭、删除远程分支,以便共享修复落地后可重试该候选。已用修复次数:1/5。配置族:
configs/nvidia-master.yaml:qwen3.5-fp4-gb300-dynamo-sglang(Qwen3.5-397B-A17B NVFP4-V2,GB300,dynamo-sglang,分离式,8k1k,无投机解码)。目标集群:gb300-nv(configs/runners.yaml中 runnergb300→gb300-nv_0/1/2)。变更:
image: lmsysorg/sglang:v0.5.14-cu130→lmsysorg/sglang:v0.5.19-cu130;配方的dynamo.version与配置族的router.version1.1.0→1.5.0.dev20260908(修复 1,见下文)(Docker Hub 清单摘要sha256:d6e7288627be8b02be88e4bba38e73f6d50e2826869f753c13a4c4385ab3eda9,2026-09-04 推送,包含 linux/arm64;v0.5.19发布于 2026-09-05)。benchmarks/multi_node/srt-slurm-recipes/sglang/qwen3.5/gb300-fp4/8k1k/disagg/stp/下的四个 srt-slurm 配方继续使用container: "dynamo-sglang"别名,runners/launch_gb300-nv.sh会将其映射到主配置镜像的 squash 文件,因此无需修改配方。基线与头部提交生成的矩阵仅image字段不同(4 个点,节点数 2/9/10/11,启用评测)。配方中的所有服务端参数在 v0.5.19 中均存在(--mamba-scheduler-strategy与 v0.5.14 一样仍是--mamba-radix-cache-strategy的弃用别名)。定向基准测试通过并不代表全局 PR 检查通过。
基线(发布日期 2026-08-10)
GET /api/v1/benchmarks?model=Qwen-3.5-397B-A17B&date=2026-08-10&exact=true(不带view),筛选硬件gb300、框架dynamo-sglang、精度fp4、投机解码none、分离式、8192/1024、single_turn;GET /api/v1/workflow-info?date=2026-08-10;GET /api/v1/evaluations?model=Qwen-3.5-397B-A17B&date=2026-08-10。lmsysorg/sglang:v0.5.14-cu130。全部 10 个点的生产运行:https://github.com/SemiAnalysisAI/InferenceX/actions/runs/29473335540/attempts/1(头部 SHA7df19b5b7abd238d7663cce15bffeaa8891ad065,PR Qwen3.5 FP4 GB300 disaggregated Dynamo-SGLang: update SGLang to v0.5.14-cu130 and NVFP4-V2 / Qwen3.5 FP4 GB300 分离式 Dynamo-SGLang:将 SGLang 更新至 v0.5.14-cu130 并切换到 NVFP4-V2 #2238)。逻辑曲线快照 id 2289 不是生产运行 id。初始尝试
lmsysorg/sglang:v0.5.19-cu130,提交ebde675f2fa4519650be9c0349d12c9d75694bfa。main派发,inputs.ref=ebde675f2fa4519650be9c0349d12c9d75694bfa,fail-fast=true,klaud-run=true)。结果:失败(02:43 UTC)。results_bmk/eval_results_all产物为空。dynamo/sglang/args.py抛出ModuleNotFoundError: No module named 'sglang.srt.server_args_config_parser'。sglang v0.5.19 已将该模块移至sglang.srt.utils.server_args_config_parser(Move server args config parser under utils sgl-project/sglang#36681;旧路径存在于 v0.5.14–v0.5.18)。Dynamo v1.1.0 至 v1.4.2(及release/1.4.2)仍导入旧路径;修复(fix(sglang): follow config parser module move ai-dynamo/dynamo#14054、#14234)仅在main分支及 PyPI 的1.5.0.dev*每日构建中;回移 PR #14064 已关闭。v0.5.19 squash 镜像本身可正常导入。修复 1/5
lmsysorg/sglang:v0.5.19-cu130,提交30fbdb6a38ad300d4618dcdfefa467ef0fd69a86。main派发,inputs.ref=30fbdb6a38ad300d4618dcdfefa467ef0fd69a86,fail-fast=true,klaud-run=true)。8k1k_stp_lowlat_0/maxtpt_0/maxtpt_1/maxtpt_2.yaml)的dynamo.version"1.1.0"→"1.5.0.dev20260908";配置族主配置条目的router.version"1.1.0"→"1.5.0.dev20260908",使发布的路由器元数据与实际安装的 Dynamo 一致。srt-slurm 生产端从 PyPI 安装ai-dynamo-runtime==V ai-dynamo==V(不带 sglang extra),容器内 sglang 保持 v0.5.19。ai_dynamo-1.5.0.dev20260908wheel 包含导入sglang.srt.utils.server_args_config_parser的dynamo/sglang/_compat.py;其导入的其他所有sglang.srt模块均存在于 v0.5.19 源码树中(多模态 encode-server 导入有 try/except 保护)。ai-dynamo-runtime提供cp310-abi3 manylinux_2_28_aarch64wheel。results_bmk/agg_bmk.json共 10 行,每行image: lmsysorg/sglang:v0.5.19-cu130;eval_results_all/agg_eval_all.json共 4 条。tput_per_gpu):宽 EP 点(prefill DEP4 worker / 1 个 decode DEP16 worker):
全部 10 个点均匹配到基线点;无排除项。均为单次测量、未重复;两处 TPOT 轻微回退仅作报告,不设门限。
perf-changelog.yaml条目并启动最终全量 sweep。最终全量 sweep
lmsysorg/sglang:v0.5.19-cu130,头部278090e154fbbca8b653b284c51c56b40add9534(新增perf-changelog.yaml条目;本地utils/validate_perf_changelog.py --base-ref origin/main --head-ref HEAD校验通过,既有字节完整保留)。gb300-nv容量检查通过;PR 标记为 ready;添加full-sweep-enabled作为唯一 sweep 标签。full-sweep-enabled标签事件触发;check-changelog已通过,setup运行中)。https://github.com/SemiAnalysisAI/InferenceX/actions/runs/34315043758 与 https://github.com/SemiAnalysisAI/InferenceX/actions/runs/34315044003(ready-for-review 事件)在任何基准作业运行前即被 sweep 并发组取消。publication_valid: true)。随后Process result步骤在utils/process_result.py中因OSError: [Errno 36] File name too long: 'agg_qwen3.5_8k1k_fp4_dynamo-sglang_prefill-tp4-…-nw1_decode-tp4-…-nw1_disagg-true_spec-none_conc1x4x8x16x32x64x256_gb300-nv_00_recipe-0190dba4907b78b3_sa-bench_isl_8192_osl_1024_conc16_gpus_8_ctx_4_gen_4.json'失败(256 字节;对应的power_validation_…文件名为 269 字节;Linux NAME_MAX 为 255)。只要run-sweep.yml提供配方指纹(自 feat(ci): support additive append-only curve updates #2613,2026-08-14 起),benchmark-multinode-tmpl.yml就会在RESULT_FILENAME后追加_recipe-${RECIPE_FINGERPRINT:0:16};手动e2e-tests.yml路径不传指纹,因此同一点在定向运行中生成 232 字节的文件名并通过。已发布基线早于指纹后缀的引入,此后该配置族没有任何 sweep 发布过数据,因此无论镜像如何,该配置族 1P1D 点在任何带标签的 sweep 中都会触发此问题。修复需要改动共享模板/结果处理代码,本 PR 不得触碰。nginx前端容器无法启动而终止:pyxis: importing docker image: nginx … Authenticating with user: <anonymous> … Fetching image manifest list … pyxis: child … failed with error code: 23 … failed to import docker image。配方的frontend.nginx_container: nginx由头节点上的 pyxis 从 Docker Hub 拉取;同样的拉取在 1P1D、7P1D sweep 作业及定向运行的全部四个作业中均成功,因此这是镜像仓库/网络故障,而非镜像或配方缺陷。conc…列表或_recipe-后缀),或将nginx前端改用预导入的 squash 别名,然后让规划器重试该候选。🤖 Generated with Claude Code