fix(configs): add worker-builtin load indices missing from resources.yaml

worker/src/resource_sync.c init_builtin_load_indices registers 11 load
indices (r15s/r1m/r15m/ut/pg/ls/it/swp/mem/tmp/io) but resources.yaml only
defined r1m/r15s/mem/tmp. The 7 missing ones (r15m/ut/pg/ls/it/swp/io) caused
controller "update_resval: Success" ERRORs and scheduler "unknown resource in
per-worker resvals update" warnings, leaving the worker resource view
incomplete. Add the 7 definitions matching the existing r1m/r15s pattern.

Docs: log bug-1494 (all jobs PEND, scheduler never dispatches; after this
config fix jobs still PEND — remaining suspect is the scheduler→controller
join path after restart), update design doc + verification manual known-issue
tables and root CLAUDE.md cluster-verification status.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
lei.chen 2026-08-02 07:36:03 +00:00
parent 226259a52b
commit 62dee0edc1
6 changed files with 130 additions and 5 deletions

View file

@ -31,6 +31,61 @@ resources:
order: decrease
description: "15-second load average (built-in dynamic load index)"
# Remaining worker-builtin load indices (worker/src/resource_sync.c
# init_builtin_load_indices): without these definitions, every worker
# resval update for them is dropped (controller "update_resval: Success"
# ERROR + scheduler "unknown resource ... in per-worker resvals update"),
# leaving the worker's resource view incomplete so the scheduler cannot
# allocate any job (all stay PEND). bug-1492.
- name: r15m
type: numeric
interval: 60
consumable: false
order: decrease
description: "15-minute load average (built-in dynamic load index)"
- name: ut
type: numeric
interval: 60
consumable: false
order: decrease
description: "user-mode CPU time ratio (built-in dynamic load index)"
- name: pg
type: numeric
interval: 60
consumable: false
order: decrease
description: "page rate (built-in dynamic load index)"
- name: ls
type: numeric
interval: 60
consumable: false
order: decrease
description: "login session count (built-in dynamic load index)"
- name: it
type: numeric
interval: 60
consumable: false
order: decrease
description: "idle time ratio (built-in dynamic load index)"
- name: swp
type: numeric
interval: 60
consumable: false
order: decrease
description: "swap usage (built-in dynamic load index)"
- name: io
type: numeric
interval: 60
consumable: false
order: decrease
description: "I/O wait ratio (built-in dynamic load index)"
- name: tmp
type: numeric
interval: 60

View file

@ -338,7 +338,9 @@ go run /tmp/demo.go
| 问题 | 状态 | Bug |
|------|------|-----|
| **job control (cancel/hold/release) HTTP 500** | 未修。请求未达 controller(controller 日志无 control 事件)。已修 `job_status` int64 断言(从 "Invalid job_status" 变为 500),500 本体待排查 | bug-1490 |
| **作业全部 PEND(不调度)** | 未修。scheduler 日志 0 job 行。已补 resources.yaml 缺失的 7 个 worker 负载指标(r15m/ut/pg/ls/it/swp/io)+ 重建 cluster.bin + 重启组件;作业仍 PEND。剩余疑 scheduler→controller join 链路(新 scheduler 重启后静默,无 sched_update) | bug-1494 |
| **3 节点 HA 选举死锁** | 遗留 term 状态(`ha-term.bin` 残留 `voted_for=t1, term=1`)+ standby 无 pool 导致所有节点 STANDBY。单节点绕过 | 记录在会话 |
| **读接口字段全空(已修)** | `scheduler_list_nodes/queues/jobs` 数量对但字段空(OrderMap 列式格式未解析) | bug-1491(已修) |
| **apikeys 路由 whitelist** | 已修:`WhitelistPOSTURL` 加 `/xce/v1/apikeys` | bug-1489(已修) |
| **mcp_operator 缺 queue:control** | 已修:rbac.yaml 加 `queue:control`(job-control handler 也检查它) | — |
| **HA 3 节点需 xceadmin push** | `xceadmin config push` 有 discovery.py 解包 bug(deployment.md 已知) | 已知 |