主题
断点续跑后出现漏跑、重复生成或跨集设定不一致时怎么排查?
题型:问题排查 · 从恢复基线、依赖版本和消息重放三条线并行核对。
排查顺序
- 固定受影响 Job 的恢复时刻和目标版本,导出 Job、Episode、Shot、节点尝试与产物清单,确认是调度集合计算错误还是展示错误。
- 漏跑时检查节点是否被错误标记 succeeded、依赖计数是否漏更新、invalidated 状态是否未重新转为 ready,以及恢复扫描是否只看父级状态。
- 重复生成时检查消息重投、租约过期、并发恢复器和幂等键;若第一次调用超时,先确认外部模型或产物服务是否已经生成结果。
- 跨集不一致时比较各 Episode 实际记录的全剧设定版本、Prompt 版本和缓存键,检查恢复是否读取了“最新值”而不是原任务快照。
- 对照状态迁移日志与产物提交时间,识别状态成功但产物未提交、产物存在但状态未知以及旧产物被错误复用三类问题。
止损与永久修复
先暂停受影响版本的发布和下游视频合成,隔离不一致产物,允许未受影响的 Job 继续。永久修复包括重新计算 ready 集合、用条件状态迁移防止双恢复、补齐依赖版本指纹、对结果未知增加查询与对账,并为恢复流程建立可重复执行的幂等测试。
验证与复盘
在同一 Checkpoint 上重复执行恢复,结果应收敛到同一任务集合和产物清单;再模拟消息重复、Worker 崩溃、产物提交超时和设定版本更新,确认不会漏跑或跨版本复用。上线后监控恢复任务数、重复尝试、过期产物和父子状态不一致数量。
易错点
- 不要用“全部重新生成”掩盖状态机问题,这会失去最小重跑的价值并放大成本。
- 不要在没有确认副作用结果前盲目重试图像或视频生成。