Skip to content
This repository has been archived by the owner on Jan 15, 2024. It is now read-only.

[BUG] ImmutableAttributeModification error #5

Closed
RodrigoAyala opened this issue Apr 24, 2013 · 1 comment · Fixed by #6
Closed

[BUG] ImmutableAttributeModification error #5

RodrigoAyala opened this issue Apr 24, 2013 · 1 comment · Fixed by #6

Comments

@RodrigoAyala
Copy link

I'm having the following error:

Chef::Exceptions::ImmutableAttributeModification
Node attributes are read-only when you do not specify which precedence level to set.
To set an attribute use code like `node.default["key"] = "value"'

It's related to nginx_conf/providers/file.rb , line 25.

locations['/']['proxy_pass'] = node['nginx_conf']['pre_socket'] + new_resource.socket

I'm using Chef: 11.4.0

Update: Maybe this could help: http://www.opscode.com/blog/2013/02/05/chef-11-in-depth-attributes-changes/

@mwhooker
Copy link
Contributor

I'm also getting this error. I've configured my site in attributes

default[:nginx_conf][:confs] = [{
  'sentry' => {
    'socket' => "127.0.0.1:#{node[:sentry][:port]}"
  }
}]

I'm using vagrant 1.2.2 and chef 11.2.0

================================================================================

Error executing action `create` on resource 'nginx_conf_file[sentry]'

================================================================================




Chef::Exceptions::ImmutableAttributeModification

------------------------------------------------

Node attributes are read-only when you do not specify which precedence level to set. To set an attribute use code like `node.default["key"] = "value"'




Cookbook Trace:
---------------
/tmp/vagrant-chef-1/chef-solo-1/cookbooks/nginx_conf/providers/file.rb:24:in `block in class_from_file'


Resource Declaration:
---------------------
# In /tmp/vagrant-chef-1/chef-solo-1/cookbooks/nginx_conf/recipes/default.rb

 37:     nginx_conf_file name do
 38:       action conf['action']
 39:       cookbook conf['cookbook']
 40:       block conf['block']
 41:       listen conf['listen']
 42:       locations conf['locations']
 43:       options conf['options']
 44:       reload conf['reload']
 45:       root conf['root']
 46:       server_name conf['server_name']
 47:       socket conf['socket']
 48:       template conf['template']
 49:     end
 50:   end



Compiled Resource:
------------------
# Declared in /tmp/vagrant-chef-1/chef-solo-1/cookbooks/nginx_conf/recipes/default.rb:37:in `block (2 levels) in from_file'

nginx_conf_file("sentry") do
  action [:create]
  retries 0
  retry_delay 2
  cookbook_name :nginx_conf
  recipe_name "default"
  cookbook "nginx_conf"
  reload :delayed
  socket "127.0.0.1:9000"
  template "conf.erb"
end



[2013-04-29T03:38:31+00:00] INFO: Running queued delayed notifications before re-raising exception
[2013-04-29T03:38:31+00:00] DEBUG: Re-raising exception: Chef::Exceptions::ImmutableAttributeModification - nginx_conf_file[sentry] (nginx_conf::default line 37) had an error: Chef::Exceptions::ImmutableAttributeModification: Node attributes are read-only when you do not specify which precedence level to set. To set an attribute use code like `node.default["key"] = "value"'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/node/immutable_collections.rb:146:in `[]='
  /tmp/vagrant-chef-1/chef-solo-1/cookbooks/nginx_conf/providers/file.rb:24:in `block in class_from_file'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/provider/lwrp_base.rb:138:in `instance_eval'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/provider/lwrp_base.rb:138:in `block in action'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/provider.rb:118:in `run_action'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/resource.rb:586:in `run_action'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/runner.rb:50:in `run_action'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/runner.rb:82:in `block (2 levels) in converge'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/runner.rb:82:in `each'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/runner.rb:82:in `block in converge'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/resource_collection.rb:94:in `block in execute_each_resource'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/resource_collection/stepable_iterator.rb:116:in `call'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/resource_collection/stepable_iterator.rb:116:in `call_iterator_block'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/resource_collection/stepable_iterator.rb:104:in `iterate'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/resource_collection.rb:92:in `execute_each_resource'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/runner.rb:81:in `converge'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/client.rb:404:in `converge'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/client.rb:469:in `do_run'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/client.rb:200:in `run'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/application.rb:190:in `run_chef_client'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/application/solo.rb:239:in `block in run_application'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/application/solo.rb:231:in `loop'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/application/solo.rb:231:in `run_application'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/application.rb:73:in `run'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/bin/chef-solo:25:in `<top (required)>'
  /usr/bin/chef-solo:23:in `load'
  /usr/bin/chef-solo:23:in `<main>'
[2013-04-29T03:38:31+00:00] ERROR: Running exception handlers
[2013-04-29T03:38:31+00:00] ERROR: Exception handlers complete
[2013-04-29T03:38:31+00:00] FATAL: Stacktrace dumped to /tmp/vagrant-chef-1/chef-stacktrace.out
[2013-04-29T03:38:31+00:00] DEBUG: Chef::Exceptions::ImmutableAttributeModification: nginx_conf_file[sentry] (nginx_conf::default line 37) had an error: Chef::Exceptions::ImmutableAttributeModification: Node attributes are read-only when you do not specify which precedence level to set. To set an attribute use code like `node.default["key"] = "value"'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/node/immutable_collections.rb:146:in `[]='
/tmp/vagrant-chef-1/chef-solo-1/cookbooks/nginx_conf/providers/file.rb:24:in `block in class_from_file'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/provider/lwrp_base.rb:138:in `instance_eval'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/provider/lwrp_base.rb:138:in `block in action'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/provider.rb:118:in `run_action'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/resource.rb:586:in `run_action'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/runner.rb:50:in `run_action'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/runner.rb:82:in `block (2 levels) in converge'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/runner.rb:82:in `each'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/runner.rb:82:in `block in converge'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/resource_collection.rb:94:in `block in execute_each_resource'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/resource_collection/stepable_iterator.rb:116:in `call'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/resource_collection/stepable_iterator.rb:116:in `call_iterator_block'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/resource_collection/stepable_iterator.rb:104:in `iterate'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/resource_collection.rb:92:in `execute_each_resource'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/runner.rb:81:in `converge'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/client.rb:404:in `converge'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/client.rb:469:in `do_run'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/client.rb:200:in `run'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/application.rb:190:in `run_chef_client'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/application/solo.rb:239:in `block in run_application'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/application/solo.rb:231:in `loop'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/application/solo.rb:231:in `run_application'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/lib/chef/application.rb:73:in `run'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.2.0/bin/chef-solo:25:in `<top (required)>'
/usr/bin/chef-solo:23:in `load'
/usr/bin/chef-solo:23:in `<main>'
[2013-04-29T03:38:31+00:00] FATAL: Chef::Exceptions::ImmutableAttributeModification: nginx_conf_file[sentry] (nginx_conf::default line 37) had an error: Chef::Exceptions::ImmutableAttributeModification: Node attributes are read-only when you do not specify which precedence level to set. To set an attribute use code like `node.default["key"] = "value"'
Chef never successfully completed! Any errors should be visible in the
output above. Please fix your recipes so that they properly complete.

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

Successfully merging a pull request may close this issue.

2 participants