On Tue, Sep 18, 2012 at 11:58 AM, Helmut Grohne <hel...@subdivi.de> wrote:
> Dear sqlite users and developers, > > I am occasionally receiving SQLITE_LOCKED in a forking Python > application. Now according to the documentation > http://www.sqlite.org/cvstrac/wiki/wiki?p=DatabaseIsLocked and > http://www.sqlite.org/c_interface.html I should only get this error if > two actions happen on the same connection in parallel (either via > threads or via recursive calls). Since I have no clue why this happens I > reproduced the problem in a small example C program. Find sessiontest.c > attached. > The mailing list strips attachments. Please post in-line. > > So compile sessiontest.c and link it against sqlite on a unixoid > platform. Ensure that the filename "sessiontest.sqlite3" is absent and > writeable in the working directory. Run the executable. > > Observed behaviour: > sqlite3_exec(COMMIT): database is locked > sqlite3_prepare: database is locked > > Expected behaviour: > SQLITE_BUSY or no error, but certainly not SQLITE_LOCKED. > > Rationale: > My example program first forks and then opens individual connections. So > sharing via file descriptors or threads is not possible. Also my program > does not pass handlers (besides free) to sqlite, so it cannot cause > recursive calls. Therefore SQLITE_LOCKED should never happen. > > System used: > Debian squeeze amd64 libsqlite3-0 3.7.3-1 > Debian sid amd64 libsqlite3-0 3.7.13-1 > > Is this behaviour correct? If yes, why? > > Any proposed workarounds? > > Thanks in advance > > Helmut > > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > > -- D. Richard Hipp d...@sqlite.org _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users