Issue #2550 has been updated by Markus Roberts.

<blockquote>
Is this ready to be committed? From what Sam said this makes things worse?
</blockquote>

I suppose it depends on your perspective.  Without this patch the underlying 
error(s) are ignored and thing "go along further" but, as Sam notes, the 
results are probably incomplete/incorrect.  My perspective is that this patch 
makes the situation slightly better by causing it to fail in a more appropriate 
manner.  To that end, I'm actually wondering why it continues past the "err: 
State got corrupted" point (see the top of Sam's listing) with no more 
remediation that assuming that there was no state.

So:

* There is at least one, possibly as many as three underlying errors here (see 
related tickets).  This patch does not fix them.
* The relationship was not at first apparent because the failure was resulting 
in a nil being returned where it was not expected, and this caused a less then 
useful "undefined method `to_sym' for nil" message the first time the value was 
used.
* This patch changes the data flow in that one particular place so that missing 
metadata does not produce the cryptic message. 

If you'd prefer, we could hold this and combine it with one of the other 
tickets, but I'd see this as something that needs to be dealt with in any case 
and which is only circumstantially related to the more serious underlying 
issues.

----------------------------------------
Bug #2550: to_sym errors from puppetd
http://projects.reductivelabs.com/issues/2550

Author: Sam Rowe
Status: Ready for Checkin
Priority: Normal
Assigned to: James Turnbull
Category: file
Target version: 0.25.0
Complexity: Unknown
Affected version: 0.25.0rc1
Keywords: 


Running a 299eadb7d903d250c8340049bd78611f0c705920 RHEL 5 client against a 
server running with Markus' branch which fixes #2493 
(ffe6bb837b56ecaf5a50f26550c0e11c707345dc) we get lots of to_sym errors like 
this:

<pre>
/usr/lib/ruby/site_ruby/1.8/puppet/type/file/content.rb:110:in `retrieve'
/usr/lib/ruby/site_ruby/1.8/puppet/type.rb:810:in `currentpropvalues'
/usr/lib/ruby/site_ruby/1.8/puppet/util/autoload.rb:85:in `inject'
/usr/lib/ruby/site_ruby/1.8/puppet/type.rb:802:in `each'
/usr/lib/ruby/site_ruby/1.8/puppet/type.rb:802:in `inject'
/usr/lib/ruby/site_ruby/1.8/puppet/type.rb:802:in `currentpropvalues'
/usr/lib/ruby/site_ruby/1.8/puppet/type.rb:790:in `retrieve'
/usr/lib/ruby/site_ruby/1.8/puppet/type/file.rb:638:in `retrieve'
/usr/lib/ruby/site_ruby/1.8/puppet/type.rb:719:in `evaluate'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:60:in `apply'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:249:in 
`eval_children_and_apply_resource'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:425:in `thinmark'
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
/usr/lib/ruby/1.8/benchmark.rb:307:in `realtime'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:424:in `thinmark'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:248:in 
`eval_children_and_apply_resource'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:205:in `eval_resource'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:294:in `evaluate'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:425:in `thinmark'
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
/usr/lib/ruby/1.8/benchmark.rb:307:in `realtime'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:424:in `thinmark'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:293:in `evaluate'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:287:in `collect'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:287:in `evaluate'
/usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:139:in `apply'
/usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:142:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:180:in `benchmark'
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
/usr/lib/ruby/1.8/benchmark.rb:307:in `realtime'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:179:in `benchmark'
/usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:141:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:53:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/agent/locker.rb:21:in `lock'
/usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:53:in `run'
/usr/lib/ruby/1.8/sync.rb:229:in `synchronize'
/usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:53:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:130:in `with_client'
/usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:51:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/application/puppetd.rb:103:in `onetime'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:226:in `send'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:226:in `run_command'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:217:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:306:in `exit_on_fail'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:217:in `run'
/usr/sbin/puppetd:159
err: 
//allusers::bjones/Allusers::Userfile[bjones/.less]/File[/home/bjones/.less]: 
Failed to retrieve current state of resource: Could not read 
/home/bjones/.less: undefined method `to_sym' for nil:NilClass
</pre>

FWIW this only happens on files and all of the files that had the problem are 
scheduled.  And we ran with --ignoreschedules.




-- 
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