Files
ElyOffice/tasks/reviews/P-08-r1.md
T
2026-10-09 23:26:40 -04:00

6 lines
1.9 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
apps/ely-pdf/src/annotate.rs:109 — 批次中一个页面读取失败,就把整批页面写入 Unread::Notes;collect 的短路还会丢掉此前成功读取的页面,并封住尚未读取的健康页面,破坏 PDF-05、PDF-06、PDF-07。复现:两页 PDF,第一页含 /Rect [0 0 <50 个连续的 9> 100] 的 Square 批注,第二页含正常 Text 批注;真实 worker 的 marks(0) 失败、marks(1) 成功。视图执行 ask_notes([0, 1]) 后再执行 ask_notes([1]),第二页仍无数据且被标记失败;仅移除第二页的失败标记后即可正常读出。重建后的探针记录 healthy page cached=false, marked failed=true(/tmp/ely-p08-r1-batch-confirmed.log)。修复方向:逐页保留读取结果,缓存成功页,仅记录实际失败页,并继续处理其他页;补充混合成功与失败页面的回归测试。
apps/ely-pdf/src/sign.rs:71 — 签名失败回调缺少保存代次校验,会在 saved() 清理失败记录后重新插入旧请求的 Unread::Signatures;第 50 行的全局 guard 随即封住新文件的签名读取,破坏 PDF-12。复现:打开 old.pdf 后把原文件改名,发起另存为 saved.pdf,并在保存进行中请求旧路径的签名。另存为成功、标签路径已指向 saved.pdf 后,旧路径失败回复写回标记;再次请求 saved.pdf 的签名,reading_signatures 保持 false、signatures 保持 None。真实另存为探针在明确等待异步操作结束后重复复现 saved path blocked=true, failure marker=true(/tmp/ely-p08-r1-save-race-confirmed.log、/tmp/ely-p08-r1-save-race-repeat.log、/tmp/ely-p08-r1-save-race-rebuilt.log);清除标记后同一 worker 可读取有效文件。修复方向:将签名读取绑定到磁盘文件的保存代次,保存完成使旧请求失效,旧回调清理进行中状态并丢弃过期结果及失败记录;补充保存与失败读取交错的回归测试。