Heroku错误H12(请求超时)问题

时间:2012-06-11 03:57:14

标签: deployment heroku timeout ruby-on-rails-3.2

我知道另一个 Heroku错误H12(请求超时)问题。似乎问题是由许多不同的原因引起的。几天前我在heroku上部署了一个Rails 3.2.2应用程序。当我尝试通过浏览器访问我的应用程序时。我得到了

Application Error
An error occurred in the application and your page could not be served. Please try      again in a few moments.

If you are the application owner, check your logs for details.

所以我像往常一样开始在互联网上搜索,以找出错误的原因。然后我学会使用 heroku日志来检查我的日志文件。这是日志文件。

2012-06-11T03:16:51+00:00 heroku[web.1]: Unidling
2012-06-11T03:16:51+00:00 heroku[web.1]: State changed from down to created
2012-06-11T03:16:51+00:00 heroku[web.1]: State changed from created to starting
2012-06-11T03:16:56+00:00 heroku[web.1]: Starting process with command `bundle exec rails server -p 43527`
2012-06-11T03:17:09+00:00 app[web.1]: DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/config/environment.rb:5)
2012-06-11T03:17:09+00:00 app[web.1]: DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/config/environment.rb:5)
2012-06-11T03:17:09+00:00 app[web.1]: DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/config/environment.rb:5)
2012-06-11T03:17:16+00:00 app[web.1]: [2012-06-11 03:17:16] INFO  WEBrick 1.3.1
2012-06-11T03:17:16+00:00 app[web.1]: [2012-06-11 03:17:16] INFO  WEBrick::HTTPServer#start: pid=1 port=43527
2012-06-11T03:17:16+00:00 app[web.1]: [2012-06-11 03:17:16] INFO  ruby 1.9.2 (2011-07-09) [x86_64-linux]
2012-06-11T03:17:17+00:00 heroku[web.1]: State changed from starting to up
2012-06-11T03:17:19+00:00 app[web.1]: => Booting WEBrick
2012-06-11T03:17:19+00:00 app[web.1]: => Rails 3.2.2 application starting in production on http://0.0.0.0:43527
2012-06-11T03:17:19+00:00 app[web.1]: => Call with -d to detach
2012-06-11T03:17:19+00:00 app[web.1]: => Ctrl-C to shutdown server
2012-06-11T03:17:19+00:00 app[web.1]: 
2012-06-11T03:17:19+00:00 app[web.1]: 
2012-06-11T03:17:19+00:00 app[web.1]: Started GET "/" for 123.240.186.119 at 2012-06-11 03:17:19 +0000
2012-06-11T03:17:20+00:00 app[web.1]: Processing by StaticPagesController#home as HTML
2012-06-11T03:17:20+00:00 app[web.1]:   Rendered static_pages/home.html.erb within layouts/application (40.3ms)
2012-06-11T03:17:49+00:00 heroku[router]: Error H12 (Request timeout) -> GET cold-lightning-6691.herokuapp.com/ dyno=web.1 queue= wait= service=30000ms status=503 bytes=0

查看日志后,我真的不明白什么是错的。我再次在互联网上进行了研究。似乎有许多不同的原因可能导致这个问题。我知道我的应用程序中可能存在一些错误。但是我不能告诉我代码的哪一部分是错误的。

我可以在我的本地计算机上运行我的应用。那么你知道问题是什么或如何发现问题吗?

更新

当我这样做的时候 git push heroku

我收到此错误消息

Your bundle is complete! It was installed into ./vendor/bundle
       Cleaning up the bundler cache.
-----> Writing config/database.yml to read from DATABASE_URL
-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       rake aborted!
       could not connect to server: Connection refused
       Is the server running on host "127.0.0.1" and accepting
       TCP/IP connections on port 5432?
我跑了 $ heroku运行rake assets:precompile --trace

我得到了

Running rake assets:precompile --trace attached to terminal... up, run.1
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-      rc2-has-been-released. (called from <top (required)> at /app/Rakefile:7)
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/Rakefile:7)
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/Rakefile:7)
** Invoke assets:precompile (first_time)
** Execute assets:precompile
/usr/local/bin/ruby /app/vendor/bundle/ruby/1.9.1/bin/rake assets:precompile:all       RAILS_ENV=production RAILS_GROUPS=assets --trace
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/Rakefile:7)
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/Rakefile:7)
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/Rakefile:7)
** Invoke assets:precompile:all (first_time)
** Execute assets:precompile:all
** Invoke assets:precompile:primary (first_time)
** Invoke assets:environment (first_time)
** Execute assets:environment
** Invoke environment (first_time)
** Execute environment
** Invoke tmp:cache:clear (first_time)
** Execute tmp:cache:clear
** Execute assets:precompile:primary
rake aborted!
Unexpected token: operator (<) (line: 11780, col: 1, pos: 325392)

Error
at new JS_Parse_Error (/tmp/execjs20120611-10-3yiu6e.js:497:22)
at js_error (/tmp/execjs20120611-10-3yiu6e.js:505:15)
at croak (/tmp/execjs20120611-10-3yiu6e.js:954:17)
at token_error (/tmp/execjs20120611-10-3yiu6e.js:961:17)
at unexpected (/tmp/execjs20120611-10-3yiu6e.js:967:17)
at /tmp/execjs20120611-10-3yiu6e.js:1340:17
at maybe_unary (/tmp/execjs20120611-10-3yiu6e.js:1425:27)
at expr_ops (/tmp/execjs20120611-10-3yiu6e.js:1452:32)
at maybe_conditional (/tmp/execjs20120611-10-3yiu6e.js:1456:28)
at maybe_assign (/tmp/execjs20120611-10-3yiu6e.js:1480:28)
  (in /app/app/assets/javascripts/application.js)
