No live threads left. Deadlock? with specific Gemfile using 1.5.1 #2813
Comments
Creepy. Somehow one gem is killing the threads? |
@gnufied, any theories about what could be causing this? |
Heres the gemspec diff http://www.diffchecker.com/di61b3ov maybe there's an issue with 0.1.1 referencing itself? |
ohhhhhh maybe each thread hits a circular dependency exception and exits. On Jan 9, 2014, at 2:29 PM, Richard Schneeman notifications@github.com wrote:
|
If that was the case wouldn't it fail if we installed without parallel? |
Another Gemfile with a problem gem: https://gist.github.com/schneems/8344363 Not sure if they're related, here's the original SO post: http://stackoverflow.com/questions/21032735/bundle-without-j4-on-heroku Problem gem was: |
Apparently formtastic-bootstrap has the same circular dependency: http://rubygems.org/gems/formtastic-bootstrap/versions/2.0.0 |
At least the problem is definitely caused by cyclic dependecy, but TSort algorithm does not raise error on self cycles because technically they are resolvable. For example: class Hash
include TSort
alias tsort_each_node each_key
def tsort_each_child(node, &block)
fetch(node).each(&block)
end
end
{ 1 => [2, 3], 2 => [3], 3 => [], 4 => [], 5 => [5] }.tsort Will not raise error. As for why it causes problems during parallel installation is - that is because we are using hash keys as a way of keeping track of installed stuff. But when we hit a self dependency using gem name as key screws up the algorithm. I will try and come up with a fix. |
Right now if you install via parallel a gem that has a circular dependency it will know that it needs to be installed based on the `remains` hash, but does not actually enqueue the circular dependency to be installed. This commit fixes that by checking for duplicate name as well as whether or not dependencies have been previously enqueued.
Right now if you install via parallel a gem that has a circular dependency it will know that it needs to be installed based on the `remains` hash, but does not actually enqueue the circular dependency to be installed. This commit fixes that by checking for duplicate name as well as whether or not dependencies have been previously enqueued.
Conflicts: spec/realworld/parallel_install_spec.rb
(^_^)/ any clue when this might ship? Are there any blockers on 1.5.2?— On Fri, Jan 10, 2014 at 4:22 PM, André Arko notifications@github.com
|
lol I already pushed 1.5.2 :) |
That was fast, i'm going to try to push 1.5.2 out to production on Heroku this monday. Had to roll back 1.5.1 due to this bug. Thanks ❤️ |
Gemfile:
https://gist.github.com/schneems/8342838/raw/a8be3926cd9f8e311dfd92af92bd29acdf37bc2a/gistfile1.txt
Error:
Original Report: heroku/heroku-buildpack-ruby#197 (comment)
It works if you remove
mongoid_auto_increment
or increment it's version number.The text was updated successfully, but these errors were encountered: