SQLAlchemy がエラーをはいた

Python で Web アプリケーションを作っていて、ログイン後しばらく放っておいて、他の画面に遷移すると以下のようなエラーが出た。

sqlalchemy.exc.StatementError: (sqlalchemy.exc.InvalidRequestError) Can't reconn
ect until invalid transaction is rolled back 

今まで SQLAlchemy を使ってたけど、初めて遭遇した。
なんだろうこれと思って調べたら、SQLAlchemy の pool_recycle の秒数が MySQL の wait_timeout の秒数より長く設定していためだった。
とりあず pool_recycle の値を wait_timeout と同等にする事で解決。


ちゃんと MySQL のチューニングをする際に気をつけないと。