Repository navigation
SkillGo v0.4.2
SkillGo v0.4.2
本次发布聚焦长任务快照机制的健壮性:快照只是崩溃恢复保险,不应因为工作区较大就杀死已经产出有效结果的任务。同时把不可变的用户输入移出快照,降低重任务的每轮开销。
主要更新
快照超容量不再杀死任务
- 工作区快照超过容量上限(或 Docker 守护进程短暂不可用)时,平台不再终止任务:记录一条"已跳过工作区快照"中性事件后继续执行,本运行内不再重复尝试;最终产物的收集与校验完全不受影响。
- 路径越界、符号链接、校验和不符等完整性/安全错误仍然按致命处理,不会被降级放过。
- 事故背景:一个 6 页翻译任务产出 266 MiB 图片型 PDF(工作区 315 MiB),在轮次边界快照超过 256 MiB 上限后整个任务被
SANDBOX_INTERNAL_ERROR杀死,且辅助容器删除超时一度掩盖了真实原因。
快照容量上限 256 MiB → 512 MiB
- 依据线上 26 个真实快照的测量分布(中位数 14 MiB、P90 54 MiB、最大正常任务 127 MiB),为嵌图 PPTX、批量 OCR 等正当重任务留出 4 倍余量;恢复时内存峰值仍控制在 2 GiB worker 容器限额内。
用户输入不再进入快照
/workspace/input是平台投放、任务全程只读的不可变文件,与已有的大型 Skill 包采用同一机制:快照排除这些字节,崩溃恢复、手动沙箱切换、任务中依赖升级换箱时从对象存储重新投放原件(逐字节一致,input_refs哈希校验不受影响)。- 输入字节仅在恢复真正发生时才从存储读取,不在 worker 内存中常驻。
快照辅助容器清理加固
- 冻结视图辅助容器的删除超时由 60s 提高到 180s,失败自动重试一次;重试仍失败只记告警并留给垃圾回收,清理异常不再覆盖真正的导出错误。
升级
本版本无数据库迁移、无配置变更,重建 api 与 worker 镜像即可(worker 建议在无运行中任务时滚动重建)。
Git 工作区部署:
sudo SKILLGO_INSTALL_ROOT=/opt/skillgo \
SKILLGO_DEPLOY_ENV=deploy/ecs.env \
bash deploy/backup-skillgo.sh
sudo SKILLGO_INSTALL_ROOT=/opt/skillgo \
SKILLGO_DEPLOY_ENV=deploy/ecs.env \
bash deploy/upgrade-skillgo.sh v0.4.2验证
- 后端 496 项回归全部通过,新增 15 项覆盖:超容量降级端到端(任务照常 finish、告警只发一次)、完整性错误仍致命、辅助容器清理重试不掩盖主错误、输入文件排除与恢复/换箱重投放(含首条命令启动容器前的投放顺序)。