auto-sync: 2026-06-15 10:50:01
This commit is contained in:
@@ -54,3 +54,17 @@
|
|||||||
- **ORCH-113** — `BUG: job-reaper must not re-run deploy-staging finalization while original finalizer is alive`
|
- **ORCH-113** — `BUG: job-reaper must not re-run deploy-staging finalization while original finalizer is alive`
|
||||||
- Plane/work item id: `ORCH-113`, UUID `b9fcbeef-00cd-47fc-9874-2ace9b70b7e9`, state `Backlog`, priority `urgent`.
|
- Plane/work item id: `ORCH-113`, UUID `b9fcbeef-00cd-47fc-9874-2ace9b70b7e9`, state `Backlog`, priority `urgent`.
|
||||||
- Суть: запретить ситуацию, где reaper считает job потерянной и повторно запускает deploy-staging/merge-gate, пока оригинальная финализация всё ещё выполняется и может успешно довести задачу до prod/done.
|
- Суть: запретить ситуацию, где reaper считает job потерянной и повторно запускает deploy-staging/merge-gate, пока оригинальная финализация всё ещё выполняется и может успешно довести задачу до prod/done.
|
||||||
|
|
||||||
|
## 2026-06-15 — systemic audit ORCH-110/112/113 → ORCH-114
|
||||||
|
|
||||||
|
- По просьбе Славы проведён системный разбор класса отказов вокруг ORCH-111:
|
||||||
|
- **ORCH-110** закрывает только merge-gate re-test infra-timeout: tree-kill pytest, классификация timeout как infra, bounded retry, пропуск no-op re-test. Это снижает шанс ложного rollback, но не даёт ownership на stage transition.
|
||||||
|
- **ORCH-112** закрывает dirty shared checkout/artifacts после failed/cancelled задач и перед self-deploy. Это предотвращает `git pull origin main` failure, но не чинит конкурирующие finalizer/reaper/reconciler/webhook входы.
|
||||||
|
- **ORCH-113** закрывает immediate bug: job-reaper не должен повторно запускать живую deploy-staging финализацию. Но формально это только reaper-vs-monitor.
|
||||||
|
- Найден незакрытый системный gap: нет единого ownership lease/heartbeat на side-effectful `advance_stage` transition. Потенциальные re-entry источники: live monitor, job-reaper, startup `requeue_running_jobs`, reconciler F-1, webhook advance path. Последствия: двойные security/merge/coverage/image-freshness/prod-deploy side effects и противоречивые rollback/done outcomes.
|
||||||
|
- Создана urgent Plane-задача:
|
||||||
|
- **ORCH-114** — `BUG: pipeline stage transitions need ownership lease and smart startup recovery`
|
||||||
|
- UUID `dd57ad23-7902-4d94-8ac4-c2a07b453781`, state Backlog, priority urgent.
|
||||||
|
- Scope: explicit transition/finalization ownership lease или heartbeat; job-reaper/startup requeue aware of live/stale finalization; CAS/transition epoch для side-effectful transitions; reconciler/webhook skip при active transition lease; observability + regression tests для deploy-staging/deploy-finalizer/restart recovery.
|
||||||
|
- В Plane добавлены scope comments к ORCH-110/112/113, чтобы разграничить ответственность и не потерять gap.
|
||||||
|
- Онтология обновлена: `task_orch_114_transition_lease` linked to `proj_orchestrator`.
|
||||||
|
|||||||
@@ -164,3 +164,5 @@
|
|||||||
{"op": "create", "entity": {"id": "task_et011_gpx_download", "type": "Task", "properties": {"title": "ET-011: \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 GPX \u0447\u0443\u0436\u0438\u0445 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445 \u0442\u0440\u0435\u043a\u043e\u0432 \u0438\u0437 \u043f\u043e\u043f\u0430\u043f\u0430", "project": "proj_enduro_trails", "folder": "tasks/enduro-trails/", "doc_path": "tasks/enduro-trails/PROJECT.md", "status": "done", "priority": "normal", "assignee": "dev", "description": "\u042d\u043d\u0434\u043f\u043e\u0438\u043d\u0442 GET /api/gps-tracks/{track_id}/download \u2014 GPX 1.1 \u0438\u0437 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u0442\u0440\u0435\u043a\u0430. \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u043e\u043d\u043d\u0430\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 ADR-015 default-deny (download_allowed per source). \u0410-1 (\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430 04.06): enduro_russia download_allowed=true (enduro-trails #23, commit 81c3394/merge b6b21aa). \u041d\u0430 \u043f\u0440\u043e\u0434\u0435: HTTP 200, 265KB, \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 GPX 1.1. \u0418\u043d\u0444\u0440\u0430-\u0444\u0438\u043a\u0441 04.06 \u0447\u0435\u0440\u0435\u0437 installer: sudo chown slin:slin /var/log/enduro-trails (deploy-hook \u043f\u0430\u0434\u0430\u043b \u043d\u0430 permission denied)."}, "created": "2026-06-04T05:38:54.726267+00:00", "updated": "2026-06-04T05:38:54.726267+00:00"}, "timestamp": "2026-06-04T05:38:54.726267+00:00"}
|
{"op": "create", "entity": {"id": "task_et011_gpx_download", "type": "Task", "properties": {"title": "ET-011: \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 GPX \u0447\u0443\u0436\u0438\u0445 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445 \u0442\u0440\u0435\u043a\u043e\u0432 \u0438\u0437 \u043f\u043e\u043f\u0430\u043f\u0430", "project": "proj_enduro_trails", "folder": "tasks/enduro-trails/", "doc_path": "tasks/enduro-trails/PROJECT.md", "status": "done", "priority": "normal", "assignee": "dev", "description": "\u042d\u043d\u0434\u043f\u043e\u0438\u043d\u0442 GET /api/gps-tracks/{track_id}/download \u2014 GPX 1.1 \u0438\u0437 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u0442\u0440\u0435\u043a\u0430. \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u043e\u043d\u043d\u0430\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 ADR-015 default-deny (download_allowed per source). \u0410-1 (\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430 04.06): enduro_russia download_allowed=true (enduro-trails #23, commit 81c3394/merge b6b21aa). \u041d\u0430 \u043f\u0440\u043e\u0434\u0435: HTTP 200, 265KB, \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 GPX 1.1. \u0418\u043d\u0444\u0440\u0430-\u0444\u0438\u043a\u0441 04.06 \u0447\u0435\u0440\u0435\u0437 installer: sudo chown slin:slin /var/log/enduro-trails (deploy-hook \u043f\u0430\u0434\u0430\u043b \u043d\u0430 permission denied)."}, "created": "2026-06-04T05:38:54.726267+00:00", "updated": "2026-06-04T05:38:54.726267+00:00"}, "timestamp": "2026-06-04T05:38:54.726267+00:00"}
|
||||||
{"op": "relate", "from": "proj_enduro_trails", "rel": "has_task", "to": "task_et011_gpx_download", "properties": {}, "timestamp": "2026-06-04T05:38:54.771227+00:00"}
|
{"op": "relate", "from": "proj_enduro_trails", "rel": "has_task", "to": "task_et011_gpx_download", "properties": {}, "timestamp": "2026-06-04T05:38:54.771227+00:00"}
|
||||||
{"op": "relate", "from": "proj_orchestrator", "rel": "has_task", "to": "task_orch_109", "properties": {}, "timestamp": "2026-06-13T11:11:07.101370+00:00"}
|
{"op": "relate", "from": "proj_orchestrator", "rel": "has_task", "to": "task_orch_109", "properties": {}, "timestamp": "2026-06-13T11:11:07.101370+00:00"}
|
||||||
|
{"op": "create", "entity": {"id": "task_orch_114_transition_lease", "type": "Task", "properties": {"title": "BUG: pipeline stage transitions need ownership lease and smart startup recovery", "project": "proj_orchestrator", "folder": "tasks/orchestrator/", "doc_path": "tasks/orchestrator/ORCHESTRATOR_DOCS.md", "status": "open", "priority": "urgent", "description": "Plane ORCH-114 / UUID dd57ad23-7902-4d94-8ac4-c2a07b453781. Systemic follow-up for ORCH-110/111/112/113: add single ownership lease/heartbeat for side-effectful stage transitions; make job-reaper/startup requeue/reconciler/webhook aware of active or stale finalization; guard deploy-staging/deploy transitions against double entry."}, "created": "2026-06-15T07:46:41.548033+00:00", "updated": "2026-06-15T07:46:41.548033+00:00"}, "timestamp": "2026-06-15T07:46:41.548033+00:00"}
|
||||||
|
{"op": "relate", "from": "proj_orchestrator", "rel": "has_task", "to": "task_orch_114_transition_lease", "properties": {}, "timestamp": "2026-06-15T07:46:41.835298+00:00"}
|
||||||
|
|||||||
Reference in New Issue
Block a user