问题
I have a Sinatra application using the Sequel gem against a sqlite3 database. I've been developing on a MacBook Pro running Mavericks. I have been running the app locally using the shotgun gem and everything has been working just fine. Recently I decided to run the application with Passenger and Nginx. When I run the application under passenger/nginx, the app errors out with the following in the logs
App 17805 stdout: E, [2014-02-09T20:44:42.491448 #17805] ERROR -- : SQLite3::IOException: disk I/O error: SELECT * FROM `movies`
App 17735 stderr: Sequel::DatabaseError - SQLite3::IOException: disk I/O error:
I checked permissions on the database and I believe they are set correctly.
smbp2:storage jojoba$ ls -lthr
total 112
-rw-rw-rw- 1 jojoba staff 28K Feb 1 22:40 dev.db
I have a feeling there is some sort of permissions problem going on with the passenger process reading the database but I am unsure why the database would not be readable with the permissions I listed above. I saw a similar question on Stack Overflow - "Exception Message: Some kind of disk I/O error occurred", but this seems to pertain to deletes against the database.
I don't believe there is any database corruption going on, the app still works when I run it using shotgun.
Has anyone run across anything similar?
来源:https://stackoverflow.com/questions/21669502/sqlite3ioexception-disk-i-o-error-on-select