1

嗨,我在推送到 heroku 时遇到编译器超时....我真的不明白为什么,因为我的 gem 没有任何更改,并且之前已成功推送到 heroku....

这是日志:

-----> Heroku receiving push
-----> Ruby/Rails app detected
-----> Using Ruby version: ruby-1.9.3
-----> Installing dependencies using Bundler version 1.2.0.pre
       Running: bundle install --without development:test --path vendor/bundle --binstubs bin/
       Fetching gem metadata from https://rubygems.org/........
/app/slug-compiler/lib/utils.rb:65:in `block (2 levels) in spawn': command='/app/slug-compiler/lib/../buildpacks/ruby/bin/compile /tmp
/build_2z19s0hxp0vh2 /app/tmp/repo.git/.cache' exit_status=0 out='' at=timeout elapsed=578.1850752830505 (Utils::TimeoutError)
        from /app/slug-compiler/lib/utils.rb:51:in `loop'
        from /app/slug-compiler/lib/utils.rb:51:in `block in spawn'
        from /app/slug-compiler/lib/utils.rb:47:in `popen'
        from /app/slug-compiler/lib/utils.rb:47:in `spawn'
        from /app/slug-compiler/lib/buildpack.rb:38:in `block in compile'
        from /app/slug-compiler/lib/buildpack.rb:36:in `fork'
        from /app/slug-compiler/lib/buildpack.rb:36:in `compile'
        from /app/slug-compiler/lib/slug.rb:451:in `block in run_buildpack'
        from /app/slug-compiler/lib/utils.rb:120:in `log'
        from /app/slug-compiler/lib/slug.rb:689:in `log'
        from /app/slug-compiler/lib/slug.rb:450:in `run_buildpack'
        from /app/slug-compiler/lib/slug.rb:110:in `block (2 levels) in compile'
        from /app/slug-compiler/lib/utils.rb:101:in `block in timeout'
        from /usr/local/lib/ruby/1.9.1/timeout.rb:58:in `timeout'
        from /app/slug-compiler/lib/utils.rb:101:in `rescue in timeout'
        from /app/slug-compiler/lib/utils.rb:96:in `timeout'
        from /app/slug-compiler/lib/slug.rb:99:in `block in compile'
        from /app/slug-compiler/lib/utils.rb:120:in `log'
        from /app/slug-compiler/lib/slug.rb:689:in `log'
        from /app/slug-compiler/lib/slug.rb:98:in `compile'
        from /app/slug-compiler/bin/slugc:85:in `block in <main>'
        from /app/slug-compiler/lib/slug.rb:459:in `block in lock'
        from /app/slug-compiler/lib/repo_lock.rb:44:in `call'
        from /app/slug-compiler/lib/repo_lock.rb:44:in `run'
        from /app/slug-compiler/lib/slug.rb:459:in `lock'
        from /app/slug-compiler/bin/slugc:66:in `<main>'
 !     Heroku push rejected, failed to compile Ruby/rails app

To git@heroku.com:mysite.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:mysite.git'

似乎这与我的 gems 文件有些相关,因为如果我运行heroku run bundle update它也会停止

我的 gem 文件源“ https://rubygems.org

ruby '1.9.3'
gem 'rails', '3.2.5'
gem 'heroku', '~> 2.26.6'
gem "paperclip", " ~> 3.0"

gem 'jquery-rails', '2.0.1'
gem 'bootstrap-sass', '2.0.0'
gem 'bcrypt-ruby', '3.0.1'
gem 'faker', '1.0.1'
gem 'will_paginate', '3.0.3'
gem 'bootstrap-will_paginate', '0.0.6'
gem 'prototype-rails'

group :development, :test do
  gem 'sqlite3', '1.3.5'
  gem 'rspec-rails', '2.10.0'
  gem 'guard-rspec', '0.5.5'
end

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '3.2.5'
  gem 'coffee-rails', '3.2.2'
  gem 'uglifier', '1.2.4'
end

group :test do
  gem 'capybara', '1.1.2'
  gem 'factory_girl_rails', '1.4.0'
  gem 'cucumber-rails', '1.2.1', :require => false
  gem 'database_cleaner', '0.7.0'
  gem 'guard-spork', '0.3.2'  
  gem 'spork', '0.9.0'
  gem 'launchy', '2.1.0'
  # gem 'rb-fsevent', '0.9.1', :require => false
  # gem 'growl', '1.0.3'
end

group :production do
  gem 'pg'
  gem 'thin'
end

这里有一个非常相似的帖子:Heroku push failed,也许是 ruby​​gems 超时,它指向一个单一的宝石......但它没有说明我们如何找到破碎的宝石......有什么想法吗?

编辑

这似乎是 pg Gem 的问题。我通过一一评论我的非静态(未指定版本)发现了它。如果我不包括 pg gem,则推送完成。

我应该用命令检查我以前的 gems 版本是什么

heroku run gem query --local > heroku_gems.txt

但是因为我现在没有,我注定要手动找到破解版:-S

编辑 2

我尝试安装一些以前版本的 pg,例如 0.12.2 版,但这仍然无法正常工作......

4

1 回答 1

1

一整天后,注意到 Heroku 服务器存在一些 SSL 问题,我注意到config.force_ssl = true我的 production.rb 文件中有配置。

所以我只是试了一下,然后放了config.force_ssl = false,瞧,我又活过来了!

好吧,后来我又把它变成了真的,仍然设法再次发布......

猜猜这是heroku的事情

于 2012-07-20T03:25:51.823 回答