Коротко
- На Windows проблема подтверждена в OpenClaw 2026.9.6–2026.10.6; в 2026.10.7 есть сообщение об исправлении.
- Признак:
state/openclaw.sqlite-walрастёт, аcheckpointedFramesзамирает илиlastCompletedAtMsостаётсяnull. database is locked, таймауты cron и задержки запуска совпадали по времени, но прямая причинная связь не доказана.
Сверено с документацией OpenClaw 2026.10.7, 26 октября 2026.
Checkpoint не переносит страницы из журнала WAL обратно в state/openclaw.sqlite, поэтому база и -wal продолжают расти. На Windows удерживающий читатель может находиться внутри процесса OpenClaw, хотя телеметрия показывает readerCount: 0 и blockingOwner: "unknown".
Как распознать проблему
Ранний отчёт описывал PASSIVE blocked by a reader на OpenClaw 2026.9.7. Поздние наблюдения показали другой отпечаток: busy=0, но checkpointed-фреймы остаются на одном уровне.
- Состояние из логов:
state=blocked,logFrames,checkpointedFrames,consecutiveBlocked,lastCompletedAtMs,never_completed. - Дополнительный признак:
TRUNCATE remained busyприactiveReaders: [],readerCount: 0иblockingOwner: "unknown". - В одном отчёте
logFramesвырос с 27 051 до 27 328, аcheckpointedFramesостался равным 0.
Что показывают Doctor и диагностика
openclaw doctor проверяет состояние, но диагностика Gateway не называет удерживающий нативный statement. gateway diagnostics export добавляет очищенные логи, статус и снимок состояния.
openclaw gateway diagnostics export
openclaw gateway diagnostics export --output openclaw-diagnostics.zip
openclaw gateway diagnostics export --json
openclaw gateway stability --bundle latest --json
Поздний комментарий связал отпечаток с ошибкой node:sqlite в Node.js 24.16.0–24.18.0, исправленной в 24.18.1. Отдельный отчёт указывает на улучшение в OpenClaw 2026.10.7, но сводка треда требует регрессионной проверки на Windows.
Когда это уже не безобидно
- WAL продолжает расти после перезапуска, а checkpoint не завершается.
- В логах появляются
database is locked,CLI cleanup timed out: shared-state after 5000msилиcron: isolated agent setup timed out before runner start. - В одном случае в WAL накопилось около 2,03 GiB данных, со скоростью роста 100–200 MiB/ч.
- Диагностика показывает
readerCount: 0, ноcheckpointedFramesне меняется: явный признакblocked by a readerможет отсутствовать.
Что проверить у себя
- Зафиксируйте размер
state/openclaw.sqliteиstate/openclaw.sqlite-wal, затем повторите замер через 25 секунд. - Проверьте в логах
logFrames,checkpointedFrames,consecutiveBlocked,lastCompletedAtMs,never_completedиTRUNCATE remained busy. - Соберите диагностику командой
openclaw gateway diagnostics export. - Проверьте версии OpenClaw, Node.js и Windows. Особое внимание уделите версиям Node.js 24.16.0–24.18.0.
- Остановите Gateway и создайте проверенную резервную копию перед обслуживанием SQLite.
- Запустите
openclaw doctor --state-sqlite compact --json; команда сама проверяет блокировку владения, checkpoint, целостность и отказывается менять занятую базу. - После успешного обслуживания запустите
openclaw gateway startи повторно проверьте рост WAL.