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:
lei.chen 2026-08-13 09:16:49 +00:00
parent ac6131dbd7
commit 86265fb7bc
3 changed files with 22 additions and 1 deletions

View file

@ -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"
}
]