| Предыдущий | Следующий |
| SQLITE_E_DONE | SQLITE_E_LOCKED_SHAREDCACHE |
SQLITE_E_BUSY_RECOVERY
Что означает SQLITE_E_BUSY_RECOVERY
SQLITE_E_BUSY_RECOVERY — extended SQLite result, сообщающий, что база занята recovery-процессом. Это состояние блокировок/восстановления после прерванной работы, а не ошибка SQL syntax и не доказательство повреждения database file.
Что проверить
- Сохраните extended result,
sqlite3_errmsg(), database path, journal mode и используемый VFS. - Определите connection/process, выполняющий recovery, и продолжительность его transaction/lock ownership.
- Проверьте
-wal,-shmили rollback journal только как часть штатного locking state; не удаляйте sidecar-файлы у работающей базы.
Как действовать
Дождитесь завершения recovery либо устраните зависший owner после подтверждения, что он действительно не работает. Для конкурентного доступа используйте ограниченный busy timeout/backoff. Ручное удаление journal/WAL ради снятия BUSY может превратить временную блокировку в потерю данных.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
