1.1 KiB
1.1 KiB
FAIL
apps/ely-pdf/src/sign.rs:69 — 保存失效校验使用 saved 历史字符串,同一历史状态再次保存时,旧签名失败回复仍会写回当前文件的 Unread::Signatures(path),封住有效文件的验证状态读取,破坏 PDF-12。复现:打开一份 PDF,保持内容原样,在外部移走原文件;执行冲突处理的“保留我的”,并在保存进行中读取原路径的签名。保存重新写出原路径、清理失败集合后,旧请求的失败回调插回标记;再次请求签名被 guard 拦住,签名列表持续空白。真实 worker 和真实保存流程连续五次得到 same mark=true, readable=true, stale marker=true, blocked=true(/tmp/ely-p08-r2-repeat.log);还原并重建后再次五次复现(/tmp/ely-p08-r2-restored-rebuilt.log)。修复方向:每次成功保存递增独立保存代次,签名读取按该代次丢弃过期结果;补充同历史标记保存与旧回复交错的回归测试。当前测试直接把 saved 改为不同字符串,覆盖范围遗漏此场景;探针使用独立保存代次后五次均通过(/tmp/ely-p08-r2-generation.log)。