hashicorp / vagrant

Vagrant is a tool for building and distributing development environments.
https://www.vagrantup.com
Other
26.25k stars 4.44k forks source link

specification.rb:945:in `all=': undefined method `group_by' for nil:NilClass (NoMethodError) #7073

Closed tpenguin closed 8 years ago

tpenguin commented 8 years ago

Vagrant version

1.8.1

Expected behavior

lib/vagrant/bundler.rb line 268 should not have performed what it has. The call to method #all= causes nil to be passed into rubygems which clearly shows in their source code that this is not actually the way to use the method.

Actual behavior

/usr/local/lib/ruby/site_ruby/2.1/rubygems/specification.rb:945:in `all=': undefined method `group_by' for nil:NilClass (NoMethodError)
    from /usr/local/lib/ruby/gems/2.1/gems/vagrant-1.8.1/lib/vagrant/bundler.rb:268:in `with_isolated_gem'
    from /usr/local/lib/ruby/gems/2.1/gems/vagrant-1.8.1/lib/vagrant/bundler.rb:225:in `internal_install'
    from /usr/local/lib/ruby/gems/2.1/gems/vagrant-1.8.1/lib/vagrant/bundler.rb:97:in `install'
    from /usr/local/lib/ruby/gems/2.1/gems/vagrant-1.8.1/lib/vagrant/plugin/manager.rb:62:in `block in install_plugin'
    from /usr/local/lib/ruby/gems/2.1/gems/vagrant-1.8.1/lib/vagrant/plugin/manager.rb:72:in `call'
    from /usr/local/lib/ruby/gems/2.1/gems/vagrant-1.8.1/lib/vagrant/plugin/manager.rb:72:in `install_plugin'
    from /usr/local/lib/ruby/gems/2.1/gems/vagrant-1.8.1/plugins/commands/plugin/action/install_gem.rb:37:in `call'
    from /usr/local/lib/ruby/gems/2.1/gems/vagrant-1.8.1/lib/vagrant/action/warden.rb:34:in `call'
    from /usr/local/lib/ruby/gems/2.1/gems/vagrant-1.8.1/lib/vagrant/action/builder.rb:116:in `call'
    from /usr/local/lib/ruby/gems/2.1/gems/vagrant-1.8.1/lib/vagrant/action/runner.rb:66:in `block in run'
    from /usr/local/lib/ruby/gems/2.1/gems/vagrant-1.8.1/lib/vagrant/util/busy.rb:19:in `busy'
    from /usr/local/lib/ruby/gems/2.1/gems/vagrant-1.8.1/lib/vagrant/action/runner.rb:66:in `run'
    from /usr/local/lib/ruby/gems/2.1/gems/vagrant-1.8.1/plugins/commands/plugin/command/base.rb:14:in `action'
    from /usr/local/lib/ruby/gems/2.1/gems/vagrant-1.8.1/plugins/commands/plugin/command/install.rb:32:in `block in execute'
    from /usr/local/lib/ruby/gems/2.1/gems/vagrant-1.8.1/plugins/commands/plugin/command/install.rb:31:in `each'
    from /usr/local/lib/ruby/gems/2.1/gems/vagrant-1.8.1/plugins/commands/plugin/command/install.rb:31:in `execute'
    from /usr/local/lib/ruby/gems/2.1/gems/vagrant-1.8.1/plugins/commands/plugin/command/root.rb:56:in `execute'
    from /usr/local/lib/ruby/gems/2.1/gems/vagrant-1.8.1/lib/vagrant/cli.rb:42:in `execute'
    from /usr/local/lib/ruby/gems/2.1/gems/vagrant-1.8.1/lib/vagrant/environment.rb:302:in `cli'
    from /usr/local/lib/ruby/gems/2.1/gems/vagrant-1.8.1/bin/vagrant:177:in `<top (required)>'
    from /usr/local/bin/vagrant:23:in `load'
    from /usr/local/bin/vagrant:23:in `<main>'

Steps to reproduce

Simple bug, not needed to reproduce by way of user.

References

sethvargo commented 8 years ago