/app/vendor/bundle/ruby/1.9.1/gems/execjs-1.3.0/lib/execjs/external_runtime.rb:67:in    `extract_result'
/app/vendor/bundle/ruby/1.9.1/gems/execjs-1.3.0/lib/execjs/external_runtime.rb:27:in `block in exec'
/app/vendor/bundle/ruby/1.9.1/gems/execjs-1.3.0/lib/execjs/external_runtime.rb:40:in `compile_to_tempfile'
/app/vendor/bundle/ruby/1.9.1/gems/execjs-1.3.0/lib/execjs/external_runtime.rb:26:in `exec'
/app/vendor/bundle/ruby/1.9.1/gems/uglifier-1.2.3/lib/uglifier.rb:101:in `compile'
/app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.2/lib/sprockets/compressors.rb:74:in `compress'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/processing.rb:265:in `block in js_compressor='
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/processor.rb:29:in `call'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/processor.rb:29:in `evaluate'
/app/vendor/bundle/ruby/1.9.1/gems/tilt-1.3.3/lib/tilt/template.rb:76:in `render'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/context.rb:177:in `block in evaluate'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/context.rb:174:in `each'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/context.rb:174:in `evaluate'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/bundled_asset.rb:26:in `initialize'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/base.rb:244:in `new'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/base.rb:244:in `build_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/index.rb:89:in `block in build_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/caching.rb:19:in `cache_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/index.rb:88:in `build_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/base.rb:163:in `find_asset'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/index.rb:56:in `find_asset'
/app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.2/lib/sprockets/static_compiler.rb:20:in `block in compile'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/base.rb:212:in `block in each_logical_path'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/base.rb:200:in `block (2 levels) in each_file'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/base.rb:190:in `each'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/base.rb:190:in `each_entry'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/base.rb:198:in `block in each_file'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/base.rb:197:in `each'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/base.rb:197:in `each_file'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.1.2/lib/sprockets/base.rb:210:in `each_logical_path'
/app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.2/lib/sprockets/static_compiler.rb:18:in `compile'
/app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.2/lib/sprockets/assets.rake:56:in `internal_precompile'
/app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.2/lib/sprockets/assets.rake:70:in `block (3 levels) in <top (required)>'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `block in execute'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain'
/usr/local/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke'
/app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.2/lib/sprockets/assets.rake:60:in `block (3 levels) in <top (required)>'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `block in execute'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain'
/usr/local/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block (2 levels) in top_level'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `each'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block in top_level'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `block in run'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/bin/rake:33:in `<top (required)>'
/app/vendor/bundle/ruby/1.9.1/bin/rake:19:in `load'
/app/vendor/bundle/ruby/1.9.1/bin/rake:19:in `<main>'
Tasks: TOP => assets:precompile:primary
rake aborted!
Command failed with status (1): [/usr/local/bin/ruby /app/vendor/bundle/rub...]
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/file_utils.rb:53:in `block in  create_shell_runner'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/file_utils.rb:45:in `call'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/file_utils.rb:45:in `sh'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/file_utils_ext.rb:39:in `sh'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/file_utils.rb:80:in `ruby'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/file_utils_ext.rb:39:in `ruby'
/app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.2/lib/sprockets/assets.rake:12:in `ruby_rake_task'
/app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.2/lib/sprockets/assets.rake:21:in `invoke_or_reboot_rake_task'
/app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.2/lib/sprockets/assets.rake:29:in `block (2 levels) in <top (required)>'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `block in execute'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain'
/usr/local/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block (2 levels) in top_level'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `each'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block in top_level'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `block in run'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/bin/rake:33:in `<top (required)>'
/app/vendor/bundle/ruby/1.9.1/bin/rake:19:in `load'
/app/vendor/bundle/ruby/1.9.1/bin/rake:19:in `<main>'
Tasks: TOP => assets:precompile

5 个答案:

答案 0 :(得分:11)

今天发生在我身上。这不是典型的行为,但显然我需要做的就是通过我的电脑显示器责备Heroku,等待它思考它是多么顽皮,最后纠正了它的行为。

有时Heroku喜怒无常?

答案 1 :(得分:6)

似乎你正在超时,也许feed()调用需要超过30秒?

有关https://devcenter.heroku.com/articles/error-codes#h12__request_timeout的H12错误代码的详情。我还建议您按照https://devcenter.heroku.com/articles/request-timeout所述安装rack-timeout。

答案 2 :(得分:4)

错误原来是application.css。 .css.scss

中的一个/assets/stylesheets个文件中存在错误

当我在本地mahcine上运行rake assets:precompile时,它在application.css中显示错误。它表明application.css中的哪些代码是错误的。

我修改了css后我必须放config.assets.initialize_on_precompile = false' in config / application.rb' http://www.simonecarletti.com/blog/2012/02/heroku-and-rails-3-2-assetprecompile-error/

问题解决了!

答案 3 :(得分:2)

我有一个类似的问题,在放弃一天后,我回到它并发现了我的错误。当服务器端发生错误时,我没有向客户端发送响应。无论服务器端算法的结果如何,都要确保返回响应。如果有错误,请返回。如果请求成功,则返回该响应。我希望有所帮助。

如果这没有帮助,请查看heroku关于处理请求超时的指南,尤其是调试请求超时部分可能会有所帮助。

答案 4 :(得分:1)

我遇到了一个非常类似的问题,并将其缩小为与数据库的连接问题。我在Heroku的Cedar堆栈上使用ClearDB,发现通过在我的config.ru文件中插入“use ActiveRecord :: ConnectionAdapters :: ConnectionManagement”,问题就消失了。