Files
momentry_core/docs/M4_RELEASE_INCIDENT_2026-05-09.md
Accusys 9f5afd1b86 fix: file-based source of truth for worker + backup protocol
- Worker: check {uuid}.{processor}.json existence before starting processor
- Worker: timestamp-copy backup existing output files before re-run (no delete, no overwrite)
- Executor: partial output saved as .json.partial (not .json) to avoid false completion
- Start script: removed set-e, log dir changed to momentry/logs, Qdrant collection status fix
- docs: M4 release incident report + M4/M5 collaboration protocol
2026-05-09 05:32:13 +08:00

1.3 KiB
Raw Permalink Blame History

M4 Release Incident — 2026-05-09

Summary

M4 在進行 release 打包作業時,未依照計畫包含 output .json 檔案,僅在 database 中保留 records。此外 M4 違反操作邊界進入 M5 管轄範圍M5 執行 cleanup 時將已完成的 asr.json 一併刪除。

Impact

檔案 狀態 說明
{uuid}.asr.json 遺失 已完成的 ASR 輸出被 M5 cleanup 誤刪
{uuid}.yolo.json 損毀 JSON parse error需重跑
DB records ⚠️ 不一致 processor_results 狀態與實際檔案不符

Root Cause

  1. M4 release 打包遺漏: Release 流程未將 .json 輸出檔納入打包範圍,只保留了 DB。
  2. M4 越界操作: M4 在 M5 的目錄/範圍內執行操作,違反開發隔離原則。
  3. M5 cleanup 誤刪: M5 的 cleanup 機制未預期 M4 的產出,將 asr.json 視為無用檔案清除。

處理

  • ASR: 重跑中asr_processor.py完整電影約 6780s
  • YOLO: 重跑中yolo_processor.py
  • 已修改 worker 邏輯:開機後以 .json 檔案存在為 source of truth不再僅依賴 DB/Redis 狀態

預防措施

  • Release 流程需明確定義 deliverables 包含 .json 檔案
  • M4/M5 操作邊界需嚴格遵守,禁止跨域操作
  • Cleanup 機制應先確認檔案是否為有效 processor output