Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Berkshelf stuck on resolution with the latest version #65

Open
xeron opened this issue Feb 20, 2020 · 1 comment
Open

Berkshelf stuck on resolution with the latest version #65

xeron opened this issue Feb 20, 2020 · 1 comment

Comments

@xeron
Copy link

xeron commented Feb 20, 2020

Reporting here because rollback to 1.3.1 helps. However it could be berkshelf's bug.

Berkshelf stuck on resolution with the latest version. Looks like it's not using dep-selector-libgecode and using ruby solver instead which is being stuck on circual dependencies.

With only 1.3.5 installed DEBUG_RESOLVER=1 berks install -d shows something like User-requested dependencies … solver=#<Solve::RubySolver:…> in the output.
With only 1.3.1 or both 1.3.1 and 1.3.5 installed DEBUG_RESOLVER=1 berks install -d doesn't show this record and immediatelly goes to downloading dependencies.

Version:

Affected – 1.3.5.
Rollback to 1.3.1 fixes the issue.
Having both 1.3.5 and 1.3.1 also works.

Environment: [Details about the environment such as the Operating System, cookbook details, etc...]

  • macOS 10.14.6
  • Ruby 2.6.5p114
  • Gems setup:
    • gem install chef-dk rubocop test-kitchen kitchen-sync pry nokogiri berkshelf dep-selector-libgecode dep_selector
    • gem update && gem clean

Scenario:

Trying to install or update dependencies. There're cookbooks with circural dependencies.

Steps to Reproduce:

rm -rf ~/.berkshelf/cookbooks
rm -rf ~/.berkshelf/.cache
rm Berksfile.lock
berks install -d

Expected Result:

Dependencies installed and Berksfile.lock generated.

Actual Result:

Berkshelf stuck on the following:

D, [2020-02-19T18:53:41.729388 #57612] DEBUG -- :   Starting resolution...

Ctrl+C shows:

Traceback (most recent call last):
	30: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/bin/ruby_executable_hooks:24:in `<main>'
	29: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/bin/ruby_executable_hooks:24:in `eval'
	28: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/bin/berks:23:in `<main>'
	27: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/bin/berks:23:in `load'
	26: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/berkshelf-7.0.9/bin/berks:5:in `<top (required)>'
	25: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/berkshelf-7.0.9/lib/berkshelf/cli.rb:23:in `execute!'
	24: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/thor-1.0.1/lib/thor/base.rb:485:in `start'
	23: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/berkshelf-7.0.9/lib/berkshelf/cli.rb:47:in `dispatch'
	22: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/thor-1.0.1/lib/thor.rb:392:in `dispatch'
	21: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/thor-1.0.1/lib/thor/invocation.rb:127:in `invoke_command'
	20: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/thor-1.0.1/lib/thor/command.rb:27:in `run'
	19: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/berkshelf-7.0.9/lib/berkshelf/cli.rb:131:in `install'
	18: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/berkshelf-7.0.9/lib/berkshelf/berksfile.rb:405:in `install'
	17: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/berkshelf-7.0.9/lib/berkshelf/installer.rb:43:in `run'
	16: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/berkshelf-7.0.9/lib/berkshelf/installer.rb:181:in `install_from_universe'
	15: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/berkshelf-7.0.9/lib/berkshelf/resolver.rb:78:in `resolve'
	14: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/solve-4.0.3/lib/solve.rb:64:in `it!'
	13: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/solve-4.0.3/lib/solve/ruby_solver.rb:76:in `resolve'
	12: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/solve-4.0.3/lib/solve/ruby_solver.rb:260:in `resolve_with_error_wrapping'
	11: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/molinillo-0.6.6/lib/molinillo/resolver.rb:43:in `resolve'
	10: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:182:in `resolve'
	 9: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:254:in `process_topmost_state'
	 8: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:686:in `attempt_to_activate'
	 7: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:729:in `activate_new_spec'
	 6: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:739:in `require_nested_dependencies_for'
	 5: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:739:in `each'
	 4: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:740:in `block in require_nested_dependencies_for'
	 3: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/molinillo-0.6.6/lib/molinillo/dependency_graph.rb:150:in `add_child_vertex'
	 2: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/molinillo-0.6.6/lib/molinillo/dependency_graph.rb:150:in `each'
	 1: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/molinillo-0.6.6/lib/molinillo/dependency_graph.rb:152:in `block in add_child_vertex'
/Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/molinillo-0.6.6/lib/molinillo/dependency_graph.rb:193:in `add_edge': There is a circular dependency between XXX and YYY (Molinillo::CircularDependencyError)
	27: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/bin/ruby_executable_hooks:24:in `<main>'
	26: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/bin/ruby_executable_hooks:24:in `eval'
	25: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/bin/berks:23:in `<main>'
	24: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/bin/berks:23:in `load'
	23: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/berkshelf-7.0.9/bin/berks:5:in `<top (required)>'
	22: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/berkshelf-7.0.9/lib/berkshelf/cli.rb:23:in `execute!'
	21: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/thor-1.0.1/lib/thor/base.rb:485:in `start'
	20: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/berkshelf-7.0.9/lib/berkshelf/cli.rb:47:in `dispatch'
	19: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/thor-1.0.1/lib/thor.rb:392:in `dispatch'
	18: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/thor-1.0.1/lib/thor/invocation.rb:127:in `invoke_command'
	17: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/thor-1.0.1/lib/thor/command.rb:27:in `run'
	16: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/berkshelf-7.0.9/lib/berkshelf/cli.rb:131:in `install'
	15: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/berkshelf-7.0.9/lib/berkshelf/berksfile.rb:405:in `install'
	14: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/berkshelf-7.0.9/lib/berkshelf/installer.rb:43:in `run'
	13: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/berkshelf-7.0.9/lib/berkshelf/installer.rb:181:in `install_from_universe'
	12: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/berkshelf-7.0.9/lib/berkshelf/resolver.rb:78:in `resolve'
	11: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/solve-4.0.3/lib/solve.rb:64:in `it!'
	10: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/solve-4.0.3/lib/solve/ruby_solver.rb:76:in `resolve'
	 9: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/solve-4.0.3/lib/solve/ruby_solver.rb:260:in `resolve_with_error_wrapping'
	 8: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/molinillo-0.6.6/lib/molinillo/resolver.rb:43:in `resolve'
	 7: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:182:in `resolve'
	 6: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:252:in `process_topmost_state'
	 5: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:261:in `rescue in process_topmost_state'
	 4: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:305:in `unwind_for_conflict'
	 3: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:343:in `build_details_for_unwind'
	 2: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:343:in `select'
	 1: from /Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:345:in `block in build_details_for_unwind'
/Users/ilarionov/.rvm/gems/ruby-2.6.5/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:345:in `&': Interrupt
@xeron
Copy link
Author

xeron commented Mar 30, 2020

Anyone?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant