docs: failover-adoption — worker+apiserver done (2165b1a), scheduler blocked by lib race
This commit is contained in:
parent
2165b1ab12
commit
5d345d86b5
1 changed files with 10 additions and 5 deletions
|
|
@ -86,13 +86,18 @@ spec 声称 36/36 任务完成,但 re-audit(research.md)发现缺陷。来
|
|||
|
||||
## 四、故障转移 / 重连
|
||||
|
||||
### component-failover-adoption(14 任务全未勾选)
|
||||
### component-failover-adoption(14 任务:部分完成,2026-08-14)
|
||||
- **来源**:`.kiro/specs/component-failover-adoption/`
|
||||
- **关键结论**:requirements.md Background 明确 "**scheduler 没有任何运行时重连/rejoin 逻辑**——连的 controller 死后,scheduler 无法切换到其他候选"。
|
||||
- 任务 3.1:把 scheduler 的 per-candidate 循环换成单一 library 驱动的 connect/join + rejoin 回调。
|
||||
- 任务 3.2:scheduler 多 controller join E2E 测试。
|
||||
- Req 3:重连重试/backoff 不能阻塞 picker 线程(保持现有线程拆分)。
|
||||
- Req 5:per-candidate 重连诊断日志(成功/不可达/standby 重定向)。
|
||||
- **✅ 已完成并集群验证(commit 2165b1a)**:
|
||||
- **worker 无限重试**(controller_connector.c `checking_connection`):去掉 5 次上限,无限重试直到重连(连接器线程专用,不阻塞硬件/进程监控线程)。实测:杀 controller 后 3 worker 全部存活并持续重试,controller 回来后自动 rejoin。
|
||||
- **apiserver rejoin**(clib.go `StartHeartbeat` + `xce_backend_rejoin`):心跳从失败转成功时显式 rejoin(HostRole_apiserver),恢复 push 通知。实测:controller 重启后日志 `backend re-joined controller after reconnect`。
|
||||
- **❌ scheduler reconnect 被 lib 竞态阻塞(未合入,已回退)**:
|
||||
- scheduler 的 rejoin(`xcecli_set_reconnect_handler` flag + 主循环 `xcecli_join`)**功能上能重连并 rejoin**(实测收到 config push),但 rejoin 后 ~8s 崩溃。
|
||||
- **根因**:libxce `xce_ctx_reconnect`(client_failover.c→xcectx.c)里的 `endpoint_fini` 拆除旧 endpoint,而 lib 的 vtask/io 线程(T5)仍在处理旧 endpoint → 确定性 double-free(ASAN bad-free,两次崩溃释放地址偏移相同 `...66b8`)。这是 lib 既有竞态,被 reconnect 首次触发。netio.c 注释自认 endpoint 生命周期与 in-flight vtask 的 teardown 复杂。
|
||||
- **修法**:需在 libxce netio/endpoint 生命周期里同步 endpoint 拆除与 in-flight vtask 处理(涉及 ref-counting/teardown 顺序),独立较深任务。
|
||||
- 为保持 scheduler 稳定已回退 reconnect 改动(否则 controller 一重启 scheduler 就崩)。
|
||||
- 剩余任务(scheduler reconnect + 多 controller E2E + apiserver 电路熔断等)见 spec。
|
||||
|
||||
### P2.5
|
||||
- **来源**:`product.md:35`、`docs/superpowers/plans/2026-05-07-p25-discovery.md`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue