-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 07/07/2015 02:06 PM, Brian Soby wrote:
> I don't believe it's a python specific issue since the core problem
> occurs in a rollback command internal to SQLlite.

Unless you configure it otherwise, pysqlite likes to parse your SQL
and do extra operations behind your back (eg automatically starting
and committing transactions).  pysqlite also doesn't do
multi-threading correctly - how do you do threading?

> I don't have an easy way to recreate the problem ...

That will make it very tricky.  Note that these kind of issues are
extremely rare in SQLite, and almost always caused by other bits of
code corrupting memory, and taking out SQLite as a side effect.  Try
disabling as many non-SQLite extensions as possible (that are
implemented in C).  Also use valgrind and similar tools as memory
checkers.

  https://www.sqlite.org/testing.html

Sadly pysqlite doesn't have an easy way of tracing SQL execution
without you modifying all call sites and updating its code to catch
the behind your back operations.

If you have the time and can update your code, you can try APSW as an
alternative to pysqlite (disclosure: I am the APSW author).  APSW
includes a tool that lets you see all queries and data returned, as
well as profiling information:

  http://rogerbinns.github.io/apsw/execution.html#apsw-trace

You may also find these two links relevant:

  http://rogerbinns.github.io/apsw/pysqlite.html
  https://pythonhosted.org/sqmediumlite/src/apswdbapi2.py.html

Roger
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iEYEARECAAYFAlWcVZwACgkQmOOfHg372QSOjACgoSXRAijHJncTHYY6VU4dfB6Q
gHIAoMT6zvydHZCvhNAFzX1azvFmMeZO
=mfkI
-----END PGP SIGNATURE-----

Reply via email to