homelab-codex-ws/docs/sessions/2026-08-26-kb-incydent-mailsync.md

45 lines
2.1 KiB
Markdown
Raw Permalink Normal View History

---
okf: "0.1"
type: session-log
visibility: private
status: active
updated: 2026-08-26
links: []
---
# Sesja 2026-08-26 — incydent kb-mail-sync: 20 dni ciszy, wykryte i naprawione
## Timeline
- **Wykrycie** — przy sanity checku po 3 tygodniach bez nadzoru (kontynuacja sesji 16:00,
patrz `docs/sessions/2026-08-26.md`): `mail-imap-sync` nie zapisał żadnej koperty od
2026-08-06 18:01 (pierwszy i jedyny udany tick automatu) mimo że timer tykał godzinowo
przez 20 dni. ~548 maili zaległości.
- **Diagnoza** — `PermissionError` na `save_eml`: katalogi archiwum `2026/08` powstały
`root:root` z ręcznych `sudo`-runów 06.08, timer działa jako `oskar`. Kursor nie
przeskakiwał niezapisanej wiadomości (zgodnie z projektem) — stąd cisza bez utraty poczty,
ale też bez sygnału.
- **Naprawa zapisu** — `chown -R oskar:oskar` na archiwum + dwa ręczne ticki: run#1
170 inserted/379 perm-errors (zaległości sprzed chowna), run#2 378 inserted/155
archive_exists/0 errors — pełne odzyskanie.
- **Reload Prometheusa** — przez CC z SOLARII (SSH na VPS): `promtool check rules` OK,
`POST /-/reload`, weryfikacja `/api/v1/rules` (wszystkie trzy grupy żywe), metryka
scrape'owana i świeża, `/api/v1/alerts` czyste, `brain-watchdog`→Telegram wpięty
poprawnie (`PROMETHEUS_URL` OK, kontener healthy).
Pełny opis root cause (oba, niezależne) i rekomendacje R1R3:
[kb/incidents/2026-08-26-mail-sync-20-dni-ciszy.md](../../kb/incidents/2026-08-26-mail-sync-20-dni-ciszy.md).
## Stan
Przyrostówka **znów żywa** i **po raz pierwszy faktycznie monitorowana** — reguła
`KbMailSyncStale` istniała w repo od 06.08, ale dopiero teraz jest realnie załadowana w
Prometheusie. Wcześniej alert nie mógł wystrzelić niezależnie od tego, jak długo trwałaby
awaria zapisu.
## Plan sprzed incydentu — przesunięty
Rotacja haseł (`kb-postgres` + teraz też `TG_TOKEN`, wyciekł w tej sesji przez `cat .env`
diagnostyczny — czwarty przypadek tej klasy) i recon Fazy 5 (wiki-kompilat) — obie pozycje
przesunięte na następną sesję, nie ruszone dzisiaj poza samą diagnozą.