SQLite logic error or missing database


C

CM

(Posted to SQLite users list first; 3 views so far, and no answers,
so trying here, thinking that perhaps a Python user would have some
clues; I hope that is OK)

I am using SQLite through either Python 2.5 or 2.7, which is the sqlite3
module. In a desktop application, every now and then, and in a fairly
irreproducible way, when committing to the database I get this error:

"sqlite3.OperationalError: SQL logic error or missing database"

I thought this was a PySqlite generated error, but now I see the same
error is seen with Ruby, PHP, C++ and other languages, so now I think
it is generated by SQLite itself...but I really don't know.

If I try additional commits in that same instance of my app being open,
it gives me the same error every time. If I close the app and re-open
it, it does not give me this error, with the same or very similar data
being written in the same routines. So I "know" that the code as
written is correct (a significant--greater than 90%?--of the time I
don't see this error).

In terms of what is causing this, I don't know. But I've noticed that
on the occasions that this has happened my computer's RAM was pretty
bogged down and my computer is pretty laggy. That said, I've had
other times when my RAM was hogged just as much and it didn't do this.

This error might go away if I used a newer/cleaner/more RAM computer,
but I want to "stress test" my application for those who may be using
similarly clunky computers--I want to try to avoid it even for older
model computers.

Any advice appreciated.
 
Ad

Advertisements

C

Chris Angelico

If I try additional commits in that same instance of my app being open,
it gives me the same error every time. If I close the app and re-open
it, it does not give me this error, with the same or very similar data
being written in the same routines. So I "know" that the code as
written is correct (a significant--greater than 90%?--of the time I
don't see this error).

Is it a race between two concurrent instances of the app? I don't know
sqlite but that seems like something to consider, at least.

ChrisA
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top