I am using a TurboGears app named Tasty and it was acting very
strangely under heavy loads. I've traced the problem to ConnectionHub
and its __set__ method. Somewhere inside SQLObject (I've saw
iterSelect in the call stack) the current connection is assigned to
_connection.  This is SQLObject 0.8.2.

Turns out that once that happens, you will always get the connection
assigned to _connection instead of the one being used by your current
thread, so in the case of this TurboGears app, Transaction objects
were being used across different threads, leading to eventual
AssertionError in Transaction.assertActive after one of the threads
using that transaction object called makeObsolete.

To the best of my understanding, the __set__ method on ConnectionHub
should be a no-op, or maybe whatever is assigning to _connection is
what should be fixed.

Thoughts?

-- 
Sidnei da Silva
Enfold Systems                http://enfoldsystems.com
Fax +1 832 201 8856     Office +1 713 942 2377 Ext 214

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
sqlobject-discuss mailing list
sqlobject-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss

Reply via email to