[2026-10-02 17:40:43] taiga-vault: family/documents/vault-sync/2026-10-01-llm-timeout-outage-4.md
This commit is contained in:
1 parent
57b7af5529
commit
b3c66254ca
1 file changed
+66
@@ -0,0 +1,66 @@
|
|||||||
|
---
|
||||||
|
type: incident
|
||||||
|
date: '2026-10-01'
|
||||||
|
tags:
|
||||||
|
- vault
|
||||||
|
- sync
|
||||||
|
- cron
|
||||||
|
- outage
|
||||||
|
- llm-provider
|
||||||
|
---
|
||||||
|
# 2026-10-01 — вечерний сбой синка vault: 2 ч 08 мин тишины (таймауты LLM)
|
||||||
|
|
||||||
|
**Итог: данные не потеряны.** Все три репозитория на одном коммите, рабочие деревья чистые.
|
||||||
|
Сбой — в LLM-петле prompt-задачи `sync-vault` (id `29851c413903`), не в git/Syncthing.
|
||||||
|
|
||||||
|
## Симптом
|
||||||
|
|
||||||
|
`/tmp/vault-sync.log` — дыра **128,6 мин**: `19:26:07 → 21:34:42` UTC.
|
||||||
|
Последняя штатная строка перед дырой — `19:26:07` (все три фазы `Pushed ✓`).
|
||||||
|
|
||||||
|
## Диагностика (`executions.db`, job 29851c413903)
|
||||||
|
|
||||||
|
| claimed_at | finished_at | раунд | статус | ошибка |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| 19:25:57 | 19:26:12 | 14,1 с | completed | — |
|
||||||
|
| 19:30:57 | 20:01:08 | 1810,5 с | failed | `RuntimeError: Non-streaming API call timed out after 600s with no response (threshold: 600s)` |
|
||||||
|
| 20:05:01 | 20:35:17 | 1816,1 с | failed | то же |
|
||||||
|
| 20:40:10 | 21:10:27 | 1816,1 с | failed | то же |
|
||||||
|
| 21:15:14 | 21:34:50 | 1175,8 с | completed | — |
|
||||||
|
| 21:35:17 | 21:35:30 | 13,3 с | completed | — |
|
||||||
|
|
||||||
|
- Между `claimed_at` соседних упавших тиков ровно ~34 мин (1810 с + 15 с) → **слоты 19:35…20:35 не запускались**: claim держался висящим раундом с автоповторами (порог 600 с × 3 попытки). Дыра в логе — следствие, а не пропуск диспетчера.
|
||||||
|
- Тик `21:15:14` досидел до `completed` за 1175,8 с и **влил накопленный бэклог** (фаза syncthing): строка лога `21:34:42`; с `21:35:17` каденция и короткие раунды (6–15 с) в норме.
|
||||||
|
|
||||||
|
## Класс отказа и место в серии
|
||||||
|
|
||||||
|
Это **третий** эпизод класса «зависший LLM-вызов блокирует 5-минутные тики» (600-секундные таймауты, не 402):
|
||||||
|
|
||||||
|
| дата | дыра в логе | длительность |
|
||||||
|
|---|---|---|
|
||||||
|
| 2026-09-14 | 18:30 → 21:30 | 180,0 мин |
|
||||||
|
| 2026-09-20 | 04:10:39 → 07:20:55 | 190,3 мин |
|
||||||
|
| **2026-10-01** | **19:26:07 → 21:34:42** | **128,6 мин** |
|
||||||
|
|
||||||
|
Отдельный класс — `HTTP 402: Insufficient Balance` (баланс провайдера): `09-21` 35,3 мин, `09-25` 264,6 мин, `09-28` 74,3 мин. **Новых 402 после 09-28 нет** — в окне `executions.db` за 24 ч до 10-02 17:36 UTC только 3 `failed`, все три — этот таймаутный эпизод (плюс 263 `completed`, 1 `running`).
|
||||||
|
|
||||||
|
## Проверка целостности (2026-10-02 17:36 UTC)
|
||||||
|
|
||||||
|
```
|
||||||
|
bare (57b7af55) == /vault (57b7af55) == /obsidian-syncthing (57b7af55)
|
||||||
|
git status --porcelain и ls-files -u — пусто в обоих клонах
|
||||||
|
origin обоих клонов = file:///vault.git, insteadOf = 2
|
||||||
|
Push failed = 2 (исторические гонки 09-27 10:46 / 09-29 06:35)
|
||||||
|
Fetch failed = 4 (исторические 09-26 09:40), remote: fatal = 0, No such file = 0
|
||||||
|
лог 37289 строк
|
||||||
|
```
|
||||||
|
|
||||||
|
Оконная сверка (окно = весь `executions.db` + лог с 09-15 11:35, 1001 тик): **16 молчащих тиков (1,6 %)** — базовая плотность, последние `10-02 17:05` 9,3 с, `15:00` 10,6 с, `12:35` 7,1 с; кластеров нет. Разрывы лога >30 мин — только разобранные эпизоды провайдера (09-20 190,3 / 09-21 35,3 / 09-25 264,6 / 09-28 74,3 / **10-01 128,6** мин).
|
||||||
|
|
||||||
|
## Выводы
|
||||||
|
|
||||||
|
1. Данные не теряются: git-синк идемпотентен, первый удачный тик (`21:15`) догнал бэклог целиком. Вмешательства не потребовалось — каденция восстановилась сама.
|
||||||
|
2. Частота эпизодов деградации провайдера (09-14, 09-20, 10-01 — примерно раз в 1,5–2 недели, плюс серия 402-эпизодов 09-21/09-25/09-28) держит открытым прежний вопрос к владельцу: убрать LLM из петли — `hermes cron edit 29851c413903 --no-agent --script <persistent-path>`, либо задать `--model`/`--provider` с fallback.
|
||||||
|
3. По 402-классу с 09-28 улучшение: за 4 суток ни одного `HTTP 402`.
|
||||||
|
|
||||||
|
См. также: `2026-09-14-cron-api-timeout-sync-outage.md`, `2026-09-20-morning-sync-outage.md`, `2026-09-25-http402-balance-outage.md`, `2026-09-28-http402-balance-outage-3.md`.
|
||||||
Reference in new issue
Block a user