Files
ElyOffice/tasks/reviews/C10.6-r2.md
T

3.5 KiB
Raw Blame History

FAIL

apps/ely-show/src/output.rs:124 — [P1] PNG 编码返回后依赖 BufWriter 析构写出缓冲尾部,析构期间的写入错误被吞,批量导出随即保留截断文件并显示成功。复现:实际 LOK 绘制 1920×1080 幻灯片,完整 PNG 为 89518 字节;在导出进程中忽略 SIGXFSZ 并把 RLIMIT_FSIZE 设为 89517,调用同一个 picture(),实际文件为 89517 字节,返回 Ok(())。这同样覆盖磁盘耗尽或输出设备在最后一次缓冲写入时失败的路径,违反错误必须暴露的规则。隔离副本的 probe_r2_picture_exposes_final_write_failure 失败;仅在编码后显式执行并检查 flush(),同一探针收到 FileTooLarge 并通过。修复方向:检查缓冲写入完成结果,把错误传回整批清理和错误提示路径,增加尾部写入失败回归。证据:/var/folders/g4/sj7njkr93jz0rgmg0b_zqnvr0000gn/T/ely-c106-r2-cxwgwj2s/buffer-1920.log、buffer-flush-control.log。

apps/ely-show/src/dialog.rs:52 — [P2] 第一轮第六项仍有对话框生命周期漏洞:请求编号仅在检查与输出读取时增加,其他对话框的打开及关闭保留旧编号;后续对话框关闭后,旧检查重新满足 dialog_due() 并弹出。复现:暂停本应用 worker,选择“检查演示…”,再从 Insert 菜单打开“插入表格”,点击 Cancel,然后恢复 worker;AX 窗口从 Insert Table 变为 Presentation Check,日志确认表格关闭后才安装旧结果。实际窗口和隔离副本的 probe_r2_late_check_after_new_dialog_closed 均复现;现有回归只覆盖后续对话框仍打开的情况。修复方向:让后续对话框交互和取消使旧请求永久失效,回调按完整交互身份核对;覆盖后续对话框打开后关闭、取消及标签往返的延迟回归。证据:/var/folders/g4/sj7njkr93jz0rgmg0b_zqnvr0000gn/T/ely-c106-r2-cxwgwj2s/ui-race-table-before.ax、ui-race-table-after.ax、output-regressions.log。

apps/ely-show/src/output.rs:271 — [P2] 图片导出的范围与隐藏标志来自打开对话框时的 output.hidden,实际图片来自提交后另存的当前副本,两者可以属于不同修订,导致“全部”漏出可见幻灯片。复现:三张幻灯片中隐藏第三张,打开导出对话框;通过仍可操作的 Slide 菜单显示第三张,再选择 Pictures/All 导出。当前副本有三张可见幻灯片,实际只有 deck-1.png、deck-2.png。隔离副本的 probe_r2_picture_all_uses_the_exported_revision 实测文件数 2、预期 3;真窗口另确认 Export 打开期间 slide.show 可执行且对话框继续保留。违反 SHOW-13 的全部输出及 FILE-08 的修订一致性。修复方向:从实际导出副本统一取得张数、可见性和尺寸,再计算范围并排他占用目标;或者固定对话框所属文档修订并在失效时显式报错。增加打开对话框后改变可见性的回归。证据:/var/folders/g4/sj7njkr93jz0rgmg0b_zqnvr0000gn/T/ely-c106-r2-cxwgwj2s/output-regressions.log、revision-focused.log、ui-export-hidden.ax、ui-export-shown.ax。独立构建 worker 与 Show/Doc/Table、cargo check --workspace、cargo test --workspace(512 通过、1 忽略)及 tests/scripts/lo-patches.sh 均通过。第一轮的打印崩溃(幻灯片与三张一页讲义均打开系统面板、操作菜单、取消)、已有文件与失效链接冲突、母版下实际图片输出、损坏链接及嵌入图片、删除 OLE 源文件均已复验通过;原源码哈希核对通过,仅写入本 verdict。