15

我知道这是另一个Heroku Error H12 (Request timeout) 问题。似乎这个问题是由许多不同的原因引起的。几天前,我在 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 run 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
4

4 回答 4

6

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

有关 H12 错误代码的更多信息,请访问https://devcenter.heroku.com/articles/error-codes#h12__request_timeout。我还建议您按照https://devcenter.heroku.com/articles/request-timeout中的说明安装 rack-timeout 。

于 2012-06-12T03:21:37.113 回答
5

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

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

于 2017-06-24T20:07:52.823 回答
4

错误原来是application.css。.css.scss一个文件有bug/assets/stylesheets

assets:precompile当我在本地机器上运行 rake 时,它​​在application.css. 它表明 application.css 中的哪个代码是错误的。

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

问题解决了!

于 2012-06-12T07:18:20.770 回答
2

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

于 2013-07-21T06:37:36.703 回答