Files
ElyOffice/tasks/reviews/R2.20-r1.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-lok/src/worker/slides.rs:59 — 单个图层仍整体装进一帧,逐层回复仍会触发 64 MiB 帧上限,违反 SHOW-09 的动画预览要求。具体复现:真实 worker 打开测试 DECK,执行 `slide.size(10000, 120000, true)`,得到界面允许的 10 × 120 cm 页面;按 `apps/ely-show/src/preview.rs:67` 的尺寸公式请求 `SLIDE_LAYERS(doc, 0, 1280, 15360)`,返回两个有像素的图层,每层 78,643,200 字节;首个 `SLIDE_LAYER` 返回 ERR:`a 78643204 byte frame is over the 67108864 byte cap`,客户端在 `client/doc.rs:193` 提前返回,预览失败。另以普通比例请求 6000 × 4500,内核实际返回 6000 × 3375,同样报 81,000,004 字节帧超限。修复方向:单层像素也按帧容量分块传输,计入长度前缀,并增加单层超过上限的回归用例。独立执行的 worker 构建、4 项 motion 测试、3 项 playlist 测试及注释检查均通过,现有新增测试覆盖的是总量超过上限、各单层仍小于上限的情况。复现日志:`/tmp/ely-r220-portrait.log`、`/tmp/ely-r220-probe.log`。
crates/ely-lok/src/worker/slides.rs:41 — 新增的 WAITING 暂存集合缺少文档关闭和取层失败时的清理,违反 LOK-10 的关闭资源释放要求。具体复现:上述合法长页面取首层失败后,客户端通过 `?` 退出,第二层的 78,643,200 字节仍留在 WAITING;发送 `CLOSE_DOC` 后,再按旧文档编号取第二层,仍得到同一超限错误,证明关闭后像素仍被持有。另以 1920 × 1080 请求图层后直接关闭文档,再发旧编号的 `SLIDE_LAYER`,实际返回 OK 和 8,294,404 字节,确认暂存数据跨越文档生命周期。`worker.rs:343` 的 close 仅清理文档、事件和 revision,WAITING 只在逐层取尽时移除;连续打开、预览失败、关闭会按每次遗留一层持续累积内存。修复方向:把暂存图层纳入文档生命周期,在关闭及取回失败或取消时释放整批数据,拒绝已关闭会话的取层请求,并覆盖失败后关闭的回归路径。复现日志:`/tmp/ely-r220-portrait.log`、`/tmp/ely-r220-probe.log`。