Files
ElyOffice/tasks/reviews/C06.5-r2.md
T

8 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
FAIL
crates/ely-office/src/recover.rs:66 — 解封或载入失败的恢复点会在正常退出后的下一次启动被删除。`held`、`reopening` 虽保留在索引中,`end()` 仍清掉崩溃标记,随后 `start()` 第 57 行按 Clean 删除整个恢复目录。实测:提供有效封存 PDF 恢复点,钥匙串暂不可用时窗口提示恢复失败,索引和恢复点仍在;直接 Cmd+Q 正常退出,再启动时恢复点从 1 个变为 0(/tmp/c065-r2-held-result.log、/tmp/c065-r2-held-first-ax.log)。用户尚未保存或明确放弃该副本,唯一持久内容已丢失,R1 的失败保留修复仍存在此缺口。修复方向:持久记录尚待处理的恢复条目,正常退出后继续保留并重试,直到成功交接、保存或用户明确放弃。
crates/ely-office/src/recover.rs:216 — 恢复索引写入失败只进日志,恢复任务继续成功写点,界面隐去影响崩溃恢复的错误。实测:以空崩溃索引启动,将 `index.json` 设为 0444,打开 PDF 并旋转页面;生成 1 个 `.bin`,索引仍为 `[]`,日志报告 Permission denied,AX 树没有恢复失败提示;杀掉应用、恢复索引权限后重启,恢复点文件仍在,窗口没有恢复标签(/tmp/c065-r2-index-result.log、/tmp/c065-r2-index-first-app.log、/tmp/c065-r2-index-first-ax.log)。违反 §6.2 的恢复要求及暴露错误规则。修复方向:将索引持久化失败传回界面,保留待写条目并重试,确保报告成功的恢复点具有可供下次启动读取的持久索引。
crates/ely-office/src/recover.rs:291 — 接过旧恢复点时仅用 `at` 显示恢复提示,`Keeping.last` 仍为 None,故障条只读取这个值。实测:ElyPDF 从已有恢复点打开未命名副本,在下一轮快照前 SIGKILL worker;AX 树同时显示副本的恢复时间和 `Last recovery point: none yet`(/tmp/c065-r2-recovered-time-ax.log)。恢复点实际存在,§6.3 要求的最近恢复时间显示错误。修复方向:恢复交接时同步已有持久恢复点的时间,让故障条读取当前保留恢复点的实际最近成功时间,并覆盖首次恢复后立即停止引擎的场景。