Ok, this one took me a bit to track down. The version of SQLObject TG uses has a threading bug in it. If a SQLObject class' __init__ method throws an exception (any time there's a constraint violation or, where we ran into it, unicode encode/decode errors), trying to instantiate any other SQLObject class in a different thread locks SQLObject, which locks the request, which locks the thread. At this point all accesses to the app server hang.
I'm pretty sure many people have run into this in production. A fix was applied to the SQLObject 0.8 branch. The patch was applied to the SQLObject 0.7-bugfix branch too, but hasn't been distributed with the most recent version of TG. If you ask me, this is a big enough problem that a new release should be pushed through pretty quickly (maybe just updating the version of SQLObject that's available is good enough and people can -U it). As a side note, we've been using SQLObject 0.8 pretty much since we started using TG. I don't think we've had any problems at all. Jason
signature.asc
Description: PGP signature

