docs: mark bug-1494 fully fixed (worker rejoin slots update, bug-1511)

bug-1510 (dispatch-fail re-PEND, 6928f74) + bug-1511 (sched_update_workers
in-place update on re-push, 1a2bd3f) together close bug-1494. Update
left_scheduler_work.md and buglog.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
lei.chen 2026-08-11 06:15:11 +00:00
parent 1a2bd3f6a8
commit 7720d15cf9
3 changed files with 30 additions and 11 deletions

View file

@ -14972,5 +14972,27 @@
],
"occurrences": 1,
"last_seen": "2026-08-11"
},
{
"id": "bug-1511",
"timestamp": "2026-08-11",
"error_message": "controller 重启 / worker 死亡后,worker 重新 join(slots=8)但 scheduler 资源视图仍 slots=0,PEND 作业永不派发(即使 worker 已恢复容量)",
"file": "src/scheduler/src/scheduler.c (sched_update_workers)",
"root_cause": "worker 死亡时 mark_worker_unavail 正确清零 slots=0;worker 重新 join 时 controller 推送新 worker(slots=8),scheduler 的 sched_update_workers 创建新 worker 后 sched_add_worker 用 key_add 遇 EEXIST 丢弃新对象,scheduler 永久保留旧的 slots=0 worker → 分配失败(unsatisfy slots total 0)→ 全部 PEND。与 bug-1510(dispatch-fail 不重试)同属 bug-1494 症状的另一根因。",
"fix": "sched_update_workers 对已存在 worker 就地更新:交换新 resvals/resInUse/status 到现有 worker,释放被丢弃对象(注意 w->name 是 makeString 驻留串不能 free,否则 ASAN bad-free);NULL-guard make_sched_worker。集群验证:scheduler 在 worker 死亡时启动(slots=0)→ worker 重新 join(slots=8)→ 卡住 PEND 作业全部派发完成,无 ASAN。commit 1a2bd3f。",
"tags": [
"scheduler",
"pend",
"slots",
"worker-rejoin",
"key_add-eexist",
"fixed"
],
"related_bugs": [
"bug-1494",
"bug-1510"
],
"occurrences": 1,
"last_seen": "2026-08-11"
}
]

View file

@ -7380,3 +7380,4 @@
| 09:00 | Session end: 10 writes across 6 files (frpcdbg_mon.sh, frpc_prod.toml, frpc_mon.sh, frpc_watchdog.sh, frpc-watchdog.sh) | 2 reads | ~2247 tok |
| 09:01 | Session end: 10 writes across 6 files (frpcdbg_mon.sh, frpc_prod.toml, frpc_mon.sh, frpc_watchdog.sh, frpc-watchdog.sh) | 2 reads | ~2247 tok |
| 03:2x | Merged js branch sched.c NULL guard (commit 5657fca); fixed bug-1510 scheduler dispatch-fail re-PEND (commit 6928f74) | src/controller/sched.c, src/scheduler/{src,include,testsuite} | verified full job lifecycle on t1 cluster (job PEND->RUN->EXIT, all daemons healthy, 0 ASAN) | ~120k tok |
| 06:1x | Fixed bug-1494 sub-2: scheduler kept stale slots=0 after worker rejoin (key_add EEXIST dropped fresh worker); fixed sched_update_workers in-place update (commit 1a2bd3f), verified jobs dispatch after worker rejoin | src/scheduler/src/scheduler.c | verified on t1 (worker dead->rejoin slots 0->8, PEND jobs dispatch, no ASAN) | ~150k tok |