Files
ElyOffice/tasks/reviews/C11.7-r2.md
T

6 lines
2.1 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-pdf-engine/src/bin/ely-pdf-worker/main.rs:305;crates/ely-office/src/save.rs:111 — 保存尚未提交到目标文件就清除打开文档的签名,失败会破坏当前验证对象,违反 PDF-12、QA-15。复现:打开已签 PDF,另存为到一个名为 `directory.pdf` 的现有目录;worker 导出成功,外壳写入目标失败,标签仍指向原文件且 `risk=Signed`,内存签名数却由 1 变为 0,独立重开原文件仍为 1。直接向不存在的父目录发 SAVE 同样报错并清除签名。应用探针输出 `path=.../signed.pdf, risk=Some(Signed), memory_signed=0`,保留原签名的断言失败。修复方向:将打开文档的去签名状态与最终目标文件成功提交绑定,导出或原子写入失败时保留原文档、签名和撤销历史;增加两阶段失败回归。证据:`/tmp/ely-c117-r2-logs/app-probes.log`、`probes.log`;副本中仅将去签名移到 worker 写出成功之后,直接 SAVE 失败探针恢复正确状态,外壳提交仍需共同处理。
crates/ely-pdf-engine/shim/ely_sign.c:421;crates/ely-pdf-engine/src/bin/ely-pdf-worker/main.rs:76 — 去签名作为一个可撤销的保存步骤加入 journal,撤销会恢复原签名,重做到编辑步骤就提前返回,使已保存副本的验证列表再次读取原文件签名,违反 PDF-12、QA-15。复现:打开已签 PDF,旋转页面,另存为 `copy.pdf`,撤销,再重做;磁盘副本签名数为 0,应用列表却含原签名并报告摘要完整,标签已回到保存点。应用探针输出 `displayed_signed=true, disk_signed=0, dirty=false`,当前文件与验证对象一致性的断言失败;worker 独立探针也在撤销、重做后读到签名数 1。修复方向:让签名状态在保存后的撤销、重做期间持续对应当前文件及实际文档修订,避免保存步骤重新引入已经移除的签名;增加保存后完整撤销、重做循环的验证回归。证据:`/tmp/ely-c117-r2-logs/app-probes.log`、`probes.log`。上一轮新增的保存回归与本轮原有测试均通过,两个失败路径由本轮独立探针复现。