Hi @tpenguin

What command did you run to produce this error?

tpenguin commented 8 years ago
$ vagrant plugin install vagrant-vbguest
mnd999 commented 8 years ago

I get this too. vagrant plugin install vagrant-hosts

kamigerami commented 8 years ago

I can confirm as well! .. aldo It looks like some issue with rgem version

IthaiS commented 8 years ago

Confirmed

wwentland commented 8 years ago

As discussed in https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=818237 a possible fix might be the following:

---
 lib/vagrant/bundler.rb | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/vagrant/bundler.rb b/lib/vagrant/bundler.rb
index 5a5c185..c4a3837 100644
--- a/lib/vagrant/bundler.rb
+++ b/lib/vagrant/bundler.rb
@@ -272,7 +272,6 @@ module Vagrant

       # Reset the all specs override that Bundler does
       old_all = Gem::Specification._all
-      Gem::Specification.all = nil

       # /etc/gemrc and so on.
       old_config = nil
@@ -286,6 +285,8 @@ module Vagrant
       end
       Gem.configuration = NilGemConfig.new

+      Gem::Specification.reset
+
       # Use a silent UI so that we have no output
       Gem::DefaultUserInteraction.use_ui(Gem::SilentUI.new) do
         return yield
kamigerami commented 8 years ago

@babilen - thank you for your suggestion.

I can't reproduce this error using the upstream version of vagrant on a OSx host. (not applying the fix mentioned above)

$ vagrant plugin install vagrant-librarian-puppet Installing the 'vagrant-librarian-puppet' plugin. This can take a few minutes... Installed the plugin 'vagrant-librarian-puppet (0.9.1)'!

$ vagrant version Installed Version: 1.8.1 Latest Version: 1.8.1

You're running an up-to-date version of Vagrant!

ruby -version ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin15]

Not an issue with the upstream version?

wwentland commented 8 years ago

No, which is due to the fact that vagrant appears to be bundling an old version of rubygems. This is an issue in vagrant itself which is being shadowed by shipping libraries that do not expose this issue.

We see this on the vagrant version as packaged by Debian which uses recent versions of various ruby libraries.

The proposed fix allows vagrant to work with newer versions by explicitly calling reset, rather than relying on an what is being mentioned as:

  ##
  # Sets the known specs to +specs+. Not guaranteed to work for you in
  # the future. Use at your own risk. Caveat emptor. Doomy doom doom.
  # Etc etc.
  #
  #--
  # Makes +specs+ the known specs
  # Listen, time is a river
  # Winter comes, code breaks
  #
  # -- wilsonb

  def self.all= specs
    @@stubs_by_name = specs.group_by(&:name)
    @@all = @@stubs = specs
  end
kamigerami commented 8 years ago

I honestly can't test this code or vouch for it as my local bundle exec rake tests fail.

Will however do a PR to have the Travis CI checks run and see if they fail or not.

Failure/Error: subject.execute
     Vagrant::Errors::BoxMetadataDownloadError:
       There was an error while downloading the metadata for this box.
       The error message is shown below:
       A requested feature, protocol or option was not found built-in in this libcurl due to a build-time decision.
     # ./lib/vagrant/box.rb:135:in `rescue in load_metadata'
     # ./lib/vagrant/box.rb:139:in `load_metadata'
     # ./lib/vagrant/box.rb:160:in `has_update?'
     # ./plugins/commands/box/command/update.rb:123:in `box_update'
     # ./plugins/commands/box/command/update.rb:84:in `block in update_specific'
     # ./plugins/commands/box/command/update.rb:82:in `each'
     # ./plugins/commands/box/command/update.rb:82:in `update_specific'
     # ./plugins/commands/box/command/update.rb:43:in `execute'
     # ./test/unit/plugins/commands/box/command/update_test.rb:209:in `block (5 levels) in <top (required)>'

I guess that you tested it on your end already @babilen.

Thank you.

JeffMatson commented 8 years ago

Tested and confirmed working fix on Vagrant 1.8.1 running on Xubuntu 16.04 running kernel 4.5.2. Issue was not present on Xubuntu 15.10.

