[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