Hello.
I'm seeing SQLITE_IOERR_READ errors in an application that reads from a SQLite .db file in one or more threads.? The 3.6.14.2 SQLite Amalgamation was compiled with SQLITE_THREADSAFE=1 defined.? Each thread has its own sqlite3* that is openned with sqlite3_open_v2 using these flags:? SQLITE_OPEN_READONLY|SQLITE_OPEN_FULLMUTEX.? The SELECT statements are prepared (in the thread, during each read) using sqlite3_prepare_v2.? The errors occur during the sqlite3_step(...) call.? The error is "disk I/O error" and the extended error code is SQLITE_IOERR_READ.? The error seems to occur in sqlite3.c's winRead(...) function during a ReadFile(...) call. When I limit the number of "read threads" to 1, GetLastError() reports: ERROR_NOACCESS 998 (0x3E6) Invalid access to memory location. When I limit the number of "read threads" to 3, GetLastError() reports: ERROR_INVALID_USER_BUFFER 1784 (0x6F8) The supplied user buffer is not valid for the requested operation. This page (http://msdn.microsoft.com/en-us/library/aa365467.aspx) indicates that ERROR_INVALID_USER_BUFFER can occur "whenever there are too many outstanding asynchronous I/O requests". If these error messages indicate that I might be using (or building) SQLite incorrectly, can you provide any input on what might be incorrect? Thank you for your time. ??? Mike _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users