naroga commented 8 years ago

Vagrant 1.8.1 running on Ubuntu 16.04, I too get this error.

$ sudo vagrant plugin install vagrant-hostmanager
Installing the 'vagrant-hostmanager' plugin. This can take a few minutes...
/usr/lib/ruby/2.3.0/rubygems/specification.rb:946:in `all=': undefined method `group_by' for nil:NilClass (NoMethodError)
from /usr/lib/ruby/vendor_ruby/vagrant/bundler.rb:275:in `with_isolated_gem'
from /usr/lib/ruby/vendor_ruby/vagrant/bundler.rb:231:in `internal_install'
from /usr/lib/ruby/vendor_ruby/vagrant/bundler.rb:102:in `install'
from /usr/lib/ruby/vendor_ruby/vagrant/plugin/manager.rb:62:in `block in install_plugin'
from /usr/lib/ruby/vendor_ruby/vagrant/plugin/manager.rb:72:in `install_plugin'
from /usr/share/vagrant/plugins/commands/plugin/action/install_gem.rb:37:in `call'
from /usr/lib/ruby/vendor_ruby/vagrant/action/warden.rb:34:in `call'
from /usr/lib/ruby/vendor_ruby/vagrant/action/builder.rb:116:in `call'
from /usr/lib/ruby/vendor_ruby/vagrant/action/runner.rb:66:in `block in run'
from /usr/lib/ruby/vendor_ruby/vagrant/util/busy.rb:19:in `busy'
from /usr/lib/ruby/vendor_ruby/vagrant/action/runner.rb:66:in `run'
from /usr/share/vagrant/plugins/commands/plugin/command/base.rb:14:in `action'
from /usr/share/vagrant/plugins/commands/plugin/command/install.rb:32:in `block in execute'
from /usr/share/vagrant/plugins/commands/plugin/command/install.rb:31:in `each'
from /usr/share/vagrant/plugins/commands/plugin/command/install.rb:31:in `execute'
from /usr/share/vagrant/plugins/commands/plugin/command/root.rb:56:in `execute'
from /usr/lib/ruby/vendor_ruby/vagrant/cli.rb:42:in `execute'
from /usr/lib/ruby/vendor_ruby/vagrant/environment.rb:268:in `cli'
from /usr/bin/vagrant:173:in `<main>'
arm4b commented 8 years ago

Confirming that https://github.com/mitchellh/vagrant/pull/7198 fixes Vagrant 1.8.1 under Ubuntu 16.04 with ruby 2.3.0 :+1:

Here are steps to apply the patch: http://stackoverflow.com/a/36991648/4533625 until Vagrant 1.8.2 get released.

karlkfi commented 8 years ago

This fix conflicts with https://github.com/mitchellh/vagrant/commit/3f9fb2ef03a78bc9177a52d4629a5e80e6e42b2e

I've pretty certain that that commit can be reverted now that we're using reset instead of nilling all.

alver-cliqz commented 8 years ago

Hi.

For Vagrant 1.8.1 on Ubuntu 16.04 with ruby 2.3.0 problem still exist (after patch applying) for installing vagrant-share plugin:

cacher@ubuntu-cacher:/usr/lib/ruby/vendor_ruby/vagrant$ vagrant plugin install vagrant-share Installing the 'vagrant-share' plugin. This can take a few minutes... /usr/lib/ruby/vendor_ruby/bundler/resolver.rb:302:in 'block in sort_dependencies': undefined method 'payload' for nil:NilClass (NoMethodError) from /usr/lib/ruby/vendor_ruby/bundler/resolver.rb:299:in 'each' from /usr/lib/ruby/vendor_ruby/bundler/resolver.rb:299:in 'sort_by' from /usr/lib/ruby/vendor_ruby/bundler/resolver.rb:299:in 'sort_dependencies' from /usr/lib/ruby/vendor_ruby/molinillo/resolution.rb:131:in 'block (2 levels) in class:Resolution' from /usr/lib/ruby/vendor_ruby/molinillo/resolution.rb:431:in 'push_state_for_requirements' from /usr/lib/ruby/vendor_ruby/molinillo/resolution.rb:423:in 'require_nested_dependencies_for' from /usr/lib/ruby/vendor_ruby/molinillo/resolution.rb:411:in 'activate_spec' from /usr/lib/ruby/vendor_ruby/molinillo/resolution.rb:353:in 'attempt_to_swap_possibility' from /usr/lib/ruby/vendor_ruby/molinillo/resolution.rb:333:in 'attempt_to_activate_existing_spec' from /usr/lib/ruby/vendor_ruby/molinillo/resolution.rb:318:in 'attempt_to_activate' from /usr/lib/ruby/vendor_ruby/molinillo/resolution.rb:147:in 'process_topmost_state' from /usr/lib/ruby/vendor_ruby/molinillo/resolution.rb:72:in 'resolve' from /usr/lib/ruby/vendor_ruby/molinillo/resolver.rb:42:in 'resolve' from /usr/lib/ruby/vendor_ruby/bundler/resolver.rb:200:in 'start' from /usr/lib/ruby/vendor_ruby/bundler/resolver.rb:183:in 'resolve' from /usr/lib/ruby/vendor_ruby/bundler/definition.rb:198:in 'resolve' from /usr/lib/ruby/vendor_ruby/bundler/definition.rb:137:in 'specs' from /usr/lib/ruby/vendor_ruby/bundler/definition.rb:126:in 'resolve_remotely!' from /usr/lib/ruby/vendor_ruby/bundler/installer.rb:194:in 'resolve_if_need' from /usr/lib/ruby/vendor_ruby/bundler/installer.rb:69:in 'run' from /usr/lib/ruby/vendor_ruby/bundler/installer.rb:21:in 'install' from /usr/lib/ruby/vendor_ruby/vagrant/bundler.rb:232:in 'block in internal_install' from /usr/lib/ruby/vendor_ruby/vagrant/bundler.rb:292:in 'block in with_isolated_gem' from /usr/lib/ruby/2.3.0/rubygems/user_interaction.rb:46:in 'use_ui' from /usr/lib/ruby/vendor_ruby/vagrant/bundler.rb:291:in 'with_isolated_gem' from /usr/lib/ruby/vendor_ruby/vagrant/bundler.rb:231:in 'internal_install' from /usr/lib/ruby/vendor_ruby/vagrant/bundler.rb:102:in 'install' from /usr/lib/ruby/vendor_ruby/vagrant/plugin/manager.rb:62:in 'block in install_plugin' from /usr/lib/ruby/vendor_ruby/vagrant/plugin/manager.rb:72:in 'install_plugin' from /usr/share/vagrant/plugins/commands/plugin/action/install_gem.rb:37:in 'call' from /usr/lib/ruby/vendor_ruby/vagrant/action/warden.rb:34:in 'call' from /usr/lib/ruby/vendor_ruby/vagrant/action/builder.rb:116:in 'call' from /usr/lib/ruby/vendor_ruby/vagrant/action/runner.rb:66:in 'block in run' from /usr/lib/ruby/vendor_ruby/vagrant/util/busy.rb:19:in 'busy' from /usr/lib/ruby/vendor_ruby/vagrant/action/runner.rb:66:in 'run' from /usr/share/vagrant/plugins/commands/plugin/command/base.rb:14:in 'action' from /usr/share/vagrant/plugins/commands/plugin/command/install.rb:32:in 'block in execute' from /usr/share/vagrant/plugins/commands/plugin/command/install.rb:31:in 'each' from /usr/share/vagrant/plugins/commands/plugin/command/install.rb:31:in 'execute' from /usr/share/vagrant/plugins/commands/plugin/command/root.rb:56:in 'execute' from /usr/lib/ruby/vendor_ruby/vagrant/cli.rb:42:in 'execute' from /usr/lib/ruby/vendor_ruby/vagrant/environment.rb:268:in 'cli' from /usr/bin/vagrant:173:in '

'

alver-cliqz commented 8 years ago

If i correctly understand - vagrant-share is system plugin and it must be installed with usual installation. But for me, after installing on Ubuntu 16.04, 64-bit (from https://www.vagrantup.com/downloads.html) it doesn't appear. Can you help me with this issue?

alver-cliqz commented 8 years ago

Ok, everythink ok now. Just reinstall deb package with console, not with UI

curtisjjr commented 8 years ago

I'm having a similar issue I think, but with the vmware workstation plugin. Using

Vagrant 1.8.1 
Ubuntu 16.04 
Ruby 2.3.0

Which deb package are you reinstalling? Vagrant? Here's the error I'm getting `

