问题
How would I find out what is causing h12 timeout errors on heroku?
It happens randomly on different pages/controllers.
This is the error that I get from the logs
Processing by UsersController#new as HTML
2013-08-15T13:08:54.718157+00:00 app[web.1]: Started GET "/signup" for 105.226.239.198 at 2013-08-15 13:08:54 +0000
2013-08-15T13:08:54.744390+00:00 app[web.1]: Rendered communal/_error_messages.html.erb (0.6ms)
2013-08-15T13:09:24.714225+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path=/signup host=www.goodwordlabs.com fwd="105.226.239.198" dyno=web.1 connect=3ms service=30000ms status=503 bytes=0
2013-08-15T13:09:25.518168+00:00 app[web.1]: E, [2013-08-15T13:09:25.517428 #2] ERROR -- : worker=0 PID:5 timeout (31s > 30s), killing
2013-08-15T13:09:25.554402+00:00 app[web.1]: E, [2013-08-15T13:09:25.554166 #2] ERROR -- : reaped #<Process::Status: pid 5 SIGKILL (signal 9)> worker=0
2013-08-15T13:09:25.980010+00:00 app[web.1]: I, [2013-08-15T13:09:25.979551 #26] INFO -- : worker=0 ready
2013-08-15T13:08:51.088169+00:00 heroku[router]: at=info method=GET path=/assets/clients/client1-03dfd2afecf092e15b9e3350d04acdc6.png host=www.goodwordlabs.com fwd="105.226.239.198" dyno=web.1 connect=2ms service=7ms status=304 bytes=0
回答1:
Here is how you should proceed
- Install a application monitoring solution newrelic. It would give you list of URL that are timing out. New relic is paid, but there is free version of new relic too.
- Now, try to isolate & reproduce timeout error. because if you can't reproduce it. you can't fix it.
回答2:
you can try sending request to site(www.goodwordlabs.com) from heroku console. Run heroku console with this
heroku run rails console
or try sending request with same parameters from Curl of terminal
来源:https://stackoverflow.com/questions/18253632/how-to-debug-a-heroku-request-timeout-error