On Thu, Sep 03, 2009 at 10:26:03AM +0200, Sophana K wrote:
> File "/usr/lib/python2.5/site-packages/SQLObject-0.10.2-py2.5.egg/sqlobject/dbconnection.py",
> line 856, in doInTransaction
> conn = old_conn.transaction()
> File "/usr/lib/python2.5/site-packages/SQLObject-0.10.2-py2.5.egg/sqlobject/dbconnection.py",
> line 754, in __getattr__
> self.assertActive()
> File "/usr/lib/python2.5/site-packages/SQLObject-0.10.2-py2.5.egg/sqlobject/dbconnection.py",
> line 678, in assertActive
> assert not self._obsolete, "This transaction has already gone
> through ROLLBACK; begin another transaction"
> AssertionError: This transaction has already gone through ROLLBACK;
> begin another transaction
>
> It looks like its related with the mysql server being overloaded. But
I think you mean "restarted", not "overloaded", right?
> I still don't understand why.
> I've been looking at the source and don't understand how this can
> happen. I never call rollback in my source, and always make
> transactions through doInTransaction.
doInTransaction() calls rollback() on any exception.
> In the traceback I don't understand why there are missing step between
> conn = old_conn.transaction() and self.assertActive(). It should go
> through the Transaction constructor.
What connection have you assigned to hubNoCache? It seems it's a (rolled
back) transaction, not a simple connection.
Oleg.
--
Oleg Broytmann http://phd.pp.ru/ ph...@ph...
Programmers don't die, they just GOSUB without RETURN.
|