Fireworks v0.3.3
Fireworks v0.3.3
Fireworks v0.3.3 是 patch 版本:代码审查驱动的控制面安全加固与健壮性修复。不改变 API 响应结构、任务语义或数据格式;SQLite 无 schema 变化,升级无需迁移;节点 Agent 无功能改动,无需重部署。
本版之前存在的隐患主要在几个无人值守路径上:镜像拉取鉴权失败可无限重试并卡死任务、下载线程被遗弃后任务永久 downloading、并发任务操作竞态可制造「无容器的 running」、推理统计在异常采样点下出现百万级虚假峰值,以及若干输入校验缺口(模型 revision、节点 SSH 用户名/IP、head 共享路径)。
修复亮点
- 镜像拉取 401 死循环:registry 持续鉴权失败时最多重试 5 次后明确失败,不再无限循环卡死
pulling并阻塞该镜像后续传输。 - 下载重启看门狗:下载设置变更后旧线程未及时退出时,不再遗留「
downloading且无活动线程」的卡死任务——旧线程退出后自动按新设置断点续传重启。 - 任务状态机加固:同一任务的暂停/继续/停止/删除串行化并校验合法转移;对已停止任务「继续」返回 409,杜绝「无容器的 running」;部署期间用户停止/暂停不再被覆盖;容器操作全部失败时任务置
error而非虚报成功。 - 推理统计防御:跳过时间戳相同/倒流的无效累计快照,并对极小间隔钳制速率分母,消除百万级虚假
tok/s峰值。 - 分片残留修复:中断下载的分片(
*.part.N)不再被计入缓存大小或当作完整模型文件发送到节点。 - SSH 总超时:远端命令进程存活但静默时按设置的超时终止并报错,不再无限占用线程。
- 删除与孤儿线程:删除进行中的下载/传输记录前先取消后台调度;删除仍被任务占用的模型缓存返回 409(
MODEL_BUSY)。 - 输入校验:模型
revision拒绝路径越级;节点 SSH 用户名/IP 拒绝 shell 元字符(卸载脚本另有纵深防御);head 返回的高速共享路径/令牌拒绝 userinfo 注入。 - 任务日志
tail钳制在 1–5000 行。
升级
- 控制平面升级到
0.3.3;节点 Agent 仅版本号同步、无功能改动,无需重部署。 - 无数据格式与任务语义变化,无需额外迁移。
- 需注意的新行为(均为防御性拒绝,正常流程不变):对已
stopped任务执行「继续」返回 409;删除downloading/sending/syncing的任务记录会先自动取消后台调度;删除仍被进行中任务占用的模型缓存返回 409(请先取消任务)。 - 升级前建议备份
fireworks-db卷。
部署
# 公网源(GitHub GHCR)
FW_IMAGE_TAG=0.3.3 docker compose -f docker-compose.prod.yml up -d --pull always
# 国内源(阿里云 ACR)
FW_IMAGE_TAG=0.3.3 docker compose -f docker-compose.prod.cn.yml up -d --pull always仅本机或可信内网的纯 HTTP 部署加 COOKIE_SECURE=0。镜像标签 v0.3.3 由发布 CI 构建并推送 GHCR 与阿里云 ACR。
完整变更见 CHANGELOG。