Hi

I still haven't resolved my rollback assert problem which happens
about once per month.
But I have gathered some tracebacks.
In all cases, it looks like Transaction.__getattr__ gets called at
places I don't understand.
Maybe tracebacks are corrupted?
If someone has a clue where to look at, it would be nice.
I don't understand very well what is the function of the
Transaction.__getattr__ method.

Thanks for your help.


File 
"/usr/lib/python2.5/site-packages/SQLObject-0.10.3-py2.5.egg/sqlobject/dbconnection.py",
line 866, in doInTransaction
   conn = old_conn.transaction()
 File 
"/usr/lib/python2.5/site-packages/SQLObject-0.10.3-py2.5.egg/sqlobject/dbconnection.py",
line 398, in transaction
   return Transaction(self)
 File 
"/usr/lib/python2.5/site-packages/SQLObject-0.10.3-py2.5.egg/sqlobject/dbconnection.py",
line 681, in __init__
   self._connection = dbConnection.getConnection()
 File 
"/usr/lib/python2.5/site-packages/SQLObject-0.10.3-py2.5.egg/sqlobject/dbconnection.py",
line 281, in getConnection
   self._poolLock.release()
 File 
"/usr/lib/python2.5/site-packages/SQLObject-0.10.3-py2.5.egg/sqlobject/dbconnection.py",
line 764, in __getattr__
   self.assertActive()
 File 
"/usr/lib/python2.5/site-packages/SQLObject-0.10.3-py2.5.egg/sqlobject/dbconnection.py",
line 688, 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

Here getattr is called in self._poolLock.release() inside a DBAPI
method: getConnection
self is a DBAPI instance.
I don't see why the Transaction.__getattr__ gets called.


File 
"/usr/lib/python2.5/site-packages/SQLObject-0.10.3-py2.5.egg/sqlobject/dbconnection.py",
line 878, in doInTransaction
   conn.commit(close=True)
 File 
"/usr/lib/python2.5/site-packages/SQLObject-0.10.3-py2.5.egg/sqlobject/dbconnection.py",
line 729, in commit
   if self._dbConnection.debug:
 File 
"/usr/lib/python2.5/site-packages/SQLObject-0.10.3-py2.5.egg/sqlobject/dbconnection.py",
line 764, in __getattr__
   self.assertActive()
 File 
"/usr/lib/python2.5/site-packages/SQLObject-0.10.3-py2.5.egg/sqlobject/dbconnection.py",
line 688, 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

here getattr is called in self._dbConnection.debug
self is a Transaction. Maybe _dbConnection doesn't exist anymore?

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

------------------------------------------------------------------------------
Throughout its 18-year history, RSA Conference consistently attracts the
world's best and brightest in the field, creating opportunities for Conference
attendees to learn about information security's most important issues through
interactions with peers, luminaries and emerging and established companies.
http://p.sf.net/sfu/rsaconf-dev2dev
_______________________________________________
sqlobject-discuss mailing list
sqlobject-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss

Reply via email to