文件
hyb-oa/.trellis/tasks/07-28-automatic-backup-runtime-identity-failure/implement.md
T

2.2 KiB
原始文件 Blame 文件历史

自动备份运行身份失败实施清单

1. Pre-fix

  • 确认 daily service 02:30 非零退出且告警类别为 phase_runtime_identity_failed。
  • 按 runner 的 Compose 选择逻辑确认唯一根因为附件宿主挂载不匹配。
  • 确认不是 symlink/realpath/inode 等价,其他五项 runtime identity 通过。
  • 确认最近成功恢复点约 11 小时,尚未超过 watchdog/dead-man 窗口。
  • 确认 07:10 phase_stale_check_failed 由 watchdog 复用同一 runtime identity 检查触发,不是独立的归档损坏结论。
  • 运行本地 bash scripts/qa/run-automatic-backup-contract.sh(73 项通过)。

2. Unit Refresh

  • 重新只读解析当前实际附件 mount source并验证安全边界。
  • 保存六个自动备份 unit 的 root-only 临时快照。
  • 沿用现有 unit 合同,仅替换实际附件宿主目录,调用安装器 enable。
  • 验证 daily/watchdog/drill timers enabled/active 和六项 runtime identity 全部匹配。

3. Recovery Backup

  • 手工启动 daily service;记录稳定 phase/result,不输出原始日志。
  • 验证新的 last-success 时间、项目/build 身份和 manifest 哈希格式。
  • 通过仅在 ARM finalize 成功后写入的 success state 验证新归档闭环;普通 ARM 账号无 archive 读取权限,未扩大权限取证。
  • 验证 alert state 为 PASS_AUTOMATIC_BACKUP_COMPLETE。
  • 用户确认群内只收到一条 PASS_AUTOMATIC_BACKUP_COMPLETE / healthy 恢复通知。
  • 验证应用健康 timer、备份 watchdog/drill 和 ARM dead-man/receiver 不受影响。

4. Cleanup and Governance

  • 删除临时 unit 快照;不删除旧目录、旧批次或失败证据。
  • 更新部署规约/checklist 的自动备份 unit 漂移门禁。
  • 运行 task validate、governance、sensitive、docs audit 和 git diff --check;全部无错误,docs audit 仅保留既有 22 项未登记文档 warning。

5. Rollback

  • unit 刷新或 identity 复检失败:恢复六个 unit 快照并 daemon-reload,不补跑备份。
  • 补跑在 paired/offhost phase 失败:保留已纠正 unit,依据安全 phase 诊断继续处理,不回退旧附件目录。