INFO global: Vagrant version: 1.8.1 INFO global: Ruby version: 2.3.0 INFO global: RubyGems version: 2.5.1 INFO global: VAGRANT_NO_PLUGINS="1" INFO global: VAGRANT_VAGRANTFILE="plugin_command_1465330327" INFO global: VAGRANT_INTERNAL_BUNDLERIZED="1" INFO global: VAGRANT_LOG="debug" INFO global: Plugins: INFO global: - bundler = 1.11.2 DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/pushes/ftp/plugin.rb INFO manager: Registered plugin: ftp DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/pushes/heroku/plugin.rb INFO manager: Registered plugin: heroku DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/pushes/noop/plugin.rb INFO manager: Registered plugin: noop DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/pushes/local-exec/plugin.rb INFO manager: Registered plugin: local-exec DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/pushes/atlas/plugin.rb INFO manager: Registered plugin: atlas DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/kernel_v1/plugin.rb INFO manager: Registered plugin: kernel DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/kernel_v2/plugin.rb INFO manager: Registered plugin: kernel DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/providers/hyperv/plugin.rb INFO manager: Registered plugin: Hyper-V provider DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/providers/virtualbox/plugin.rb INFO manager: Registered plugin: VirtualBox provider DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/providers/docker/plugin.rb INFO manager: Registered plugin: docker-provider DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/hosts/freebsd/plugin.rb INFO manager: Registered plugin: FreeBSD host DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/hosts/gentoo/plugin.rb INFO manager: Registered plugin: Gentoo host DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/hosts/redhat/plugin.rb INFO manager: Registered plugin: Red Hat Enterprise Linux host DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/hosts/darwin/plugin.rb INFO manager: Registered plugin: Mac OS X host DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/hosts/arch/plugin.rb INFO manager: Registered plugin: Arch host DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/hosts/windows/plugin.rb INFO manager: Registered plugin: Windows host DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/hosts/null/plugin.rb INFO manager: Registered plugin: null host DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/hosts/suse/plugin.rb INFO manager: Registered plugin: SUSE host DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/hosts/slackware/plugin.rb INFO manager: Registered plugin: Slackware host DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/hosts/bsd/plugin.rb INFO manager: Registered plugin: BSD host DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/hosts/linux/plugin.rb INFO manager: Registered plugin: Linux host DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/synced_folders/nfs/plugin.rb INFO manager: Registered plugin: NFS synced folders DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/synced_folders/smb/plugin.rb INFO manager: Registered plugin: SMB synced folders DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/synced_folders/rsync/plugin.rb INFO manager: Registered plugin: RSync synced folders DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/freebsd/plugin.rb INFO manager: Registered plugin: FreeBSD guest DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/gentoo/plugin.rb INFO manager: Registered plugin: Gentoo guest DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/debian/plugin.rb INFO manager: Registered plugin: Debian guest DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/atomic/plugin.rb INFO manager: Registered plugin: Atomic Host guest DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/ubuntu/plugin.rb INFO manager: Registered plugin: Ubuntu guest DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/tinycore/plugin.rb INFO manager: Registered plugin: TinyCore Linux guest. DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/omnios/plugin.rb INFO manager: Registered plugin: OmniOS guest. DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/redhat/plugin.rb INFO manager: Registered plugin: Red Hat Enterprise Linux guest DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/darwin/plugin.rb INFO manager: Registered plugin: Darwin guest DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/arch/plugin.rb INFO manager: Registered plugin: Arch guest DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/esxi/plugin.rb INFO manager: Registered plugin: ESXi guest. DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/pld/plugin.rb INFO manager: Registered plugin: PLD Linux guest DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/solaris/plugin.rb INFO manager: Registered plugin: Solaris guest. DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/funtoo/plugin.rb INFO manager: Registered plugin: Funtoo guest DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/openbsd/plugin.rb INFO manager: Registered plugin: OpenBSD guest DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/coreos/plugin.rb INFO manager: Registered plugin: CoreOS guest DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/windows/plugin.rb INFO manager: Registered plugin: Windows guest. DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/netbsd/plugin.rb INFO manager: Registered plugin: NetBSD guest DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/smartos/plugin.rb INFO manager: Registered plugin: SmartOS guest. DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/suse/plugin.rb INFO manager: Registered plugin: SUSE guest DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/fedora/plugin.rb INFO manager: Registered plugin: Fedora guest DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/solaris11/plugin.rb INFO manager: Registered plugin: Solaris 11 guest. DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/nixos/plugin.rb INFO manager: Registered plugin: NixOS guest DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/mint/plugin.rb INFO manager: Registered plugin: Mint guest DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/slackware/plugin.rb INFO manager: Registered plugin: Slackware guest DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/photon/plugin.rb INFO manager: Registered plugin: VMware Photon guest DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/guests/linux/plugin.rb INFO manager: Registered plugin: Linux guest. DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/provisioners/cfengine/plugin.rb INFO manager: Registered plugin: CFEngine Provisioner DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/provisioners/ansible/plugin.rb INFO manager: Registered plugin: ansible DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/provisioners/chef/plugin.rb INFO manager: Registered plugin: chef DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/provisioners/puppet/plugin.rb INFO manager: Registered plugin: puppet DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/provisioners/shell/plugin.rb INFO manager: Registered plugin: shell DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/provisioners/file/plugin.rb INFO manager: Registered plugin: file DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/provisioners/docker/plugin.rb INFO manager: Registered plugin: docker DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/provisioners/salt/plugin.rb INFO manager: Registered plugin: salt DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/cap/plugin.rb INFO manager: Registered plugin: cap command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/provider/plugin.rb INFO manager: Registered plugin: provider command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/package/plugin.rb INFO manager: Registered plugin: package command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/box/plugin.rb INFO manager: Registered plugin: box command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/resume/plugin.rb INFO manager: Registered plugin: resume command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/destroy/plugin.rb INFO manager: Registered plugin: destroy command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/up/plugin.rb INFO manager: Registered plugin: up command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/help/plugin.rb INFO manager: Registered plugin: help command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/login/plugin.rb INFO manager: Registered plugin: vagrant-login DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/plugin/plugin.rb INFO manager: Registered plugin: plugin command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/version/plugin.rb INFO manager: Registered plugin: version command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/push/plugin.rb INFO manager: Registered plugin: push command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/init/plugin.rb INFO manager: Registered plugin: init command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/suspend/plugin.rb INFO manager: Registered plugin: suspend command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/port/plugin.rb INFO manager: Registered plugin: port command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/status/plugin.rb INFO manager: Registered plugin: status command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/rdp/plugin.rb INFO manager: Registered plugin: rdp command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/halt/plugin.rb INFO manager: Registered plugin: halt command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/list-commands/plugin.rb INFO manager: Registered plugin: list-commands command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/reload/plugin.rb INFO manager: Registered plugin: reload command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/ssh/plugin.rb INFO manager: Registered plugin: ssh command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/ssh_config/plugin.rb INFO manager: Registered plugin: ssh-config command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/global-status/plugin.rb INFO manager: Registered plugin: global-status command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/snapshot/plugin.rb INFO manager: Registered plugin: snapshot command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/powershell/plugin.rb INFO manager: Registered plugin: powershell command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/commands/provision/plugin.rb INFO manager: Registered plugin: provision command DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/communicators/winrm/plugin.rb INFO manager: Registered plugin: winrm communicator DEBUG global: Loading core plugin: /usr/share/vagrant/plugins/communicators/ssh/plugin.rb INFO manager: Registered plugin: ssh communicator INFO vagrant: vagrant invoked: ["plugin", "install", "vagrant-vmware-workstation", "--debug"] DEBUG vagrant: Creating Vagrant environment INFO environment: Environment initialized (#Vagrant::Environment:0x00000000ced470) INFO environment: - cwd: /home/cjdev INFO environment: Home path: /home/cjdev/.vagrant.d WARN environment: No local data path is set. Local data cannot be stored. INFO environment: Running hook: environment_plugins_loaded INFO runner: Preparing hooks for middleware sequence... INFO runner: 1 hooks defined. INFO runner: Running action: environment_plugins_loaded #Vagrant::Action::Builder:0x00000000e29cf8 INFO environment: Running hook: environment_load INFO runner: Preparing hooks for middleware sequence... INFO runner: 1 hooks defined. INFO runner: Running action: environment_load #Vagrant::Action::Builder:0x000000013346a8 INFO cli: CLI: [] "plugin" ["install", "vagrant-vmware-workstation"] DEBUG cli: Invoking command class: VagrantPlugins::CommandPlugin::Command::Root ["install", "vagrant-vmware-workstation"] DEBUG root: Invoking command class: VagrantPlugins::CommandPlugin::Command::Install ["vagrant-vmware-workstation"] INFO loader: Loading configuration in order: [:home, :root] DEBUG loader: Configuration loaded successfully, finalizing and returning DEBUG push: finalizing INFO host: Autodetecting host type for [#<Vagrant::Environment: /home/cjdev>] DEBUG host: Trying: freebsd DEBUG host: Trying: gentoo DEBUG host: Trying: redhat DEBUG host: Trying: darwin DEBUG host: Trying: arch DEBUG host: Trying: suse DEBUG host: Trying: slackware DEBUG host: Trying: windows DEBUG host: Trying: null DEBUG host: Trying: bsd DEBUG host: Trying: linux INFO host: Detected: linux! INFO runner: Preparing hooks for middleware sequence... INFO runner: 1 hooks defined. INFO runner: Running action: #Vagrant::Action::Builder:0x000000013523d8 INFO warden: Calling IN action: #VagrantPlugins::CommandPlugin::Action::InstallGem:0x00000001337290 INFO interface: info: Installing the 'vagrant-vmware-workstation' plugin. This can take a few minutes... Installing the 'vagrant-vmware-workstation' plugin. This can take a few minutes... ERROR warden: Error occurred: undefined method group_by' for nil:NilClass INFO warden: Beginning recovery process... INFO warden: Calling recover: #<VagrantPlugins::CommandPlugin::Action::InstallGem:0x00000001337290> INFO warden: Recovery complete. INFO environment: Running hook: environment_unload INFO runner: Preparing hooks for middleware sequence... INFO runner: 1 hooks defined. INFO runner: Running action: environment_unload #<Vagrant::Action::Builder:0x00000001c11230> /usr/lib/ruby/2.3.0/rubygems/specification.rb:946:inall=': undefined method group_by' for nil:NilClass (NoMethodError) from /usr/lib/ruby/vendor_ruby/vagrant/bundler.rb:275:inwith_isolated_gem' from /usr/lib/ruby/vendor_ruby/vagrant/bundler.rb:231:in internal_install' from /usr/lib/ruby/vendor_ruby/vagrant/bundler.rb:102:ininstall' from /usr/lib/ruby/vendor_ruby/vagrant/plugin/manager.rb:62:in block in install_plugin' from /usr/lib/ruby/vendor_ruby/vagrant/plugin/manager.rb:72:ininstall_plugin' from /usr/share/vagrant/plugins/commands/plugin/action/install_gem.rb:37:in call' from /usr/lib/ruby/vendor_ruby/vagrant/action/warden.rb:34:incall' from /usr/lib/ruby/vendor_ruby/vagrant/action/builder.rb:116:in call' from /usr/lib/ruby/vendor_ruby/vagrant/action/runner.rb:66:inblock in run' from /usr/lib/ruby/vendor_ruby/vagrant/util/busy.rb:19:in busy' from /usr/lib/ruby/vendor_ruby/vagrant/action/runner.rb:66:inrun' from /usr/share/vagrant/plugins/commands/plugin/command/base.rb:14:in action' from /usr/share/vagrant/plugins/commands/plugin/command/install.rb:32:inblock in execute' from /usr/share/vagrant/plugins/commands/plugin/command/install.rb:31:in each' from /usr/share/vagrant/plugins/commands/plugin/command/install.rb:31:inexecute' from /usr/share/vagrant/plugins/commands/plugin/command/root.rb:56:in execute' from /usr/lib/ruby/vendor_ruby/vagrant/cli.rb:42:inexecute' from /usr/lib/ruby/vendor_ruby/vagrant/environment.rb:268:in cli' from /usr/bin/vagrant:173:in

' `

mawatech commented 8 years ago

I also have this error with a 1.8.2.dev version:

markus@mawatech:~$ vagrant plugin install vagrant-cachier Installing the 'vagrant-cachier' plugin. This can take a few minutes... /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/resolver.rb:303:in block in sort_dependencies': undefined methodpayload' for nil:NilClass (NoMethodError) from /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/resolver.rb:300:in each' from /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/resolver.rb:300:insort_by' from /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/resolver.rb:300:in sort_dependencies' from /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb:131:inblock (2 levels) in class:Resolution' from /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb:431:in push_state_for_requirements' from /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb:423:inrequire_nested_dependencies_for' from /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb:411:in activate_spec' from /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb:353:inattempt_to_swap_possibility' from /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb:333:in attempt_to_activate_existing_spec' from /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb:318:inattempt_to_activate' from /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb:147:in process_topmost_state' from /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb:72:inresolve' from /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb:42:in resolve' from /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/resolver.rb:201:instart' from /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/resolver.rb:184:in resolve' from /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/definition.rb:200:inresolve' from /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/definition.rb:140:in specs' from /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/definition.rb:129:inresolve_remotely!' from /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/installer.rb:195:in resolve_if_need' from /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/installer.rb:70:inrun' from /opt/vagrant/embedded/gems/gems/bundler-1.12.0/lib/bundler/installer.rb:22:in install' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/lib/vagrant/bundler.rb:230:inblock in internal_install' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/lib/vagrant/bundler.rb:290:in block in with_isolated_gem' from /opt/vagrant/embedded/lib/ruby/2.2.0/rubygems/user_interaction.rb:45:inuse_ui' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/lib/vagrant/bundler.rb:289:in with_isolated_gem' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/lib/vagrant/bundler.rb:229:ininternal_install' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/lib/vagrant/bundler.rb:102:in install' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/lib/vagrant/plugin/manager.rb:62:inblock in install_plugin' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/lib/vagrant/plugin/manager.rb:72:in call' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/lib/vagrant/plugin/manager.rb:72:ininstall_plugin' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/plugins/commands/plugin/action/install_gem.rb:37:in call' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/lib/vagrant/action/warden.rb:34:incall' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/lib/vagrant/action/builder.rb:116:in call' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/lib/vagrant/action/runner.rb:66:inblock in run' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/lib/vagrant/util/busy.rb:19:in busy' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/lib/vagrant/action/runner.rb:66:inrun' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/plugins/commands/plugin/command/base.rb:14:in action' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/plugins/commands/plugin/command/install.rb:32:inblock in execute' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/plugins/commands/plugin/command/install.rb:31:in each' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/plugins/commands/plugin/command/install.rb:31:inexecute' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/plugins/commands/plugin/command/root.rb:56:in execute' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/lib/vagrant/cli.rb:42:inexecute' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/lib/vagrant/environment.rb:302:in cli' from /opt/vagrant/embedded/gems/gems/vagrant-1.8.2.dev/bin/vagrant:174:in

'

But this seems to be a bundler issue: https://github.com/bundler/bundler/issues/4484

So perhaps updating the bundler dependency to 1.12.5 fixes this issue. Will test it...

mawatech commented 8 years ago

updating bundler to 1.12.5 fixed the issue for me. created pull request #7404