fix(chv): 生产级审核 P1-01~P1-10 修复(堆叠于 #270 之上)
This commit is contained in:
1 parent
8c8d62f70d
commit
971e054938
12 files changed
+1545
-120
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# Cloud Hypervisor 执行器架构决策记录(ADR)
|
||||
|
||||
范围:cloud/chv/ 执行器链(#216 → #221 → #230 → #232 → #234 → #239 → #246 → #252 → #254 → 本轨 feat-chv-arch-maint-fe)。
|
||||
范围:cloud/chv/ 执行器链(#216 → #221 → #230 → #232 → #234 → #239 → #246 → #252 → #254 → feat-chv-arch-maint-fe → feat-chv-closeup → feat-chv-cover100 → 本轨 feat-chv-p1fix)。
|
||||
本文件只记录已落代码的决策,不记录未验证为已验证;真机、压测、动态安全
|
||||
仍见 docs/chv-production-readiness.md §11。
|
||||
|
||||
@@ -323,3 +323,35 @@
|
||||
缺 268 → 242);未覆盖大头仍是 executor 深层生命周期
|
||||
分支(需假 VMM 全链路)与 disk 配额分支,不靠删测试
|
||||
或改分母凑数。
|
||||
|
||||
## ADR-17 P1 修复轨语义收紧(feat-chv-p1fix,生产级审核 §5)
|
||||
|
||||
本轨只修审核报告 §5 的 P1 十项(P2 不动),决策均为
|
||||
“失败可见、猜测收紧、竞态加锁”,不放宽任何既有安全语义:
|
||||
|
||||
- 失败不算成功:孤儿清理失败项不进 cleaned、不清库、
|
||||
落盘保留失败项(P1-01);残留私钥删失败不进 cleaned、
|
||||
发审计并写脏标记(P1-03);单条超帽快照拒绝记录而不
|
||||
是悄悄保留(P1-06);快照失败与剪枝删失败均发审计
|
||||
(P1-08)。“尽力清理、不因单条失败卡住整批”的旧语义
|
||||
被修正为“尽力清理、失败项留痕可重试”——整批仍不卡,
|
||||
但失败不再被成功名单掩盖。
|
||||
- 损坏与非法不静默:registry 损坏与非法条目均发审计并
|
||||
计数(P1-02);非法条目落盘时丢弃(已审计,不再每次
|
||||
重启重复审计)。
|
||||
- 不猜目标:SSH 命令构造删除回环回落,失败即抛
|
||||
(P1-04);显式回环(CHV_SSH_HOST / CHV_SSH_FORWARD=1)
|
||||
仍可用,wake/wait 严格路径不受影响。
|
||||
- 竞态用文件锁:容量/net/磁盘 check→act 持
|
||||
`state_dir/chv-state.lock` 的 flock 全程(P1-05),
|
||||
拒绝“只加进程内锁就声称多 worker 已解决”的写法;
|
||||
串行 wake 是有意的代价,已运行 VM 的任务执行不持锁。
|
||||
- 非正配置在入口拦:CPU/内存/任务超时非正在构造层与
|
||||
preflight 层双重校验(P1-07);None 任务超时 = 不限
|
||||
的旧语义保留。
|
||||
- 覆盖口径诚实:行覆盖与分支覆盖分开报(P1-09);
|
||||
`__init__.py` 计入 coverage.py 分母(4 行);长函数
|
||||
50 行硬门禁靠提取维持,新增 helper 均有命名职责
|
||||
(`_snapshot_create`、`_tighten_snapshot_cap`、
|
||||
`_preflight_task_timeout_check`、`_emit_prune_events`、
|
||||
`_state_lock_ctx`),不是为凑行数而拆。
|
||||
Reference in new issue
Block a user