Skip to content

Fireworks v0.3.3

Choose a tag to compare

@github-actions github-actions released this 27 Aug 00:58
· 42 commits to main since this release

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