Skip to content

Berkshelf stuck on resolution with the latest version #65

@xeron

Description

@xeron

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions