ReferenceError だと

LinuxでTracMailArchiveExtを動かしてみたらエラー出まくってびっくり。ReferenceErrorだとさ。

Yeah, PySQLite uses weak references between cursors and connections

http://osdir.com/ml/python.db.pysqlite.user/2003-12/msg00044.html

これかな。。。? cursorとconnectionはWeak Referenceで関係もっているらしい。

問題箇所付近のコードは以下のような感じ。

cursor = self.env.get_db_cnx().cursor()
cursor.execute("SELECT ...")

executeの中でエラーが起きる(時がある?)

以下のようにすると大丈夫になった。これだとGC対象にならないのかしら。謎。。。

db = self.env.get_db_cnx()
cursor = db.cursor()
cursor.execute("SELECT ...")