4.3 KiB
4.3 KiB
10 — Технические риски (ORCH-071)
| ID | Риск | Вероятность / Влияние | Митигация |
|---|---|---|---|
| R-1 | Гонка merge с рестартом прода (постмортем-урок №3): merge в Phase B убивается рестартом → снова фантом. | Средняя / Критич. | Merge вынесен в Phase C finalizer (restart-surviving, новый контейнер ПОСЛЕ рестарта). Merge физически строго после рестарта. Smoke-тест AC-3. |
| R-2 | Обходной путь к done мимо merge-шага (reconciler F-1 / reaper протолкнут deploy → done по зелёному check_deploy_status). |
Средняя / Критич. | Врезка _handle_merge_verify в advance_stage (единственная функция перехода) → гейтит ВСЕ вызывающие пути единообразно. |
| R-3 | Ложный not-merged alert при недоступной Gitea (verify→False) → лишний HOLD. |
Средняя / Низкое | Осознанный fail-closed для done; снимается повтором (re-drive/reconciler) после восстановления Gitea. Alert информативен, не роняет конвейер. |
| R-4 | Дубль-merge / merge-error при re-drive (двойной webhook, reaper-requeue). | Средняя / Среднее | pr_already_merged ПЕРЕД merge → no-op повтор (INV-5/AC-9). Ложного БАГ-8 отката нет (merge-verify не откатывает). |
| R-5 | Прямой/force push в main случайно. |
Низкая / Критич. | Merge ТОЛЬКО через Gitea PR-merge API (merge_pr); код не делает git push origin main. INV-4/AC-8, ревью. |
| R-6 | Verify/merge роняет прод-контейнер (self-hosting). | Низкая / Критич. | merge_pr/verify — только API + read-only git в worktree; никаких docker/restart 8500. INV-2/AC-8. |
| R-7 | Регрессия non-self деплоя (enduro-trails). | Низкая / Среднее | Условность merge_verify_applies (пусто→self-hosting); non-self — no-op, merge остаётся за deployer. AC-4b. |
| R-8 | HOLD-залипание: not-merged → Blocked, никто не вмешался → задача вечно не done. |
Средняя / Среднее | Alert (Telegram+Plane) + Plane Blocked (видимый сигнал). Реакция ALERT-only осознанна (not-merged — инфра-дефект, авто-откат запрещён FR-3). Runbook G4 для быстрой локализации. |
| R-9 | Validated SHA рассинхронизирован (verify проверяет не тот коммит). | Низкая / Среднее | Единый якорь validated_revision (git rev-parse HEAD worktree) — тот же, что у image-freshness ORCH-058. |
| R-10 | Exception из verify валит finalizer/advance_stage. | Низкая / Высокое | never-raise контракт на всех публичных хелперах + обёртка _handle_merge_verify. AC-7. |
| R-11 | Merge ветки, чей deploy FAILED (если бы merge был до verify статуса). | — / — | Merge выполняется на ребре deploy → done, достигаемом ТОЛЬКО при deploy_status: SUCCESS. FAILED → БАГ-8 откат ДО merge-шага (merge не вызывается). |
Открытые вопросы / follow-up
- Merge-style (
merge/rebase/squash) в Gitea API — зафиксировать тот же стиль, что использовал агентdeployer(по умолчаниюmerge), чтобы не менять историюmain. - Восстановление текущего
main(долив 022/059/066/068) — ОТДЕЛЬНАЯ веткаinteg/restore-main-2026-06-08, вне scope ORCH-071. - Полный авто-деплой (ORCH-54) — merge-verify совместим, но INV-3 (ручной approve) на старте сохраняется.