5
votes

I have a VM that is made with vagrant and chef. Last night my computer restarted unexpectedly while the VM was up and running . After that, when I try to vagrant up the VM I get: Chef never successfully completed! Any errors should be visible in the output above. Please fix your recipes so that they properly complete.

[default] VM already created. Booting if it's not already running...
[default] Clearing any previously set forwarded ports...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Running any VM customizations...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Configuring and enabling network interfaces...
[default] Mounting shared folders...
[default] -- v-root: /vagrant
[default] -- v-data: /vagrant
[default] -- v-csr-2: /tmp/vagrant-chef-1/chef-solo-2/roles
[default] -- v-csc-1: /tmp/vagrant-chef-1/chef-solo-1/cookbooks
[default] Running provisioner: Vagrant::Provisioners::ChefSolo...
[default] Generating chef JSON and uploading...
[default] Running chef-solo...
stdin: is not a tty
[Tue, 10 Jul 2012 00:59:36 -0700] INFO: *** Chef 0.10.2 ***
[Tue, 10 Jul 2012 00:59:36 -0700] INFO: Setting the run_list to ["role[my-site]"] from JSON
[Tue, 10 Jul 2012 00:59:36 -0700] INFO: Run List is [role[my-site]]
[Tue, 10 Jul 2012 00:59:36 -0700] INFO: Run List expands to [memcached, my-site, my-site::vm]
[Tue, 10 Jul 2012 00:59:36 -0700] INFO: Starting Chef Run for lucid32
[Tue, 10 Jul 2012 00:59:37 -0700] ERROR: Running exception handlers
[Tue, 10 Jul 2012 00:59:37 -0700] ERROR: Exception handlers complete
[Tue, 10 Jul 2012 00:59:37 -0700] FATAL: Stacktrace dumped to /tmp/vagrant-chef-1/chef-stacktrace.out
[Tue, 10 Jul 2012 00:59:37 -0700] FATAL: NoMethodError: undefined method `[]' for nil:NilClass
Chef never successfully completed! Any errors should be visible in the
output above. Please fix your recipes so that they properly complete.

Later edit:

Stacktrace dumped to /tmp/vagrant-chef-1/chef-stacktrace.out

Generated at Tue Jul 10 00:59:37 -0700 2012
NoMethodError: undefined method `[]' for nil:NilClass
/tmp/vagrant-chef-1/chef-solo-1/cookbooks/my-site/recipes/default.rb:114:in `from_file'
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/mixin/recipe_definition_dsl_core.rb:69:in `instance_eval'
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/mixin/recipe_definition_dsl_core.rb:69:in `method_missing'
/tmp/vagrant-chef-1/chef-solo-1/cookbooks/my-site/recipes/default.rb:109:in `from_file'
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/cookbook_version.rb:578:in `load_recipe'
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/mixin/language_include_recipe.rb:40:in `include_recipe'
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/mixin/language_include_recipe.rb:27:in `each'
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/mixin/language_include_recipe.rb:27:in `include_recipe'
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/run_context.rb:72:in `load'
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/run_context.rb:69:in `each'
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/run_context.rb:69:in `load'
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/client.rb:195:in `setup_run_context'
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/client.rb:159:in `run'
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/application/solo.rb:192:in `run_application'
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/application/solo.rb:183:in `loop'
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/application/solo.rb:183:in `run_application'
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/../lib/chef/application.rb:66:in `run'
/opt/ruby/lib/ruby/gems/1.8/gems/chef-0.10.2/bin/chef-solo:25
/opt/ruby/bin/chef-solo:19:in `load'
/opt/ruby/bin/chef-solo:19

Any thoughts,

Thanks, Radu

3
What's the stacktrace in /tmp/vagrant-chef-1/chef-stacktrace.out look like?Nils Landt
added it as a later editRadu
Did the Chef run previously complete without errors? In line 114 of my-site/recipes/default.rb, you're probably accessing some node attribute that doesn't exist. Have a look at that line of code, do you recognize what object is nil there, and can you maye make it so it isn't nil?Nils Landt
until the unexpected restart it worked fine ...Radu

3 Answers

6
votes

This is a bug in your Chef recipe itself. If you read the stacktrace you can see that the error is actually on line 114 of the default recipe in the my-site cookbook. The Ruby error you're seeing means that you're attempting to do something like a[:foo] where a is nil. Of course, you can't call [] on nil.

2
votes

I had the same problem. I figured out that the chef version that was running in my VM was too old (0.10.10).

You have to update it:

local$ vagrant ssh
vagrant$ gem install chef

and try again.

0
votes

I received the errors:

Chef never successfully completed! Any errors should be visible in the
output above. Please fix your recipes so that they properly complete.

Error executing action `create` on resource 'mysql_service[default]'

I used the:

local$ vagrant ssh
vagrant$ gem install chef

After trying again, it all worked out perfect.