Стадия 7 — сквозная верификация и наблюдение после деплоя #7

Closed
opened 2026-07-05 04:03:20 +03:00 by agent_vscode · 0 comments
Collaborator

Цель

Подтвердить, что все инварианты плана выполняются, и что прод после выката реально перестал флакать и зависать.

Полный план: plans/2026-07-05-stability-fix-plan.md

Целевые инварианты (чеклист финальной проверки)

  • Любой файл с финальным именем ({fid} / temp_{fid}) — полный; частичным может быть только *.part.*
  • Каждый Telegram RPC ограничен таймаутом; глобальный гейт не удерживается дольше таймаута
  • FloodWait никогда не превращается в 404
  • Event loop не выполняет CPU-работу > ~50 мс за раз
  • Каждая фоновая задача supervised
  • Healthcheck не зависит от TG RPC и обхода ФС

Задачи

  • Полный pytest (174 baseline + все новые тесты стадий 1–6)
  • Range-матрица curl'ом: bytes=0-99 → 206, bytes=-100 → 206, bytes=999999999- → 416
  • Параллельные запросы одного большого видео на медленном фейк-клиенте → нет частичной отдачи
  • Обрыв клиента на середине стрима → нет утечки тасков/fd (логи + lsof)
  • Генерация фида на 100+ сообщений + параллельный /ping → ping < 100 мс
  • Деплой на прод, наблюдение по diag-логам:
    • diag_semaphore_wait, diag_download_timing — ожидания упали
    • diag_sanitize_slow — почти исчез
    • watchdog: heartbeat — продолжаются
    • нет всплесков 404 на /media в моменты FloodWait (теперь 429)
  • Обновить прод-компоуз (healthcheck → /ping) — руками, вне репозитория
  • Выровнять локальный venv с requirements (Kurigram 2.2.22) — если не сделано в начале работ

Rollback-план

Каждая стадия — отдельный коммит в fix/stability → откатывается индивидуально через revert. Порядок выката: стадия 1 → наблюдение → стадия 2 → наблюдение → остальные.

Зависимости: стадии 1–6.

## Цель Подтвердить, что все инварианты плана выполняются, и что прод после выката реально перестал флакать и зависать. Полный план: [plans/2026-07-05-stability-fix-plan.md](https://gitea.vvzvlad.xyz/vvzvlad/pyrogram-bridge/src/branch/fix/stability/plans/2026-07-05-stability-fix-plan.md) ## Целевые инварианты (чеклист финальной проверки) - [ ] Любой файл с финальным именем (`{fid}` / `temp_{fid}`) — полный; частичным может быть только `*.part.*` - [ ] Каждый Telegram RPC ограничен таймаутом; глобальный гейт не удерживается дольше таймаута - [ ] FloodWait никогда не превращается в 404 - [ ] Event loop не выполняет CPU-работу > ~50 мс за раз - [ ] Каждая фоновая задача supervised - [ ] Healthcheck не зависит от TG RPC и обхода ФС ## Задачи - [ ] Полный pytest (174 baseline + все новые тесты стадий 1–6) - [ ] Range-матрица curl'ом: `bytes=0-99` → 206, `bytes=-100` → 206, `bytes=999999999-` → 416 - [ ] Параллельные запросы одного большого видео на медленном фейк-клиенте → нет частичной отдачи - [ ] Обрыв клиента на середине стрима → нет утечки тасков/fd (логи + lsof) - [ ] Генерация фида на 100+ сообщений + параллельный `/ping` → ping < 100 мс - [ ] Деплой на прод, наблюдение по diag-логам: - `diag_semaphore_wait`, `diag_download_timing` — ожидания упали - `diag_sanitize_slow` — почти исчез - `watchdog: heartbeat` — продолжаются - нет всплесков 404 на `/media` в моменты FloodWait (теперь 429) - [ ] Обновить прод-компоуз (healthcheck → `/ping`) — руками, вне репозитория - [ ] Выровнять локальный venv с requirements (Kurigram 2.2.22) — если не сделано в начале работ ## Rollback-план Каждая стадия — отдельный коммит в `fix/stability` → откатывается индивидуально через revert. Порядок выката: стадия 1 → наблюдение → стадия 2 → наблюдение → остальные. **Зависимости**: стадии 1–6.
Sign in to join this conversation.