LINUX.ORG.RU

sqlite падаем база


0

0

Есть несколько прог которые использует базу на sqlite3. Периодически база падает с ошибкой - SQL error: database disk image is malformed. С чем это может быть связано?

Ответ на: комментарий от Pi

вообщето да, sqlite использует файловые блокировки

grishkin
() автор топика

> С чем это может быть связано?

С отстутствием блокировок при конкурентном обращении к базе?

#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;
}

anonymous
()
Ответ на: комментарий от anonymous

Т.е. если правильно понял sqlite по умолчанию не ставит блокировки, и при инициализации я должен их выставить.

grishkin
() автор топика

Может, драйвер ФС кривой и глючит с блокировками (такое бывает на сетевых ФС)? Тогда повреждение возможно. sqlite должен работать корректно на нормальных ФС.

mo3r
()
Ответ на: комментарий от mo3r

У меня база на reiserfs. И она периодически падает. и я не знаю от чего. Всю голову уже поломал

grishkin
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.