Что означает код HRESULT 0x87AF0208 (SQLITE_E_READONLY_CANTLOCK)?

 
Предыдущий Следующий
SQLITE_E_BUSY_SNAPSHOT SQLITE_E_IOERR_SHORT_READ

SQLITE_E_READONLY_CANTLOCK

Что означает SQLITE_E_READONLY_CANTLOCK

SQLITE_E_READONLY_CANTLOCK означает, что SQLite оказался в read-only path, но текущая операция или journal mode требует lock, который VFS установить не может. Это не равнозначно повреждённой базе: часто ограничение задаёт filesystem, snapshot или sidecar-file policy.

Что проверить

  • Сохраните open flags, database path, права каталога и journal mode.
  • Проверьте возможность создавать/открывать и блокировать -wal/-shm или rollback journal; права только на основной файл не описывают весь SQLite write path.
  • Для network/snapshot/read-only storage проверьте реальную lock semantics VFS, а не только ACL.

Как действовать

Либо предоставьте storage/VFS требуемые write/lock возможности, либо используйте режим чтения, который не требует недоступной блокировки. Не снимайте read-only атрибут механически, пока не понятно, должен ли этот deployment вообще выполнять запись.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.