[odb-users] Query Abort Error

Boris Kolpackov boris at codesynthesis.com
Fri Mar 15 07:57:54 EDT 2013


Hi Eric,

Sum, Eric B <eric.b.sum at lmco.com> writes:

> 1) Is this assessment correct?

Yes, this seems like a new "feature" in SQLite 3.7.11. From the mailing
list thread that you have referenced my understanding is that in the
shared cache mode a rollback in one transaction can cause rollbacks
in other (unrelated) transactions. Needless to say, this is quite a
bizarre behavior.

Specifically, I believe this change in the 3.7.11 changelog is to blame:

"Pending statements no longer block ROLLBACK. Instead, the pending 
 statement will return SQLITE_ABORT upon next access after the ROLLBACK."


> 2) If so, I am guessing that the odb exception thrown is recoverable 
>    (I am not sure which one).

We don't handle this situation in ODB yet. We need to add a new SQLite-
specific recoverable exception (e.g., 'forced_rollback') and throw it
if we get the SQLITE_ABORT_ROLLBACK extended error code.

I will let you know when there is a patch available for 2.2.0.


>    Therefore, could I simply catch the recoverable exception and retry
>    the query(like in 3.7 of the manual) as a solution to this?

Yes, that will be the idea.

Boris



More information about the odb-users mailing list