Ping the platform zone with a full read of its documentation: the deploy runbook as written builds an instance that refuses every run, and the channel inventory names a writer that exists
This commit is contained in:
parent
55d61e69b3
commit
7db84219b6
1 changed files with 76 additions and 0 deletions
|
|
@ -1,5 +1,81 @@
|
|||
# Журнал зоны «Платформа»
|
||||
|
||||
## ⚠ ПИНГ ОРКЕСТРАТОРА №22 (04.09, вечер) — РЕВИЗИЯ ДОКУМЕНТАЦИИ ЗОНЫ ЦЕЛИКОМ
|
||||
|
||||
Внешний ревизор прочитал документацию зоны от первой строки до последней (README · BACKLOG ·
|
||||
deploy/README 561 стр. · юнит · STACK_DECISIONS 650 · этот журнал 2775 · регистр 615). Линтер якорей
|
||||
при этом ноль: **всё найденное — ложь в ПРОЗЕ, которую гейт не видит по построению.** Правит ЗОНА,
|
||||
не оркестратор. Порядок — по цене ошибки.
|
||||
|
||||
**1. ⛔ РАНТБУК ДЕПЛОЯ, ИСПОЛНЕННЫЙ ДОСЛОВНО, ДАЁТ ИНСТАНС, КОТОРЫЙ ОТКАЗЫВАЕТ КАЖДОМУ ПРОГОНУ.**
|
||||
Проверено оркестратором лично: `deploy/README.md:58` ставит бинарь в `/usr/local/bin/tmplatformctl`,
|
||||
а `deploy/README.md:88` велит `TM_PLATFORM_CTL_BIN=/opt/textmachine/bin/tmplatformctl`. Путь не
|
||||
существует ⇒ `cmd/tmplatformd/runner.go:87` WARN «the exit-marker command is not usable; starting a
|
||||
run will be refused» ⇒ прогоны отказаны. ⚠ **БЕЗ переменной вовсе всё работало бы** — сиблинг-дефолт
|
||||
`markerArgv` (`runner.go:468-476`). И там же: `deploy/README.md:101-102` объясняет отсутствие
|
||||
`CTL_BIN` СОВСЕМ ДРУГИМ симптомом («прогон завершается, а платформа не узнаёт»), которого в коде нет.
|
||||
Первый боевой выкат встаёт ровно здесь.
|
||||
|
||||
**2. Инвентарь каналов лжёт трижды об одном.** `docs/STACK_DECISIONS.md:391-392` про
|
||||
`mined_delta`/`mined_rejects`: «путь из `book.yaml`», «писателя в движке НЕТ», «разрыв, ждёт
|
||||
ратификации». Факт: путь ВЫВОДИТСЯ (`backend/internal/config/book.go`, `yaml:"-"`, «DERIVED, never
|
||||
read from the file»), ключи в `book.yaml` RETIRED и ВАЛЯТ загрузку конфига, писатель есть с обеих
|
||||
сторон — и это говорит СОСЕДНЯЯ строка той же таблицы (`:393`). Цена: оператор впишет ключ в шаблон,
|
||||
и ни одна новая книга не загрузится.
|
||||
|
||||
**3. §23 объявляет карантин необратимым — ручка построена.** `docs/STACK_DECISIONS.md:233` «снятия
|
||||
карантина в дереве нет, ошибочный карантин необратим»; в дереве `cmd/tmplatformctl/main.go:124`
|
||||
`case "unquarantine"` с пинами, и сами `README.md:31` и `deploy/README.md:400` про неё знают.
|
||||
Оператор с замершим ПЛАТНЫМ прогоном по этому доку не пойдёт её искать.
|
||||
|
||||
**4. Пол отката назван «5», а реальный — «15».** `deploy/README.md:24-30` и `STACK_DECISIONS.md:64-71`
|
||||
против открытого `PD-218` (`DEFECT_REGISTER.md:128`): down-путь `00015` падает. План отката пишется
|
||||
под ложную границу и узнаётся в момент аварии.
|
||||
|
||||
**5. Кластер ложных посылок про песочницу и грацию.** `deploy/README.md:103-105` «дефолт `STATE_DIR`
|
||||
вне `ReadWritePaths`, запись маркера запрещена ФС» — ложно по двум осям (дефолт под
|
||||
`StateDirectory=`, а маркер пишет `ExecStopPost` транзиентного юнита БЕЗ песочницы) ·
|
||||
`deploy/tmplatformd.service:41-43` обосновывает `TimeoutStopSec=90` «грацией движка 30 с» при
|
||||
`internal/runner/runner.go:59` `stopGrace = 10 * time.Minute` и при том, что прогон юниту не ребёнок ·
|
||||
`:93-95` и `:104-106` ОДНОГО файла спорят, лежат ли прогоны в cgroup демона (а `PD-136` числится
|
||||
`fixed(P4)` с формулировкой «снятые абзацы удалены» — абзац на месте).
|
||||
|
||||
**6. «БЕЗ ЭТИХ ЧЕТЫРЁХ ИНСТАНС НЕ ЗАПУСТИТ НИ ОДНОГО ПЕРЕВОДА»** (`deploy/README.md:85-86`) —
|
||||
сверх-утверждение: у `CTL_BIN` и `STATE_DIR` рабочие дефолты, `ENGINE_KEYS_PATH` даёт WARN. Реально
|
||||
гейтит прогоны только `ENGINE_BIN`. Там же **«без `enable-linger` не стартует НИ ОДИН прогон»** —
|
||||
опровергнуто собственным замером зоны (H2: `Linger=no`, стартовали все шесть), доки не поправлены.
|
||||
|
||||
**7. Закрытое числится открытым, открытое — закрытым.** `BACKLOG.md:36` (П-21) держит `PD-369`
|
||||
развилкой, а код её закрыл (`internal/pgstore/idempotency.go:80-106`, «That is the whole of PD-369»),
|
||||
и регистр это знает (`fixed(пак P12)`) · `BACKLOG.md:32`/`platform-PROGRESS.md:314,455` говорят, что
|
||||
канон не даёт `operationId` третьему адресу — даёт с `58bca19` (`downloadExport`) ·
|
||||
`DEFECT_REGISTER.md:32,36` держит `PD-447` со статусом `fixed(adf5e53)` в секции «Открытые — minor».
|
||||
|
||||
**8. Ловушка онбординга, дороже прочих для НОВОЙ сессии зоны.** `README.md:4` и `:48` посылают за
|
||||
состоянием в шапку «Текущее состояние» этого журнала — а она стоит на строке ~2511 из 2775 и
|
||||
начинается с 23–24.08: паков P9–P13 и «закрыть цикл» под этим заголовком НЕТ. Сессия, послушавшая
|
||||
README, получает состояние двухнедельной давности.
|
||||
|
||||
**9. Мелочи с адресом:** `README.md:98` «Idempotency-Key на ДВУХ создающих вызовах» — их три (дверь
|
||||
выдачи) · `README.md:129` карта `internal/httpapi` не называет `exports.go` · `STACK_DECISIONS.md:469`
|
||||
«18 пакетов» → 19 · `:25` «40 запросов» → 50 · `:581-584` перечень админ-команд неполон на шесть ·
|
||||
`PLATFORM_DIRECTION.md:110` «20 операций, построено 14» → 21/18 · `DEFECT_REGISTER.md:136` `PD-439`
|
||||
«семь строк вне словаря» → две · `STACK_DECISIONS.md:16` «Postgres floor 16» — гейта в коде нет ·
|
||||
якоря без токена, уехавшие: `PD-410` `readmodel.go:460`→:545, `PD-157` `book.go:321`→:332,
|
||||
`STACK_DECISIONS.md:223` `store.go:88`→:274, ряд Д3 на снесённый `LiftBankStop`.
|
||||
|
||||
**10. НЕ ОПИСАНО, А НАДО:** `TM_PLATFORM_EXPORTS_DIR` обязан быть записываем ВНУТРИ песочницы юнита —
|
||||
`tmctl build --out` прямой ребёнок демона под `ProtectSystem=strict`, каталог вне
|
||||
`StateDirectory`/`ReadWritePaths` даст каждому экспорту `deployment_error`; для `BOOKS_DIR` та же
|
||||
оговорка написана, для экспорта нет · у `STATE_DIR` ДВА писателя (демон и `ExecStopPost` без
|
||||
песочницы) — не сказано нигде, сказано обратное · «демон на SIGTERM прогоны не трогает по замыслу»
|
||||
живёт только в шапке юнита, а рантбук останова говорит обратное.
|
||||
|
||||
⚠ **И одно, что оставил оркестратор:** в этом журнале `:37` говорит «оркестратор погасил чужой стенд
|
||||
по PID», а `:77` — «чужой стенд не тронут (pid 1090739)». Верно первое. Правка `6e31e29` закрыла
|
||||
обоснование запрета, а этот абзац остался — тот же класс «поправка доехала до одного носителя из
|
||||
двух», за который зона поймала оркестратора днём.
|
||||
|
||||
> Весь прогресс платформы — ЗДЕСЬ (решение владельца 04.08): пинги, итоги сессий, открытые
|
||||
> вопросы, предложения на ратификацию. В `docs/PROGRESS.md` платформа не пишет; оркестратор
|
||||
> читает этот журнал при каждом лендинге зоны (свип «решений владельца» — норма D39.99 п.4).
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue