Heroku seems to now default to parallel bundling with -j4
because I see in the push log:
Running: bundle install --without development:test:staging --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
This throws an error which I can replicate locally with
bundle install -j4
The error locally is:
/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'
The error when I attempt deployment is:
/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)
How can I force Heroku to stop attempting to bundle gems in parallel?
edit: 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
Some gems have problem installing in parallel, these should be reported to bundler/bundler like this one https://github.com/bundler/bundler/issues/2813
In this Gemfile this is the problem line:
gem 'formtastic-bootstrap', " ~> 2.0.0"
Change to
gem 'formtastic-bootstrap', "2.1.3"
And it works. This is how I found it:
Install bundler latest $ gem install bundler
Then run $ bundle install -j4
this will try to install up to 4 gems in parallel.
When it fails with this error message
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)
Find a Gem not checked out by running
$ bundle list
Could not find gem 'formtastic-bootstrap (~> 2.0.0) ruby' in the gems available on this machine.
Comment out that line in your Gemfile and repeat until your whole Gemfile installs. Once it installs gradually add back in the ones you commented. Likely a later version of a Gem will be able to fix the problem.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With