docs: record bug-1512 multi-worker over-dispatch fix + wolf bookkeeping
- left_scheduler_work.md: bug-1494 子问题三(bug-1512)已修复,多 worker 8/8/8 均匀分布验证 - buglog.json: bug-1512 entry(controller code=0 成功 ack 被误判为失败) - cerebrum.md: Do-Not-Repeat — notify 带 outcome code 字段时需按 controller 侧实际值做 gate - memory.md: session log Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
e4aaef4b3b
commit
7b7294dd1e
4 changed files with 30 additions and 1 deletions
|
|
@ -14994,5 +14994,29 @@
|
|||
],
|
||||
"occurrences": 1,
|
||||
"last_seen": "2026-08-11"
|
||||
},
|
||||
{
|
||||
"id": "bug-1512",
|
||||
"timestamp": "2026-08-13",
|
||||
"error_message": "多 worker 无法正常使用:t1/t2/t3 三 worker 下提交 24 个作业跑出 38 个实例,且堆积在第一个 worker(t1),分布 44:8:0 / 13:3:8 等严重不均",
|
||||
"file": "src/scheduler/src/handler.c (sched_handle_notify jobDispatchFail case)",
|
||||
"root_cause": "controller handle_jobdispatch (controller/job.c) 对每个派发的作业都发 NotifyData_data_jobDispatchFail:失败分支 code<0,但成功分支 else 也调 notify_dispatch(jobid, 0)——code=0 是成功 ack。scheduler sched_handle_notify 之前(bug-1510 修复 6928f74)无 code 判断,把成功 ack 也当失败 sched_requeue_pend_job → 每个成功派发的作业立即 re-PEND → 下次 session 重新选举 → 再派发,原实例继续跑 → 重复实例/过派发。是 bug-1510 修复引入的回归。",
|
||||
"fix": "sched_handle_notify 的 jobDispatchFail case 加 code 判断:fail->code >= 0 是成功 ack,当 no-op 消费(作业已在 commit 时标记 RUN);只有 code < 0 才 sched_requeue_pend_job。加白盒单测 test_handle_dispatch_fail_requeues_only_on_negative_code(code=0 保持 RUN、code<0 re-PEND),原 15 测试全过。集群验证(新 scheduler 部署 t1):24 个 sleep-300 作业均匀 8/8/8 分布、零重复、全部 DONE;dispatchFail 日志从 38 降到 0。commit e4aaef4。",
|
||||
"tags": [
|
||||
"scheduler",
|
||||
"over-dispatch",
|
||||
"duplicate",
|
||||
"multi-worker",
|
||||
"dispatchfail",
|
||||
"code-0-ack",
|
||||
"regression",
|
||||
"fixed"
|
||||
],
|
||||
"related_bugs": [
|
||||
"bug-1494",
|
||||
"bug-1510"
|
||||
],
|
||||
"occurrences": 1,
|
||||
"last_seen": "2026-08-13"
|
||||
}
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue