chef-infrachef-soloberkshelfberksfile

Berkshelf::CommunitySiteError when run berks install


I meet this error sometimes when I run berks install. But it can be run normally sometimes. That is weird.I use Berkshelf(3.1.3). The error is like:

E, [2014-07-14T15:36:13.966457 #21077] ERROR -- : Actor crashed!
Berkshelf::CommunitySiteError: An unexpected error occurred retrieving 'limits' (0.2.0) from the cookbook site at ''.
    /Users/tony/.rvm/gems/ruby-2.1.1/gems/berkshelf-3.1.3/lib/berkshelf/community_rest.rb:123:in `find'
    /Users/tony/.rvm/gems/ruby-2.1.1/gems/berkshelf-3.1.3/lib/berkshelf/community_rest.rb:100:in `download'
    /Users/tony/.rvm/gems/ruby-2.1.1/gems/berkshelf-3.1.3/lib/berkshelf/downloader.rb:53:in `try_download'
    /Users/tony/.rvm/gems/ruby-2.1.1/gems/berkshelf-3.1.3/lib/berkshelf/downloader.rb:33:in `block in download'
    /Users/tony/.rvm/gems/ruby-2.1.1/gems/berkshelf-3.1.3/lib/berkshelf/downloader.rb:32:in `each'
    /Users/tony/.rvm/gems/ruby-2.1.1/gems/berkshelf-3.1.3/lib/berkshelf/downloader.rb:32:in `download'
    /Users/tony/.rvm/gems/ruby-2.1.1/gems/berkshelf-3.1.3/lib/berkshelf/installer.rb:101:in `install'
    /Users/tony/.rvm/gems/ruby-2.1.1/gems/celluloid-0.16.0.pre2/lib/celluloid/calls.rb:26:in `public_send'
    /Users/tony/.rvm/gems/An unexpected error occurred retrieving 'dpkg_packages' (0.1.3) from the cookbook site at ''.
ruby-2.1.1/gems/celluloid-0.16.0.pre2/lib/celluloid/calls.rb:26:in `dispatch'
    /Users/tony/.rvm/gems/ruby-2.1.1/gems/celluloid-0.16.0.pre2/lib/celluloid/calls.rb:63:in `dispatch'
    /Users/tony/.rvm/gems/ruby-2.1.1/gems/celluloid-0.16.0.pre2/lib/celluloid/cell.rb:60:in `block in invoke'
    /Users/tony/.rvm/gems/ruby-2.1.1/gems/celluloid-0.16.0.pre2/lib/celluloid/cell.rb:71:in `block in task'
    /Users/tony/.rvm/gems/ruby-2.1.1/gems/celluloid-0.16.0.pre2/lib/celluloid/actor.rb:369:in `block in task'
    /Users/tony/.rvm/gems/ruby-2.1.1/gems/celluloid-0.16.0.pre2/lib/celluloid/tasks.rb:55:in `block in initialize'
    /Users/tony/.rvm/gems/ruby-2.1.1/gems/celluloid-0.16.0.pre2/lib/celluloid/tasks/task_fiber.rb:15:in `block in create'

And my Berkshelf is:

source "https://api.berkshelf.com"

cookbook 'users', '~> 1.7.0'
cookbook 'sudo', '~> 2.6.0'
cookbook 'chef-solo-search', '~> 0.5.1'
cookbook 'build-essential', '~> 2.0.4'

cookbook 'openssl', '~> 2.0.0'
cookbook 'hostname', '~> 0.3.0'
cookbook 'apt', '~> 2.4.0'
cookbook 'limits', '~> 0.2.0'
cookbook 'dpkg_packages', '~> 0.1.3'

How to solve this? Thanks in advance.


Solution

  • This seems to have been a bug in Berkshelf 3.1.3 that was fixed in 3.1.4.

    bundle update berkshelf
    

    from your Chef directory should fix it, or fix Berkshelf to:

    gem 'berkshelf', '>= 3.1.4'