- process_formula_export 失败清理受阻时记录不含敏感数据的 WARNING(任务编号+文件名), 并保留 job.path 使残留文件仍可追踪,而不是清空后失联 - cleanup_formula_exports 新增孤儿 .xlsx 回收:超过 24h 保留期且不属于任何 未过期成功任务的文件统一回收(覆盖失败任务残留、任务行被级联删除两种来源), 不触碰仍处于活动任务的文件 - 测试:注入 unlink 权限错误→任务失败状态仍保存+告警可见;恢复权限后回收成功 且其他任务文件不受影响;失败任务残留/任务行已删/未过期成功/近期文件/非 UUID 命名
- 根目录/用户目录/目标文件先通过 lstat 完整校验(拒绝符号链接与非目录), 校验失败时不删除任何磁盘文件(此前父目录为链接时会沿链接 unlink 同名文件) - 失败清理只处理本次登记的受控文件,并通过 O_NOFOLLOW 目录描述符删除; 目录被换成符号链接时拒绝删除,保留任务编号与路径的对应关系 - 测试覆盖:用户目录链接、目标链接、运行中目录被换成链接(受保护文件字节不变)、 失败后正常重试成功