yuvu node exec 无法进入模型运行时容器:容器名被二次拼前缀导致 container not found #1
Labels
No labels
P0
P1
P2
P3
blocked
fixed-pending-verify
frozen-hold
manual-fallowup
needs-fix
rewrite
verified
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
xm/yuvuCli#1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
现象
传入真实容器名后又被拼一次
yuvu-前缀,得到yuvu-yuvu-runtime-<session>→ not found。代码路径:
yuvuCli/internal/cli/node.go的nodeExec→client.ExecInstance(instanceID, ...);节点侧解析/报错来自yuvuNode/internal/agent/dockerexec/executor.go(ErrContainerNotFound)。影响
模型 runtime 容器(
runtime_sessions.execution_container_name = yuvu-runtime-<session-id>,实例yuvu-runtime-01a0dce3-5e34-7a75-9349-d8b8ed8bf0fb)完全无法进入,导致:/metrics;nvidia-smi(adapter 容器里根本没装)看 GPU 利用率/温度/降频;期望
yuvu node exec --node nas --container yuvu-runtime-<id> -- nvidia-smi;yuvu node runtime exec <session-id> -- <cmd>/yuvu node runtime metrics <session-id>;SpecPatch要求yuvu.agent.managed标签,建议确认 runtime 容器是否带该标签);--timeout≤300s、--max-output≤4MiB 的硬上限写进yuvu node exec --help(目前只在 usage 报错里出现)。关联
✅ 复验通过并已合入
main(合并提交88d67e1,分支fix/cli-1tipbe394ae保留)门禁:lane worktree 与合并树各跑一次
make check(vendor-check + quality + shell-check + publish-scope-check + test),两次 rc=0。反向验证(变异必红 → 还原 sha256 一致 → 复绿)
nodeInstanceIDFromContainer()的单次strings.TrimPrefix(container, "yuvu-")改成剥两层前缀--- FAIL: TestNodeExecContainerFlagStripsExactlyOnePrefix→node_exec_container_test.go:31: single-prefix strip: instance="node", want "yuvu-node"sha256(internal/cli/node.go)=c2cb1f14778a20668c1678d6eb2495e37e318aad323b60c2c5c6bbd1c1645040与变异前逐字节一致,工作树干净,复绿请验证这几点(真机)
yuvu node exec --container yuvu-runtime-01a0dce3 -- nvidia-smi现在命中节点实例runtime-01a0dce3(此前二次拼前缀 → container not found);--container yuvu-yuvu-node只剥一层 → 实例yuvu-node(不是node);--container与位置实例 id 互斥、非yuvu-前缀报错、yuvu-空后缀报错;node exec --help/-h/-help仍列出 300s / 4MiB 上限。独立复验 + 合并完成(issue 保持 open,等真机验收)
分支
fix/cli-1tip8f8a07a(b 轮:新增yuvu node runtime exec入口,把 core 侧runtime-<session>实例命名映射到 CLI)→ 已合并main=ac7130a(合并树门禁复跑亦 rc=0)。门禁(verifier 独立复跑,yuvuCli 工作树 HEAD=8f8a07a)
反向验证(回退关键映射,新测试必须红)
还原后
sha256sum internal/cli/node.go=8a90386b7ebcd76fc09148fbaf4d6886ef7441ccf67ed51a36909d2e35ebe1f1==git show HEAD:internal/cli/node.go⇒ 复绿 rc=0。请验证这几点(真机)
yuvu node runtime exec <session-id> -- nvidia-smi能真正进入模型运行时容器并返回 stdout/stderr;runtime-<session>/yuvu-runtime-<session>;--timeout≤300、--max-output≤4194304,超出给可读错误;--help输出含 "maximum 300" / "maximum 4194304" / "runtime exec"。验证结论(2026-10-04):此问题的修复已进入 yuvuCli main。CLI 现在支持
yuvu node exec --container yuvu-<name> -- <command>,并提供yuvu node runtime exec <session-id> -- <command>;针对完整容器名解析、runtime session 映射及帮助中 timeout/output 上限的回归测试通过(go test ./internal/cli -run TestNodeExecContainer -count=1)。main 上包含该修复的 Woodpecker pipeline #37/#38 均成功。按 issue 的功能验收条件关闭。