最近、Heroku の Bamboo スタックから Cedar スタック (Rails 3.1.4、Ruby 1.9.2、Web サーバー用の Thin gem) に切り替えました。それ以来、クエリが正しく動作していないように見える、次のような 500 件のエラーが発生し続けています。
207 <13>1 2012-05-06T16:10:51+00:00 d. app web.1 - - ActiveRecord::StatementInvalid (Mysql::Error: : SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = ? LIMIT 1)
ただし、ページを更新すると最終的にページが正常にレンダリングされるため (つまり、ステータス 200)、コードのエラーではありません。1 回の更新の場合もありますが、200 を取得する前に最大 4 回の更新を取得できます。
ClearDBの無料プランだったのでデータベースのせいだと思っていたのですが、I/O性能の良いClearDBの次のプランにアップグレードしたところ、やはり発生します
- これは、Bamboo を使用していたときには決して起こりませんでした
- DBでクエリを実行するほぼすべてのページで発生します
- 常に発生するとは限りませんが、少なくとも 5 分の 1 のページ ビューで発生すると思います
- モデル/クエリは関係ありません。同じエラーが発生します (上記の例とは異なるモデル/フィールドを示しているだけです)。