I have an Android app that does work in the database every five minutes (at least). Every few days I am seeing:

    org.sqlite.database.sqlite.SQLiteDiskIOException: disk I/O error (code 1034)

Code 1034 is SQLITE_IOERR_FSYNC.

This is using a custom build of the Sqlite bindings but I should note that this also occurred under the vanilla build as well as in SqlCipher.

This leads me to believe it's a problem with the underlying code (or my use of 
it).

The app has multiple threads. It's always a background thread that throws this error.

I believe that the specific Sqlite3 api being called in sqlite3_step, but can not be sure. The android stack trace is:

Caused by: org.sqlite.database.sqlite.SQLiteDiskIOException: disk I/O error (code 1034) at org.sqlite.database.sqlite.SQLiteConnection.nativeExecuteForChangedRowCount(Native Method) at org.sqlite.database.sqlite.SQLiteConnection.executeForChangedRowCount(SQLiteConnection.java:776) at org.sqlite.database.sqlite.SQLiteSession.executeForChangedRowCount(SQLiteSession.java:759) at org.sqlite.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:68) at net.philipwarner.platforms.android <http://net.philipwarner.platforms.android>.sqlitenative.NativeStatement.execute(NativeStatement.java:74)

Any comments or thoughts on what this might mean? Fsync in multiple threads? Fysnc while doing IO elsewhere?

The app continues to work after the crash caused by this error; but it does kill the entire app.


_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to