From b3c66254cab511567b74efc4d17e2c614c425be8 Mon Sep 17 00:00:00 2001 From: Taiga Date: Fri, 2 Oct 2026 17:40:43 +0000 Subject: [PATCH] [2026-10-02 17:40:43] taiga-vault: family/documents/vault-sync/2026-10-01-llm-timeout-outage-4.md --- .../2026-10-01-llm-timeout-outage-4.md | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 family/documents/vault-sync/2026-10-01-llm-timeout-outage-4.md diff --git a/family/documents/vault-sync/2026-10-01-llm-timeout-outage-4.md b/family/documents/vault-sync/2026-10-01-llm-timeout-outage-4.md new file mode 100644 index 00000000..911f17f8 --- /dev/null +++ b/family/documents/vault-sync/2026-10-01-llm-timeout-outage-4.md @@ -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 `, либо задать `--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`.