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

Reply via email to