Есть несколько прог которые использует базу на sqlite3. Периодически база падает с ошибкой - SQL error: database disk image is malformed. С чем это может быть связано?
> С чем это может быть связано?
С отстутствием блокировок при конкурентном обращении к базе?
#ifdef SQLITE_DEBUG
/*
** The following routine is subtituted for constant SQLITE_CORRUPT
** in debugging builds. This provides a way to set a breakpoint for
** when corruption is first detected.
*/
inline int
sqlite3Corrupt()
{
return SQLITE_CORRUPT;
}
#endif
<бла-бла-бла>
/**
** Return a static string that describes the kind of error specified
** in the argument.
*/
const char *
sqlite3ErrStr(int rc)
{
const char * z;
switch(rc & 0xff)
{
<бла-бла-бла>
case SQLITE_CORRUPT: z = "database disk image is malformed"; break;
<бла-бла-бла>
}
return z;
}
Может, драйвер ФС кривой и глючит с блокировками (такое бывает на сетевых ФС)? Тогда повреждение возможно. sqlite должен работать корректно на нормальных ФС.