Issue #2010 has been updated by masterzen.

immerda wrote:'
> clearing the failed hosts seems to definitely fix something.
> 
> however it still seems that the problem might reoccur from time to time on 
> different hosts.

I'm not so sure. There's no reason to have more than one resource of the same 
ref. Puppet can't generate this, but since the schema doesn't enforce it, on 
some error condition _and_ if your database engine doesn't support transaction 
_it_ might be possible to have several resource of the same ref for the same 
host (on multiple run).
My patch mentioned on the puppet-dev list should clear the extraneous resources.

> I'll test your suggested fix when I'll encounter the problem again. However I 
> think I already tried it on my own in the same way and I got a not so nice 
> sideeffect. What I tried:
> 
> [...]
> 
> However what I got then, was this the second peak round: 
> https://durito.cronopios.org/mysql_queries-day_storeconfigs_speedup_v2.png, 
> which is why I reverted it. I just saw it as a quick and dirty fix and I had 
> no idea what the actual problem is, nor what I'm actually doing.

The only way to achieve the peaks (notice those are mostly Inserts) is that you 
might have reversed the logic and never calls add_param_to_hash. In this case 
the system thinks there is no parameters so it first deletes every parameters 
and on the next run, there will be tons of inserts.

Please test with the following fix if you can (it worked fine on my dev 
machine):
http://github.com/masterzen/puppet/tree/tickets/0.24.x/2010


----------------------------------------
Bug #2010: puppetmaster fails to store config, trying to hash a param which is 
nil
/issues/2010

Author: immerda
Status: Accepted
Priority: Normal
Assigned to: andrew
Category: 
Target version: 0.24.8
Complexity: Unknown
Affected version: 0.24.7
Keywords: 


running the master on the latest head of 0.24.x gives the following error for 
_every_ client:
<pre>
notice: Searched for resources in 0.25 seconds
/usr/lib/ruby/site_ruby/1.8/puppet/rails/host.rb:153:in 
`find_resources_parameters_tags'
/usr/lib/ruby/site_ruby/1.8/puppet/rails/host.rb:125:in `setresources'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/benchmark.rb:8:in
 `realtime'
/usr/lib/ruby/site_ruby/1.8/puppet/rails/host.rb:124:in `setresources'
/usr/lib/ruby/site_ruby/1.8/puppet/rails/host.rb:52:in `store'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/benchmark.rb:8:in
 `realtime'
/usr/lib/ruby/site_ruby/1.8/puppet/rails/host.rb:51:in `store'
/usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/database_statements.rb:66:in
 `transaction'
/usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/transactions.rb:129:in
 `transaction'
/usr/lib/ruby/site_ruby/1.8/puppet/rails/host.rb:32:in `store'
/usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:448:in 
`store_to_active_record'
/usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/database_statements.rb:66:in
 `transaction'
/usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/transactions.rb:129:in
 `transaction'
/usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:447:in 
`store_to_active_record'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:180:in `benchmark'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/benchmark.rb:8:in
 `realtime'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:179:in `benchmark'
/usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:446:in 
`store_to_active_record'
/usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:439:in `store'
/usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:99:in `compile'
/usr/lib/ruby/site_ruby/1.8/puppet/parser/interpreter.rb:29:in `compile'
/usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:68:in 
`compile'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:180:in `benchmark'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/benchmark.rb:8:in
 `realtime'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:179:in `benchmark'
/usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:66:in 
`compile'
/usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:21:in `find'
/usr/lib/ruby/site_ruby/1.8/puppet/indirector/indirection.rb:210:in `find'
/usr/lib/ruby/site_ruby/1.8/puppet/indirector.rb:49:in `find'
/usr/lib/ruby/site_ruby/1.8/puppet/network/handler/master.rb:65:in `getconfig'
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `to_proc'
/usr/lib/ruby/site_ruby/1.8/puppet/network/xmlrpc/processor.rb:52:in `call'
/usr/lib/ruby/site_ruby/1.8/puppet/network/xmlrpc/processor.rb:52:in 
`protect_service'
/usr/lib/ruby/site_ruby/1.8/puppet/network/xmlrpc/processor.rb:85:in 
`setup_processor'
/usr/lib/ruby/1.8/xmlrpc/server.rb:336:in `call'
/usr/lib/ruby/1.8/xmlrpc/server.rb:336:in `dispatch'
/usr/lib/ruby/1.8/xmlrpc/server.rb:323:in `each'
/usr/lib/ruby/1.8/xmlrpc/server.rb:323:in `dispatch'
/usr/lib/ruby/1.8/xmlrpc/server.rb:366:in `call_method'
/usr/lib/ruby/1.8/xmlrpc/server.rb:378:in `handle'
/usr/lib/ruby/site_ruby/1.8/puppet/network/xmlrpc/processor.rb:44:in `process'
/usr/lib/ruby/site_ruby/1.8/puppet/network/xmlrpc/webrick_servlet.rb:68:in 
`service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
/usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
/usr/lib/ruby/site_ruby/1.8/puppet.rb:293:in `start'
/usr/lib/ruby/site_ruby/1.8/puppet.rb:144:in `newthread'
/usr/lib/ruby/site_ruby/1.8/puppet.rb:143:in `initialize'
/usr/lib/ruby/site_ruby/1.8/puppet.rb:143:in `new'
/usr/lib/ruby/site_ruby/1.8/puppet.rb:143:in `newthread'
/usr/lib/ruby/site_ruby/1.8/puppet.rb:291:in `start'
/usr/lib/ruby/site_ruby/1.8/puppet.rb:290:in `each'
/usr/lib/ruby/site_ruby/1.8/puppet.rb:290:in `start'
/usr/sbin/puppetmasterd:285
err: Could not store configs: undefined method `add_param_to_hash' for 
nil:NilClass
notice: Compiled catalog for puppet.foobar.com in 20.64 seconds
</pre>


----------------------------------------
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://reductivelabs.com/redmine/my/account

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to