Files
ElyOffice/tasks/reviews/X-03-r1.md
T

1.1 KiB

FAIL

crates/ely-platform/src/instance.rs:19 — 拒绝路径读取的 PID 与锁持有者存在竞争,违反 X-03“报出运行中进程号”的要求。首份在第 18 行取得锁后才在第 26 行写入 instance.pid;同时启动的第二份可以在这两步之间读到缺失文件、上次运行的 PID,或 write 截断后的空文件。使用当前构建的 ely-platform::instance::hold,以同一 HOME、文件屏障同时释放两个独立进程,首份持锁 100 ms;全新目录与遗留 PID 的目录交替测 80 轮,58 轮的拒绝提示出现 process unknown: No such file or directory (os error 2) 或 process 。另一次 16 进程并发探针实际持锁者为 62564,拒绝提示却报 process 999999(预置的上次 PID)。证据保留在 /tmp/ely-x03-two-process.log 和 /tmp/ely-x03-race.log。现有单测预先写好 PID,脚本等首份画出图块后才启动第二份,均覆盖不到此竞争。修复方向:同步持有者信息的发布与拒绝路径的读取,原子写入 PID,并确认提示中的 PID 属于当前锁持有者;增加同时启动的真实双进程回归测试。