У меня есть (крошечный) динамический веб-сайт, который (примерно) представляет собой Perl CGI-скрипт, использующий базу данных SQLite. Пакет DBI - это уровень абстракции, используемый в Perl.
Около недели назад я начал видеть это сообщение об ошибке:
disk I/O error(10) at dbdimp.c line 271
Поскольку это хост-сайт, на котором работает Apache, я не могу увидеть, заполнен ли жесткий диск (почти). Доступ к команде "df" отключен .... но я использовал (UNIX) команду оболочки "yes> blah", чтобы проверить, может ли диск создавать новые файлы. Моя база данных очень маленькая - менее 50 килобайт.
Я проверил права доступа к файлам и директориям: Директория и все родители - это + r, a + x (все + для чтения / выполнения). Каталог, содержащий мой файл базы данных SQLite, также является + w (все + запись). Сам файл базы данных имеет + w, + r (все + чтение / запись).
Я написал простую программу на Perl, чтобы проверить, могу ли я выполнить неудачный запрос выбора: он работает нормально.
Я выполнил запрос "VACUUM" в базе данных. Я попробовал свои тесты снова - без улучшений.
Я сбросил базу данных SQLite в необработанный SQL (используя команду оболочки SQLite ".dump") и перестроил. Я попробовал свои тесты снова - без улучшений.
Есть предложения? Я так растерялся ... Обычно приведенный выше список может отлавливать большинство ошибок программирования / настройки.