On 02/26/2013 05:22 AM, Greg Janée wrote:
I'm accessing an SQLite database from two processes simultaneously. If
there's contention, one process will receive an SQLITE_BUSY; that's
fine. However, occasionally a process will receive an SQLITE_IOERR with
the extended result code SQLITE_IOERR_LOCK. This seems to occur if the
other process is in the middle of committing (at least, that's the only
time I've been able to observe it). Is this reasonable behavior? I was
expecting to get SQLITE_BUSY and nothing else. (SQLite 3.7.0.1 on
Solaris 10; database on local filesystem.)
Here's a log showing the serial actions of two processes, 9157 and 9096:
9157: opening cursor
9157: got cursor
9157: issuing begin immediate
9157: begun
9157: issuing delete
9157: deleted
9157: issuing commit
9096: opening cursor
9096: got cursor
9096: issuing begin immediate
9096: exception: IOError: disk I/O error, errcode=10, extended=3850
9096: closing cursor
9096: closed
9157: committed
9157: closing cursor
9157: closed
What is errno set to after the error occurs?
Dan.
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users