Repository navigation
fix(media): supervise watchdog and drain reconnect control before release (#538) - #639
Conversation
Only implementation changes, 319 members: main.py and mediamtx_client.py. Decision surface, environment, identity semantics and runtime inputs remain unchanged. Native build and MOT17-09 probe freshly captured on clean 596838f; probe equality does not establish equivalence (unproven). Archive outgoing canonical byte for byte.
|
verdict: APPROVE 獨立重跑 17 個契約測試通過;runtime 與真實 RTSP/CUDA probe hashes 均相符。Publication 已由另一個獨立 reviewer 審核於 #638(固定 完整 pre_push exit 0:6402 passed/52 skipped/105 deselected/5 xfailed/0 failed;log SHA-256 尚須 applicable required CI、§0A self-check 與 exact-head merge;沒有把 stacked base 的空 checks 當 remote PASS。 |
#550 §0A self-check — 自動授權合併實際合併 head:
Remaining OPEN:F05、F03/F07、GE-07、多 worker NMS capture、update_into/NV12、native 永久卡死的硬停止、online qualification;distribution=local-only、V5 UNRESOLVED、installed UNVERIFIED、equivalence=unproven。未清除 #340 trace;後續依既定順序獨立封存。 |
|
已依 §0A 合併:main |
|
收尾 PASS — main main CI 七項+C++ 8/8 SUCCESS,都綁定同一 main SHA/push event,沒有遠端 rerun。Main pytest:6100 passed/294 skipped/105 deselected/4 xfailed/0 failed。 Merged-main 獨立 closeout APPROVE;tree 完整 #538 checkpoint 擁有行為、證據與剩餘 OPEN;Hub 只記狀態與連結。#638/#639 均 MERGED,沒有本次遺留 Draft;沒有升級 qualification 或移除 #340 trace。 |
修復 #538 D3-F04:main 的 watchdog 納入 producer supervision;initial connect、reconnect 與 release 移出 event loop。取消會先等待正在執行的控制工作,再釋放管線,避免取消後重新開啟資源;第一次重連失敗後持續重試。來源建構與 DALI 無 watchdog 的清理範圍一併修正。
Primary objective: RUNTIME/CORRECTNESS(online media host lifecycle)。文件、契約測試與獨立審查的 runtime identity 同次交付;沒有 association/detect/default 參數變更。只有 implementation 軸改變,equivalence=unproven;native 永久卡死沒有硬停止時限,online qualification 不升級。
驗證:17 個隔離 host 契約、33 個既有 caller/media 回歸、3 個基線負控制與 2 個 mutation;真實 Python GStreamer/MediaMTX/CUDA 的斷流重試、恢復、initial/reconnect 取消及 watchdog fault。fresh native build、MOT17-09 probe、完整輸入 manifest 與 strict attested 通過。原始指令、適用範圍、首次失敗分類與 SHA-256 均在 docs/architecture/async_ownership_538.md §11;完整 pre_push、獨立 final-head review 與遠端 CI 收據見 comments。
Gate admission:此 PR 不修改 required CI 或 qualification 標準。新增既有 pytest 入口下的行為契約,防止 event-loop blocking、未持有 watchdog 與早於控制完成的 release;失敗時修復 lifecycle,不能以 skip/弱化斷言通過。
Remaining OPEN:F05、F03/F07、GE-07、多 worker NMS capture、update_into/NV12、online qualification。未清除 #340 trace;local-only、V5 UNRESOLVED、installed UNVERIFIED 不變。回退須實作與重發 coordinate 一起處理。