docs: mark PEND reason end-to-end done (bug-1513), note main_reason follow-up
- aibot_poc_investiagting.md: PEND reason 调查完成 + 转换层补全;新增遗留项(main_reason 恒 0) - buglog.json: bug-1513 entry - memory.md: session log Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
ac6131dbd7
commit
86265fb7bc
3 changed files with 22 additions and 1 deletions
|
|
@ -15018,5 +15018,24 @@
|
|||
],
|
||||
"occurrences": 1,
|
||||
"last_seen": "2026-08-13"
|
||||
},
|
||||
{
|
||||
"id": "bug-1513",
|
||||
"timestamp": "2026-08-13",
|
||||
"error_message": "PEND reason 字段 pending_reason 声明了但恒为空:scheduler 已计算并 setpreason 到 controller,controller 已存 job->pend_reasons,但 API/SSE 查询作业永远拿不到(MCP 无法解释'为什么作业在等')",
|
||||
"file": "src/controller/apiserver.c + src/frontend/apiserver/backend/{convert,convert_pure}.go + models/jobs.go",
|
||||
"root_cause": "两个缺口叠加:(1) controller 的 apiserver_job_hook_fun 不处理 HOOK_DETAIL_SETPREASON——setpreason 事件不触发任何 JOB_* 推送,apiserver 永远收不到 pend_reasons 变化的作业(JOB_NEW/UPDATE/START/EXIT 才推);(2) apiserver 转换层 cJobToModel/rawJobToModel 从不读 C 的 xce_job_t.pend_reasons,且 JOB_DEFAULT_COLUMN 不含 pending_reason(默认查询不选该字段)。",
|
||||
"fix": "(1) apiserver_job_hook_fun 加 case HOOK_DETAIL_SETPREASON 复用 apiserver_job_update_fun 推 updateJob;(2) cJobToModel/rawJobToModel 提取 pend_reasons(main_reason + host/res reasons)marshal 为 JSONB 塞进 models.JobInfo.PendingReason;JOB_DEFAULT_COLUMN 加 pending_reason。集群验证:resreq type==nosuchhost 作业 PEND 返回 host_reasons [{t1,3},{t2,3},{t3,3}](3=MATCH_FAIL)。commit ac6131d。遗留:main_reason 恒 0(allocator 只加明细 reason),修法待定。",
|
||||
"tags": [
|
||||
"apiserver",
|
||||
"pend-reason",
|
||||
"setpreason-hook",
|
||||
"conversion-gap",
|
||||
"scheduler-agent",
|
||||
"fixed"
|
||||
],
|
||||
"related_bugs": [],
|
||||
"occurrences": 1,
|
||||
"last_seen": "2026-08-13"
|
||||
}
|
||||
]
|
||||
|
|
@ -7398,3 +7398,4 @@
|
|||
|------|--------|---------|---------|--------|
|
||||
| 02:1x | Added human-readable jobid (job_id_human/human_id) to apiserver responses (backend.FormatJobID reuse); renamed SSE perm event:subscribe->event:view; updated docs (left_scheduler_work, design doc v1.3, cerebrum) | src/frontend/apiserver, src/frontend/schedulerclient, docs | verified live (submit + get_job return 1-0-... form); all tests pass; pushed | ~90k tok |
|
||||
| 06:21 | bug-1512 多 worker 过派发修复:handler.c code<0 才 re-PEND;24 作业 8/8/8 全 DONE;单测+提交 e4aaef4 | handler.c test_handlers.c | fixed+verified | ~2k |
|
||||
| 09:1x | PEND reason 全链路补全(bug-1513):controller SETPREASON hook 推送 + apiserver 转换层填充 + JOB_DEFAULT_COLUMN;集群验证 resreq type==nosuchhost → host_reasons [{t1,3},{t2,3},{t3,3}];提交 ac6131d | apiserver.c convert.go convert_pure.go convert_test.go models/jobs.go | verified | ~40k |
|
||||
|
|
|
|||
|
|
@ -45,7 +45,8 @@ scheduler 侧已有 PEND 原因(`PREASON_NO_RESOURCE`、`PREASON_MATCH_FAIL`
|
|||
|
||||
## 四、待办
|
||||
- [x] 检查 PEND reason 全链路(scheduler → apiserver)是否暴露齐全(2026-08-13 完成,结论:只差 apiserver Go 转换层)
|
||||
- [ ] 补 apiserver 转换层:`cJobToModel` / `rawJobToModel` 填充 `PendingReason`(convert.go / convert_pure.go)
|
||||
- [x] 补 apiserver 转换层:`cJobToModel` / `rawJobToModel` 填充 `PendingReason`(convert.go / convert_pure.go)—— **ac6131d 完成并集群验证**
|
||||
- [ ] **(新)scheduler `main_reason` 恒为 0**:allocator 只加 host/res 明细 reason(`add_job_preason` host≠NULL 时只走 add_host/add_res 分支),从不设 main_reason → API 显示 `main_reason:0 / "unknown(0)"`。host_reasons(如 `[{t1,3},{t2,3},{t3,3}]`)信息完整可用;要不要让 `add_job_preason` 在 main_reason==0 时补首个 code,待定(需重建 lib+scheduler+controller)
|
||||
- [ ] ① 自愈闭环:失败归因分类器 + 自愈复跑流程
|
||||
- [ ] ② 实时叙事 prompt/模板
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue