Прод RUVDS отдаётся быстро (~0.35s); медленность была локальной stale-копией (LAN-DNS → home traefik :8089), не дефектом прода. traefik не трогал. Open ES-incident треки/guards перенесены вперёд. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
54 lines
4.8 KiB
Markdown
54 lines
4.8 KiB
Markdown
---
|
||
_last_updated_: 2026-05-29T13:30:00+03:00
|
||
session_id: 2026-05-29-labtools-slow-noissue
|
||
---
|
||
|
||
# Next session handoff
|
||
|
||
_Сессия: разбор «labtools.ru тормозит после переезда на RUVDS». Итог — **non-issue**:
|
||
прод на RUVDS быстрый (~0.35s TTFB), «медленно» было артефактом замера с воркстейшн
|
||
(LAN-DNS резолвит домен в локальную stale-копию). Инфру не трогал, traefik не правил.
|
||
Открытые ES-incident треки прошлой сессии перенесены ниже — ещё живые._
|
||
|
||
## Recent commits
|
||
|
||
- `063910e2` incident(books-vds-es): true RCA — ransom-бот через открытый :9200
|
||
- `63708fe6` tasks(NEXT_SESSION): session-close — ES restore + 2 preventive controls live
|
||
- `48a5cf39` tasks(restore-es-indices-books-vds): closed — snapshot restore + 2 controls
|
||
|
||
## Что сделали в эту сессию (labtools)
|
||
|
||
- Жалоба: labtools.ru медленно отдаётся на RUVDS, pilorama98.ru норм.
|
||
- **Root cause = артефакт замера, не дефект прода.** Публичный DNS labtools.ru/pilorama98.ru → RUVDS `80.64.31.36`; прод TTFB ~0.35s (curl --resolve), картинки 0.13–0.5s — быстро. Но с этой воркстейшн LAN-DNS резолвит домены в **локальную stale-копию** (home traefik :4443 → IIS :8089), которая тормозит для тенанта labtools (HTML TTFB 1.45s vs pilorama 0.25s на том же :8089).
|
||
- traefik-конфиги `labtools.yml` ≡ `pilorama98.yml` побайтово (оба → host.docker.internal:8089) → в traefik чинить нечего.
|
||
- К концу сессии user подтвердил «labtools.ru стал отдаваться нормально» (видимо дорезолвился кэш на RUVDS). **Ничего не менял.**
|
||
- Memory сохранён: `workstation-lan-dns-serves-local-cms-copy` (валидировать прод только через `curl --resolve` / не-LAN, браузер через MCP тоже бьёт в локальную копию).
|
||
|
||
## Open треки (перенос из ES-incident сессии — ещё живые)
|
||
|
||
| Трек | Готовность | Entry-point |
|
||
|---|---|---|
|
||
| `harden-books-vds-exposed-ports` | ⚪ ready — exposure-audit сделан | `.tasks/harden-books-vds-exposed-ports.md` |
|
||
| `books-bookva-user-whitelist-gathering` | ⚪ ready — gathering от учредителя Bookva | `.tasks/STATUS.md` |
|
||
| `stateful-split-volume-copy` | ⚪ ready — maintenance window 5–10 мин | `.tasks/STATUS.md` |
|
||
| `infra-inventory` | ⚪ ready — two-tier (public + admin) | `.tasks/STATUS.md` |
|
||
| `books-stateful-split-execution` / `books-vds-bookva-bootstrap` / `books-dns-cutover-bookva` | 🔵 blocked | `.tasks/STATUS.md` |
|
||
|
||
## Спроси user'а
|
||
|
||
- **epz-поиск end-to-end не подтверждён руками** (из прошлой сессии) — починено место падения (`tenant undefined`), но аутентифицированный запрос из UI не делался. Проверить epz в обоих UI (bookseller.kzntsv.site = bookva, bookva.kzntsv.site = slovo). Downstream → логи `books-web`/`bookva-web`.
|
||
- **harden-ports**: user сказал «пока нет» на немедленный mongo-allowlist. Не начинать без явного запроса.
|
||
|
||
## Не делать (preemptive guards)
|
||
|
||
- **Не возвращать публикацию `:9200`** (и stateful-портов) на `0.0.0.0` без IP-allowlist — free-ES без auth, ransom-бот уже отметился.
|
||
- **Не трогать mongo/mariadb/minio порты** без подтверждения user'а.
|
||
- **Не использовать `ssh + docker compose up -d`** на VDS для Portainer-stacks — только Portainer API. Исключение: traefik/portainer (management-plane).
|
||
- **Не «чинить» traefik labtools.yml вслепую** — он корректен, идентичен рабочему pilorama; медленность была локальной DNS-копией, не конфигом.
|
||
- **branch ahead от origin** — push без явного grant'а (project-discipline Rule 4). Этой сессии grant НЕ давали.
|
||
|
||
## Memory updates за сессию
|
||
|
||
- ✅ `workstation-lan-dns-serves-local-cms-copy` (новый) — мигрированные CMS-домены с воркстейшн резолвятся в локальную stale-копию, не RUVDS; валидировать прод через `curl --resolve`/off-LAN.
|
||
- Кандидат с прошлой сессии (НЕ сохранён): books VDS — docker port-publish обходит firewalld; stateful-сервисы наружу = vector.
|