Heroku现在似乎默认为与-j4并行捆绑,因为我在推送日志中看到了:


运行:捆绑安装-不进行开发:测试:临时-路径
供应商/捆绑--binstubs供应商/捆绑/ bin -j4-部署


这引发了一个错误,我可以在本地复制

bundle install -j4


本地错误为:

/Users/Emma/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/thread.rb:72:in `sleep': No live threads left. Deadlock? from /Users/Emma/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/thread.rb:72:in `block (2 levels) in wait'


我尝试部署时的错误是:

   /tmp/build_a49f4fc2-73b3-4101-9b67-f795fa643429/vendor/ruby-2.0.0/lib/ruby/2.0.0/thread.rb:72:in `sleep': No live threads left. Deadlock? (fatal)


如何强制Heroku停止尝试并行捆绑宝石?

编辑:gemfile

ruby '2.0.0'
source 'http://rubygems.org'
# Rails
gem "rails", "~> 3.2.13"
gem 'rake', '10.1.0'
gem 'rails_12factor', group: :production

# Basic libraries
gem "unicorn", "4.6.2"
gem 'jquery-rails', '2.1.4'
gem 'nokogiri'
gem 'bundler'
gem "activesupport"
gem 'aws-s3'
gem 'aws-sdk' #required in 3.1.3 to get rake to work -- taken out may 13 as conflicts with s3
gem 'hirefireapp'
gem "hirefire-resource"
gem 'newrelic_rpm', "~> 3.6.5.130"

gem 'modernizr-rails'
gem 'gocardless'

# Background processing
gem 'delayed_job_active_record' #required in 3.1.3 to get DJ to work
gem "SystemTimer", :require => "system_timer", :platforms => :ruby_18
gem "rack-timeout"
gem 'delayed_paperclip'    , '2.4.5.2' # , :git => 'git://github.com/tommeier/delayed_paperclip', :branch => 'fix_312'
# Views
gem 'haml'
gem 'rdiscount', "~> 1.6.8" #manually included -- it's a dependency of simple tooltip
gem 'simple-tooltip', "~> 0.0.2"
gem 'will_paginate', '~>3.0'
gem 'will_paginate-bootstrap', '0.2.1'
gem 'gritter_notices', '~>0.3.4' #, :git => '[email protected]:ck3g/gritter_notices.git'
gem "ariane"
gem 'bootstrap-wysihtml5-rails'
gem 'gingerice'

gem 'gvis', '>= 2.0.0'
gem "google_visualr", ">= 2.1"
gem "zendesk_api"
gem "oink"

gem 'rubyzip', '1.0.0'
gem "zip-zip"
gem 's3_swf_upload'

group :assets do
  gem "less-rails" #Sprockets (what Rails 3.1 uses for its asset pipeline) supports LESS
  gem 'less-rails-bootstrap'
  gem 'less'

end

gem "twitter-bootstrap-rails" # don't put in assets group for some stupid reason.
gem 'font-awesome-rails'
gem 'rabl'
gem 'gon'
gem 'versioncake', :git => 'git://github.com/bwillis/versioncake.git',  :branch => 'master'
gem "oauth-plugin", "~> 0.5.1"

# Authentication and authorisation
gem "cancan", '~> 1.6.7'
gem "devise" #, "~> 1.4.8"
gem 'devise_invitable', '~> 1.0.0'

# Barcodes
gem 'barby' #for generating barcodes
gem 'chunky_png' #for turning barcodes into png

# Forms
gem 'formtastic'
gem 'twitter_bootstrap_form_for'
gem 'client_side_validations', :git => "git://github.com/bcardarella/client_side_validations.git"
gem 'client_side_validations-formtastic'
gem 'cocoon' #adds link_to_add_association functionality in forms, so you can add nested fields using JS. https://github.com/nathanvda/cocoon
gem 'letsrate'
gem 'formtastic-bootstrap', " ~> 2.0.0"
gem 'active_link_to'


# Search
gem "ransack" #:git => "git://github.com/ernie/ransack.git"
gem 'pg_search', "0.7.0"
gem 'ancestry'

# IO
gem "activerecord-import" #used in one off class methods for importing. Provides the .import method.
gem "csv_builder"
gem 'pdfkit'
gem 'wkhtmltopdf'
gem "rmagick"
gem 'paperclip', '~> 2.3'
gem 'paperclip-meta' # extends function of paperclip gem: saves default thumbnail image size info in appropriate table
gem "googlebooks"
gem "amazon-ecs"
gem 'acts_as_xlsx'
gem "prawn", "~> 1.0.0.rc2"
gem 'activemodel-warnings'
gem "roo", "~> 1.11.2"
# Other
gem 'deep_cloneable', '~> 1.5.2'
gem "isbn"
gem 'wicked', '~> 0.5.0' #upgrade problem
gem "strip_attributes", "~> 1.2"
gem "microformats_helper"
gem "sanitize"
gem 'paper_trail', '~> 2'
gem "best_in_place"
gem 'shortener'
gem 'twitter'
gem 'acts-as-taggable-on', "~> 2.3.3" #upgrade problem
gem 'simple_calendar'

gem "yard" # yard server --reload for a server running on 8808

# Rails 3.1 - Asset Pipeline
gem 'json'
gem 'coffee-script'
gem 'sprockets-image_compressor', "~> 0.2.0"

group :assets do
  gem 'sass-rails'
  gem 'coffee-rails'
  gem 'uglifier'
  gem 'yui-compressor'
  gem 'compass-rails'

end
# Rails 3.1 - Heroku
  gem 'pg', "=0.16.0"
  gem 'dalli'
  gem 'memcachier'
  gem 'seed_dump' # e.g. bundle exec rake db:seed:dump MODELS=ValidationTest,Book
  gem "figaro"

group(:development, :test) do
  gem 'simplecov', :require => false
  gem 'ruby-prof'
  gem 'annotate', :git => 'git://github.com/ctran/annotate_models.git' # run with bundle exec annotate
  gem "rails-erd" # for creaating erd diagrams. Run with rake erd
  gem 'autotest'
  gem 'autotest-rails'
  gem 'ZenTest', '4.5.0'
  gem 'factory_girl', "~> 3.0.0"
  gem 'factory_girl_rails'
  gem 'faker', '0.3.1', :require => false
  gem 'launchy'
  gem 'rspec'
  gem 'rspec-core', :require => 'rspec/core'
  gem 'rspec-expectations', :require => 'rspec/expectations'
  gem 'rspec-mocks', :require => 'rspec/mocks'
  gem 'rspec-rails'
  gem 'selenium-webdriver', '2.5.0'
  gem 'capybara'
  gem "fakes3"

end

gem 'lazy_high_charts'
gem 'bullet', group: :development

最佳答案

一些gems不能并行安装,这些应该报告给捆绑器/捆绑器,例如https://github.com/bundler/bundler/issues/2813

在此Gemfile中,这是问题行:

gem 'formtastic-bootstrap', " ~> 2.0.0"


改成

gem 'formtastic-bootstrap', "2.1.3"


而且有效。这是我找到它的方式:

安装最新的捆绑软件$ gem install bundler

然后运行$ bundle install -j4,这将尝试并行安装最多4个gem。

当它失败并显示此错误消息时

Unfortunately, a fatal error has occurred. Please see the Bundler troubleshooting documentation at http://bit.ly/bundler-issues. Thanks!
/Users/schneems/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/bundler-1.5.1/lib/bundler/parallel_workers/worker.rb:33:in `pop': No live threads left. Deadlock? (fatal)


通过运行查找未签出的宝石

$ bundle list
Could not find gem 'formtastic-bootstrap (~> 2.0.0) ruby' in the gems available on this machine.


在您的Gemfile中注释掉该行,然后重复直到整个Gemfile安装完毕。安装完成后,逐步添加您评论的内容。宝石的更高版本可能可以解决该问题。

08-17 13:28