時々、アプリを再起動するか、dyno が自動的にサイクル/再起動されると、dyno は再起動しますが、Can't connect to MySQL server on (url) (110)
エラーが発生します。!! Unexpected error while processing request: can't modify frozen array
その後、dyno を手動で再起動するまで、取得するすべてのリクエストで継続的にエラーをスローします。その後、他のすべてのdynoと同じように完全に問題ありません
Jan 29 22:18:23 myapp heroku/web.26: State changed from up to starting
Jan 29 22:18:27 myapp heroku/web.26: Stopping all processes with SIGTERM
Jan 29 22:18:29 myapp heroku/web.26: Process exited with status 0
Jan 29 22:18:32 myapp heroku/web.26: Starting process with command `bundle exec thin -p 41924 -e production -R /home/heroku_rack/heroku.ru start`
Jan 29 22:18:40 myapp app/web.26: >> Thin web server (v1.4.1 codename Chromeo)
Jan 29 22:18:40 myapp app/web.26: >> Maximum connections set to 1024
Jan 29 22:18:40 myapp app/web.26: >> Listening on 0.0.0.0:41924, CTRL+C to stop
Jan 29 22:18:42 myapp heroku/web.26: State changed from starting to up
Jan 29 22:19:08 myapp app/web.26: Starting the New Relic Agent.
Jan 29 22:19:08 myapp app/web.26: Installed New Relic Browser Monitoring middleware
Jan 29 22:19:08 myapp app/web.26: ** [NewRelic][01/29/13 19:19:08 -0800 dd1c41a1-e62a-46f0-bdc8-f48919d4db3c (2)] INFO : Dispatcher: thin
Jan 29 22:19:08 myapp app/web.26: ** [NewRelic][01/29/13 19:19:08 -0800 dd1c41a1-e62a-46f0-bdc8-f48919d4db3c (2)] INFO : Application: myapp
Jan 29 22:19:08 myapp app/web.26: ** [NewRelic][01/29/13 19:19:08 -0800 dd1c41a1-e62a-46f0-bdc8-f48919d4db3c (2)] INFO : New Relic Ruby Agent 3.5.3 Initialized: pid = 2
Jan 29 22:19:08 myapp app/web.26: ** [NewRelic][01/29/13 19:19:08 -0800 dd1c41a1-e62a-46f0-bdc8-f48919d4db3c (2)] INFO : NewRelic::Agent::Samplers::DelayedJobSampler sampler not available: No DJ worker present
Jan 29 22:19:18 myapp app/web.26: ** [NewRelic][01/29/13 19:19:18 -0800 dd1c41a1-e62a-46f0-bdc8-f48919d4db3c (2)] INFO : Connected to NewRelic Service at collector-1.newrelic.com
Jan 29 22:19:18 myapp app/web.26: ** [NewRelic][01/29/13 19:19:18 -0800 dd1c41a1-e62a-46f0-bdc8-f48919d4db3c (2)] INFO : Reporting performance data every 60 seconds.
Jan 29 22:19:31 myapp app/web.26: !! Unexpected error while processing request: Can't connect to MySQL server on 'myrdsinstance.us-east-1.rds.amazonaws.com' (110)
Jan 29 22:19:31 myapp app/web.26: !! Unexpected error while processing request: can't modify frozen array
Jan 29 22:19:31 myapp app/web.26: !! Unexpected error while processing request: can't modify frozen array
Jan 29 22:19:31 myapp app/web.26: !! Unexpected error while processing request: can't modify frozen array
Jan 29 22:19:31 myapp app/web.26: !! Unexpected error while processing request: can't modify frozen array
Jan 29 22:19:31 myapp app/web.26: !! Unexpected error while processing request: can't modify frozen array
私たちの MySQL インスタンスは RDS インスタンスであり、Heroku dyno からのみ、他の EC2 インスタンスまたはローカルから接続する際に問題が発生したことはありません。
問題かなとback_log
思い値を上げてみましたが、エラーの発生には影響しませんでした。
何がうまくいかないのかを診断したり、この接続の問題を解消したりするために、他に何ができるでしょうか? RDS と Heroku を使用しているため、ロギング オプションはかなり制限されているようです...Heroku が database.yml を上書きするため、MySQL を自動的に接続に再接続させる方法はありますか?